product-recognition-demo/recognization/code
kiyo9w 8db280d220 feat(enroll): report views with no recorded source
Six enrolled views predate ATTRIBUTION.json and their source URLs were never
recorded. They are not wrong - each is independent of the evaluation photo
(highest template match 0.166 against add/image6.jpg) and each is above the
enrollment floor - but the provenance is gone, and provenance is what lets a
later audit tell a re-sourced packshot from a leaked shelf crop.

rebuild_catalog now names them instead of leaving the gap to be rediscovered,
and ATTRIBUTION.json records both the l06 replacement and the gap itself, with
what is verifiable about those six.

Reported, not refused: refusing would drop six working references to punish a
missing field.
2026-09-29 03:35:41 +09:00
..
web fix: restore reliable authenticated live recognition 2026-09-28 12:38:15 +09:00
__init__.py Initial commit for push folder 2026-09-18 09:13:53 +09:00
app.py fix(eval): confirm a leak signature before calling it one, and score external sets in code 2026-09-29 03:29:56 +09:00
bench_engine.py feat: recognition engine and session tracker for multi-client serving 2026-09-24 11:52:59 +09:00
bench_identity.py feat: a multi-view embedding gallery, because one template per SKU cannot work 2026-09-24 23:43:27 +09:00
build_store_from_shelf.py fix: require explicit safe shelf enrollment paths 2026-09-28 13:41:43 +09:00
collect_shelf_images.py fix(catalog): correct sku_l10 to 400g and enroll its packshot 2026-09-29 02:45:21 +09:00
detector.py refactor: make the matcher and detector safe for concurrent clients 2026-09-24 11:43:24 +09:00
empty_shelf_detector.py Initial commit for push folder 2026-09-18 09:13:53 +09:00
engine.py fix(eval): confirm a leak signature before calling it one, and score external sets in code 2026-09-29 03:29:56 +09:00
eval_external.py fix(eval): confirm a leak signature before calling it one, and score external sets in code 2026-09-29 03:29:56 +09:00
eval_external_images.py fix(catalog): correct sku_l10 to 400g and enroll its packshot 2026-09-29 02:45:21 +09:00
eval_identity.py feat(eval): add --no-text so the E-3 claim is reproducible 2026-09-29 03:32:38 +09:00
eval_live.py docs: name the local lane in the evaluators' own lane vocabulary 2026-09-28 22:34:06 +09:00
feature_matcher.py feat: recognition server API, reference stream client, and live label memory 2026-09-24 12:31:17 +09:00
finetune_identity.py fix(catalog): correct sku_l10 to 400g and enroll its packshot 2026-09-29 02:45:21 +09:00
gallery.py feat(identity): local-feature matcher plus text lane as the default backend 2026-09-28 22:27:21 +09:00
identity.py fix(eval): confirm a leak signature before calling it one, and score external sets in code 2026-09-29 03:29:56 +09:00
identity_lanes.py fix(identity): veto a local answer the read contradicts on package size 2026-09-29 03:04:21 +09:00
inventory.py Initial commit for push folder 2026-09-18 09:13:53 +09:00
live.py fix(eval): confirm a leak signature before calling it one, and score external sets in code 2026-09-29 03:29:56 +09:00
ocr.py feat: add bounded crop evidence and keyed gallery cache 2026-09-28 15:49:34 +09:00
rebuild_catalog.py feat(enroll): report views with no recorded source 2026-09-29 03:35:41 +09:00
reconcile.py fix: a tag may not accuse on weak evidence, nor name a distant product 2026-09-25 01:30:03 +09:00
record.py fix: record and require the walk identity backend 2026-09-28 14:42:03 +09:00
score_stream.py Fix label frame mapping and reference upscaling; add the stream G1 harness 2026-09-29 00:30:17 +09:00
shelf_map.py feat: a shelf map, so a facing outlives the track id that found it 2026-09-25 01:54:38 +09:00
stream_client.py Fix label frame mapping and reference upscaling; add the stream G1 harness 2026-09-29 00:30:17 +09:00
tag_cards.py fix: restore reliable authenticated live recognition 2026-09-28 12:38:15 +09:00
tags.py fix: bind tag projection to each frame origin 2026-09-28 14:41:49 +09:00
test_api.py feat(identity): local-feature matcher plus text lane as the default backend 2026-09-28 22:27:21 +09:00
test_engine.py fix(identity): veto a local answer the read contradicts on package size 2026-09-29 03:04:21 +09:00
test_eval_labels.py feat: refuse a label file whose rows carry no provenance 2026-09-28 23:31:53 +09:00
test_eval_live.py fix: record and require the walk identity backend 2026-09-28 14:42:03 +09:00
test_gallery.py fix: serialize gallery inference so Metal cannot be entered twice 2026-09-28 17:22:55 +09:00
test_identity.py fix(eval): confirm a leak signature before calling it one, and score external sets in code 2026-09-29 03:29:56 +09:00
test_live.py Improve identity lanes: text evidence floor, motion-compensated labels 2026-09-29 02:08:23 +09:00
test_ocr_tags.py fix: bind tag projection to each frame origin 2026-09-28 14:41:49 +09:00
test_real_model.py docs: API contract, README for the server and live mode, real-model test 2026-09-24 12:46:54 +09:00
test_rebuild_catalog.py Enroll from a repo data dir; read packshots in every orientation 2026-09-29 02:33:47 +09:00
test_reconcile.py fix: a tag may not accuse on weak evidence, nor name a distant product 2026-09-25 01:30:03 +09:00
test_record.py fix: record and require the walk identity backend 2026-09-28 14:42:03 +09:00
test_shelf_map.py feat: a shelf map, so a facing outlives the track id that found it 2026-09-25 01:54:38 +09:00
test_tag_cards.py fix: the number on the tag is the regular price, and a price must be corroborated 2026-09-25 01:29:46 +09:00
test_tag_identity.py fix: a tag may not accuse on weak evidence, nor name a distant product 2026-09-25 01:30:03 +09:00
test_tracking.py test: defend engine and tracking contracts 2026-09-24 12:43:32 +09:00
tracking.py fix: restore reliable authenticated live recognition 2026-09-28 12:38:15 +09:00
train.py Initial commit for push folder 2026-09-18 09:13:53 +09:00
transport.py fix: guard reserved sessions and bounded response state 2026-09-28 13:41:35 +09:00