@@ -3,7 +3,7 @@
<!-- GENERATED FILE - do not edit by hand. -->
<!-- GENERATED FILE - do not edit by hand. -->
<!-- Regenerate: scripts/traceability/traceability-gate.sh -->
<!-- Regenerate: scripts/traceability/traceability-gate.sh -->
**Generated: ** 2026-07-31T15:01:49 +00:00
**Generated: ** 2026-07-31T20:39:35 +00:00
Denominators are read from [`requirements.md` ](requirements.md ) at run time, never hardcoded. Coverage counts a requirement only when it is tagged in source **and ** has a verification tier this repo's CI host can execute (`T1, T2, T3, static` ).
Denominators are read from [`requirements.md` ](requirements.md ) at run time, never hardcoded. Coverage counts a requirement only when it is tagged in source **and ** has a verification tier this repo's CI host can execute (`T1, T2, T3, static` ).
@@ -12,13 +12,13 @@ Denominators are read from [`requirements.md`](requirements.md) at run time, nev
| Metric | Value |
| Metric | Value |
|---|---|
|---|---|
| Source files scanned | 112 |
| Source files scanned | 112 |
| TRACES tags found | 137 |
| TRACES tags found | 148 |
| EXCEPTION tags found | 0 |
| EXCEPTION tags found | 0 |
| Requirements defined | 69 |
| Requirements defined | 69 |
| Requirements covered | 38 |
| Requirements covered | 38 |
| **Coverage ** | **55.1% ** (38/69) |
| **Coverage ** | **55.1% ** (38/69) |
| Coverage of CI-executable scope | 67.9% (38/56) |
| Coverage of CI-executable scope | 67.9% (38/56) |
| Tagged but unexecuted in CI | 7 |
| Tagged but unexecuted in CI | 8 |
| Orphan tags | 0 |
| Orphan tags | 0 |
### By type
### By type
@@ -29,7 +29,7 @@ Denominators are read from [`requirements.md`](requirements.md) at run time, nev
| DP | 2 | 0 | 8 |
| DP | 2 | 0 | 8 |
| IR | 8 | 0 | 8 |
| IR | 8 | 0 | 8 |
| GR | 5 | 0 | 9 |
| GR | 5 | 0 | 9 |
| VR | 1 | 6 | 14 |
| VR | 1 | 7 | 14 |
- **UT** tags present (separate taxonomy, not counted in coverage): UT-001, UT-101, UT-102, UT-103, UT-104, UT-105, UT-106, UT-107, UT-108
- **UT** tags present (separate taxonomy, not counted in coverage): UT-001, UT-101, UT-102, UT-103, UT-104, UT-105, UT-106, UT-107, UT-108
- **IT** tags present (separate taxonomy, not counted in coverage): IT-001
- **IT** tags present (separate taxonomy, not counted in coverage): IT-001
@@ -54,9 +54,9 @@ These requirements have no verification tier this repo's CI host can run, so a t
| VR-010 | out-of-ci | yes | Dump provenance attributes — embedder model, detector settings, `dens… |
| VR-010 | out-of-ci | yes | Dump provenance attributes — embedder model, detector settings, `dens… |
| VR-011 | out-of-ci | no | Rewrite the replay harness for the post-AR-012 output contract |
| VR-011 | out-of-ci | no | Rewrite the replay harness for the post-AR-012 output contract |
| VR-012 | T4, out-of-ci | no | Quality-knee study — TPI/FPI vs sharpness and vs pose, as VR-005 did … |
| VR-012 | T4, out-of-ci | no | Quality-knee study — TPI/FPI vs sharpness and vs pose, as VR-005 did … |
| VR-013 | T4, out-of-ci | no | Cross-source identification probe — gallery from one recording, probe… |
| VR-013 | T4, out-of-ci | yes | Cross-source identification probe — gallery from one recording, probe… |
**Tagged but unexecuted:** AR-027, VR-001, VR-002, VR-003, VR-004, VR-005, VR-010 — a test exists and is tagged, but this CI host cannot run it. Report those runs separately.
**Tagged but unexecuted:** AR-027, VR-001, VR-002, VR-003, VR-004, VR-005, VR-010, VR-013 — a test exists and is tagged, but this CI host cannot run it. Report those runs separately.
## Orphan tags
## Orphan tags
@@ -84,10 +84,10 @@ _None._
| AR-002 | Planned | T2 | SR-002 | untagged | - | Minimum face size **40× 40 px** (VR-013 measured end to end; VR-005's … |
| AR-002 | Planned | T2 | SR-002 | untagged | - | Minimum face size **40× 40 px** (VR-013 measured end to end; VR-005's … |
| AR-003 | **Done** — ` max_fac… | T1, T2, T4 | SR-002 | covered | `src/config.hpp` , `src/nodes/face_detector_node.hpp` , `src/nodes/identity_matcher_node.hpp` | No fixed per-frame face cap — crowd scenes must not lose background c… |
| AR-003 | **Done** — ` max_fac… | T1, T2, T4 | SR-002 | covered | `src/config.hpp` , `src/nodes/face_detector_node.hpp` , `src/nodes/identity_matcher_node.hpp` | No fixed per-frame face cap — crowd scenes must not lose background c… |
| AR-004 | **Done ** — KPN node… | T1, T4 | SR-002 | covered | `src/main.cpp` , `src/nodes/identity_matcher_node.hpp` , `tests/test_replay_fixtures.cpp` | Backpressure: unbounded faces/frame absorbed by slowing, never by dro… |
| AR-004 | **Done ** — KPN node… | T1, T4 | SR-002 | covered | `src/main.cpp` , `src/nodes/identity_matcher_node.hpp` , `tests/test_replay_fixtures.cpp` | Backpressure: unbounded faces/frame absorbed by slowing, never by dro… |
| AR-005 | **Done ** — `umeyama… | T1, T3 | SR-002 | covered | ` src/face_utils.hpp`, ` tests/test_face_utils.cpp` | Align to 112× 112 via ArcFace 5-point similarity transform, fitted by … |
| AR-005 | **Done ** — `umeyama… | T1, T3 | SR-002 | covered | ` src/face_utils.hpp`, ` src/nodes/face_aligner_node.hpp `, ` tests/test_face_utils.cpp` | Align to 112× 112 via ArcFace 5-point similarity transform, fitted by … |
| AR-006 | Done | T3 | SR-002 | covered | ` src/nodes/embedder_node.hpp` | 512-d L2-normalised embeddings, batched |
| AR-006 | Done | T3 | SR-002 | covered | ` src/nodes/embedder_node.hpp` | 512-d L2-normalised embeddings, batched |
| AR-007 | **Done** — ` track_a… | T2 | SR-002 | covered | `src/config.hpp` , `src/main.cpp` , `src/nodes/face_tracker_node.hpp` | Associate detections by IoU + embedding, with **frame-dependent ** wei… |
| AR-007 | **Done** — ` track_a… | T2 | SR-002 | covered | `src/config.hpp` , `src/main.cpp` , `src/nodes/face_tracker_node.hpp` , `tests/test_face_tracker.cpp` | Associate detections by IoU + embedding, with **frame-dependent ** wei… |
| AR-008 | **Done ** — one pool… | T2 | SR-002 | covered | `src/config.hpp` , `src/main.cpp` , `src/nodes/face_tracker_node.hpp` | One track pool keyed on `last_seen` ; no separate revival path |
| AR-008 | **Done ** — one pool… | T2 | SR-002 | covered | `src/config.hpp` , `src/main.cpp` , `src/nodes/face_tracker_node.hpp` , `tests/test_face_tracker.cpp` | One track pool keyed on `last_seen` ; no separate revival path |
| AR-009 | Done | T2 | SR-002 | covered | `src/nodes/camera_position_change_detector_node.hpp` | Camera-cut detection (histogram) as an association hint |
| AR-009 | Done | T2 | SR-002 | covered | `src/nodes/camera_position_change_detector_node.hpp` | Camera-cut detection (histogram) as an association hint |
| AR-010 | **Done ** — decode b… | T2 | SR-002 | covered | `src/main.cpp` , `src/nodes/scene_boundary_annotator_node.hpp` , `src/nodes/scene_detector_node.hpp` , `src/scene_boundaries.hpp` | Scene-boundary detection (TransNetV2) as an association hint |
| AR-010 | **Done ** — decode b… | T2 | SR-002 | covered | `src/main.cpp` , `src/nodes/scene_boundary_annotator_node.hpp` , `src/nodes/scene_detector_node.hpp` , `src/scene_boundaries.hpp` | Scene-boundary detection (TransNetV2) as an association hint |
| AR-011 | Planned | T1, T2 | SR-002 | untagged | - | **Every model is fed the input it was trained for ** — cost reduced by… |
| AR-011 | Planned | T1, T2 | SR-002 | untagged | - | **Every model is fed the input it was trained for ** — cost reduced by… |
@@ -97,19 +97,19 @@ _None._
| AR-015 | **Done ** — reverse … | T2 | SR-002 | covered | `src/track_registry.hpp` , `tests/test_track_registry.cpp` | Two live tracks owned by one actor ⇒ treat as a detected cut, re-asso… |
| AR-015 | **Done ** — reverse … | T2 | SR-002 | covered | `src/track_registry.hpp` , `tests/test_track_registry.cpp` | Two live tracks owned by one actor ⇒ treat as a detected cut, re-asso… |
| AR-016 | **Done ** — `flush()… | T2 | SR-002 | covered | ` src/main.cpp`, ` src/nodes/result_sink_node.hpp`, ` src/track_registry.hpp`, ` tests/test_track_registry.cpp` | All tracks closed at EOF — a film ends with faces on screen |
| AR-016 | **Done ** — `flush()… | T2 | SR-002 | covered | ` src/main.cpp`, ` src/nodes/result_sink_node.hpp`, ` src/track_registry.hpp`, ` tests/test_track_registry.cpp` | All tracks closed at EOF — a film ends with faces on screen |
| AR-017 | **Done** — ` DeadTra… | T1, T2 | SR-002 | covered | `src/nodes/result_sink_node.hpp` , `src/track_registry.hpp` , `tests/test_track_registry.cpp` | Every presence claim carries its belief and identification route |
| AR-017 | **Done** — ` DeadTra… | T1, T2 | SR-002 | covered | `src/nodes/result_sink_node.hpp` , `src/track_registry.hpp` , `tests/test_track_registry.cpp` | Every presence claim carries its belief and identification route |
| AR-018 | **Done ** — banded a… | T1, T2 | SR-005 | covered | `src/config.hpp` , `src/gallery/track_gallery.hpp` , `src/nodes/identity_matcher_node.hpp` | Per-subject embedding store with banded admission (novel enough, safe… |
| AR-018 | **Done ** — banded a… | T1, T2 | SR-005 | covered | `src/config.hpp` , `src/gallery/track_gallery.hpp` , `src/nodes/identity_matcher_node.hpp` , `tests/test_track_gallery.cpp` | Per-subject embedding store with banded admission (novel enough, safe… |
| AR-019 | **Done ** — all thre… | T2 | SR-005 | covered | `src/gallery/track_gallery.hpp` , `src/nodes/identity_matcher_node.hpp` | Per-film gallery annex from owned tracks; acquires the non-frontal vi… |
| AR-019 | **Done ** — all thre… | T2 | SR-005 | covered | `src/gallery/track_gallery.hpp` , `src/nodes/identity_matcher_node.hpp` , `tests/test_track_gallery.cpp` | Per-film gallery annex from owned tracks; acquires the non-frontal vi… |
| AR-020 | Planned | T2 | SR-005 | untagged | - | Deferred re-identification of unknown tracks against the final expand… |
| AR-020 | Planned | T2 | SR-005 | untagged | - | Deferred re-identification of unknown tracks against the final expand… |
| AR-021 | Planned | T2 | SR-005 | untagged | - | Cluster unknown tracks into one entity per person, under temporal can… |
| AR-021 | Planned | T2 | SR-005 | untagged | - | Cluster unknown tracks into one entity per person, under temporal can… |
| AR-022 | Planned | T1, T2 | §4 | untagged | - | Capture still-unidentified tracks: embeddings, metadata, **context cr… |
| AR-022 | Planned | T1, T2 | §4 | untagged | - | Capture still-unidentified tracks: embeddings, metadata, **context cr… |
| AR-023 | Done | T1 | SR-002 | covered | `src/gallery/gallery_calibration.hpp` , `src/nodes/identity_matcher_node.hpp` | Fit sigmoid calibration from intra/inter similarity distributions |
| AR-023 | Done | T1 | SR-002 | covered | `src/gallery/gallery_calibration.hpp` , `src/nodes/identity_matcher_node.hpp` , `tests/test_calibration.cpp` | Fit sigmoid calibration from intra/inter similarity distributions |
| AR-024 | **Done ** — associat… | T1, static | SR-002 | covered | `src/config.hpp` , `src/evidence_discount.hpp` , `src/gallery/gallery_calibration.hpp` , `src/gallery/track_gallery.hpp` , `src/main.cpp` , `src/nodes/face_tracker_node.hpp` , `src/nodes/identity_matcher_node.hpp` | **Always the calibrated probability, never a raw cosine ** — exception… |
| AR-024 | **Done ** — associat… | T1, static | SR-002 | covered | `src/config.hpp` , `src/evidence_discount.hpp` , `src/gallery/gallery_calibration.hpp` , `src/gallery/track_gallery.hpp` , `src/main.cpp` , `src/nodes/face_tracker_node.hpp` , `src/nodes/identity_matcher_node.hpp` , `tests/test_track_gallery.cpp` | **Always the calibrated probability, never a raw cosine ** — exception… |
| AR-025 | **Done ** — log-odds… | T1 | SR-002 | covered | `src/evidence_discount.hpp` , `src/nodes/identity_matcher_node.hpp` | Per-track Bayesian accumulation in log-odds, with correlated-observat… |
| AR-025 | **Done ** — log-odds… | T1 | SR-002 | covered | `src/evidence_discount.hpp` , `src/nodes/identity_matcher_node.hpp` | Per-track Bayesian accumulation in log-odds, with correlated-observat… |
| AR-026 | In Progress | T1, T4 | SR-001 | covered | `src/backends/gemm_backend.cpp` | All similarity computed as GEMM, including annex and deferred pass |
| AR-026 | In Progress | T1, T4 | SR-001 | covered | `src/backends/gemm_backend.cpp` , `tests/test_similarity.cpp` | All similarity computed as GEMM, including annex and deferred pass |
| AR-027 | Planned | T4 | SR-001 | tagged, unexecuted | `src/backends/gemm_backend.cpp` | Throughput acceptable for **arbitrary ** gallery size |
| AR-027 | Planned | T4 | SR-001 | tagged, unexecuted | `src/backends/gemm_backend.cpp` | Throughput acceptable for **arbitrary ** gallery size |
| AR-028 | Planned | T2 | SR-002 | untagged | - | **Embedding input quality assessed and carried ** — every face scored … |
| AR-028 | Planned | T2 | SR-002 | untagged | - | **Embedding input quality assessed and carried ** — every face scored … |
| AR-029 | Planned | T1 | SR-002 | untagged | - | Sharpness measure on the **aligned crop ** (scale-normalised, so it ca… |
| AR-029 | Planned | T1 | SR-002 | untagged | - | Sharpness measure on the **aligned crop ** (scale-normalised, so it ca… |
| AR-030 | **In Progress ** — m… | T1 | SR-002 | covered | `src/face_utils.hpp` , `tests/test_face_utils.cpp` | Visibility measure from the AR-001 5-point landmarks — extreme pose o… |
| AR-030 | **In Progress ** — m… | T1 | SR-002 | covered | `src/face_utils.hpp` , `src/nodes/face_aligner_node.hpp` , `tests/test_face_utils.cpp` | Visibility measure from the AR-001 5-point landmarks — extreme pose o… |
| DP-001 | Done | T1, manual | PR-004 | covered | `src/main.cpp` | One analysis core; modes are front-ends and must not fork pipeline lo… |
| DP-001 | Done | T1, manual | PR-004 | covered | `src/main.cpp` | One analysis core; modes are front-ends and must not fork pipeline lo… |
| DP-002 | Done | T1, manual | PR-004 | covered | `src/main.cpp` | Batch CLI over one title |
| DP-002 | Done | T1, manual | PR-004 | covered | `src/main.cpp` | Batch CLI over one title |
| DP-003 | Planned | T1, manual | PR-004 | untagged | - | On-demand resident service with bounded, observable queue |
| DP-003 | Planned | T1, manual | PR-004 | untagged | - | On-demand resident service with bounded, observable queue |
@@ -128,7 +128,7 @@ _None._
| IR-008 | **Done** | T1 | SR-003 | covered | ` src/audio_signature.cpp`, ` src/audio_signature.hpp`, ` tests/test_audio_signature.cpp` | Emit and honour the signature's own ` v1:` version prefix |
| IR-008 | **Done** | T1 | SR-003 | covered | ` src/audio_signature.cpp`, ` src/audio_signature.hpp`, ` tests/test_audio_signature.cpp` | Emit and honour the signature's own ` v1:` version prefix |
| GR-001 | Done | T1, T3 | SR-001, SR-005 | covered | ` scripts/make_jellyfin_gallery.py` | Build gallery from Jellyfin library cast, TMDB profile fallback |
| GR-001 | Done | T1, T3 | SR-001, SR-005 | covered | ` scripts/make_jellyfin_gallery.py` | Build gallery from Jellyfin library cast, TMDB profile fallback |
| GR-002 | Done | T1, T3 | PR-003 | covered | ` scripts/make_jellyfin_gallery.py` | Incremental ` --merge` refresh without re-embedding known actors |
| GR-002 | Done | T1, T3 | PR-003 | covered | ` scripts/make_jellyfin_gallery.py` | Incremental ` --merge` refresh without re-embedding known actors |
| GR-003 | Planned | T1, T3 | SR-001 | covered | ` src/build_gallery.cpp`, ` src/gallery/gallery_calibration.hpp`, ` src/gallery/gallery_report.hpp` | Report coverage: zero-image actors, under-referenced actors, dedup, c… |
| GR-003 | **Done** — ` gallery… | T1, T3 | SR-001 | covered | `src/build_gallery.cpp` , ` src/gallery/gallery_calibration.hpp`, ` src/gallery/gallery_report.hpp`, `tests/test_calibration.cpp` | Report coverage: zero-image actors, under-referenced actors, dedup, c… |
| GR-004 | **Done ** — basename… | T1, T3 | SR-001 | covered | `scripts/filter_gallery.py` , `scripts/make_gallery.py` , `scripts/make_jellyfin_gallery.py` , `scripts/movienet_eval.py` , `scripts/optimizer/fetch_missing_actors.py` , `scripts/optimizer/optimize.py` , `scripts/optimizer/reembed_gallery.py` , `scripts/optimizer/replay.py` , `scripts/sae_embed_loader.py` , `scripts/sae_gallery.py` , `scripts/sae_stamp.py` , `scripts/stamp_gallery.py` , `src/config.hpp` , `src/gallery/embedder_stamp.cpp` , `src/gallery/embedder_stamp.hpp` , `src/gallery/gallery_builder.cpp` , `src/gallery/gallery_store.cpp` , `src/kpn_bindings.cpp` , `src/main.cpp` , `src/nodes/embedding_dump_node.hpp` , `src/scene_preview.cpp` , `src/types.hpp` , `tests/test_gallery_store.cpp` | Stamp embedder identity into the gallery; **hard startup error ** on m… |
| GR-004 | **Done ** — basename… | T1, T3 | SR-001 | covered | `scripts/filter_gallery.py` , `scripts/make_gallery.py` , `scripts/make_jellyfin_gallery.py` , `scripts/movienet_eval.py` , `scripts/optimizer/fetch_missing_actors.py` , `scripts/optimizer/optimize.py` , `scripts/optimizer/reembed_gallery.py` , `scripts/optimizer/replay.py` , `scripts/sae_embed_loader.py` , `scripts/sae_gallery.py` , `scripts/sae_stamp.py` , `scripts/stamp_gallery.py` , `src/config.hpp` , `src/gallery/embedder_stamp.cpp` , `src/gallery/embedder_stamp.hpp` , `src/gallery/gallery_builder.cpp` , `src/gallery/gallery_store.cpp` , `src/kpn_bindings.cpp` , `src/main.cpp` , `src/nodes/embedding_dump_node.hpp` , `src/scene_preview.cpp` , `src/types.hpp` , `tests/test_gallery_store.cpp` | Stamp embedder identity into the gallery; **hard startup error ** on m… |
| GR-005 | Done | T1, T3 | **SR-005 ** | covered | `src/gallery/gallery_store.hpp` | Gallery data never leaves the instance |
| GR-005 | Done | T1, T3 | **SR-005 ** | covered | `src/gallery/gallery_store.hpp` | Gallery data never leaves the instance |
| GR-006 | Planned | T1 | SR-005 | untagged | - | Provenance tiers: baked / harvested / confirmed, distinguishable per … |
| GR-006 | Planned | T1 | SR-005 | untagged | - | Provenance tiers: baked / harvested / confirmed, distinguishable per … |
@@ -147,7 +147,7 @@ _None._
| VR-010 | Planned | out-of-ci | PR-002 | tagged, unexecuted | `src/nodes/embedding_dump_node.hpp` | Dump provenance attributes — embedder model, detector settings, `dens… |
| VR-010 | Planned | out-of-ci | PR-002 | tagged, unexecuted | `src/nodes/embedding_dump_node.hpp` | Dump provenance attributes — embedder model, detector settings, `dens… |
| VR-011 | Planned | out-of-ci | PR-002 | untagged | - | Rewrite the replay harness for the post-AR-012 output contract |
| VR-011 | Planned | out-of-ci | PR-002 | untagged | - | Rewrite the replay harness for the post-AR-012 output contract |
| VR-012 | Planned | T4, out-of-ci | PR-002 | untagged | - | Quality-knee study — TPI/FPI vs sharpness and vs pose, as VR-005 did … |
| VR-012 | Planned | T4, out-of-ci | PR-002 | untagged | - | Quality-knee study — TPI/FPI vs sharpness and vs pose, as VR-005 did … |
| VR-013 | **In Progress ** — h… | T4, out-of-ci | PR-002 | un tagged | - | Cross-source identification probe — gallery from one recording, probe… |
| VR-013 | **In Progress** — h… | T4, out-of-ci | PR-002 | tagged, unexecuted | ` experiments/xsource/resolution_sweep.py `, ` experiments/xsource/verify_labels.py ` | Cross-source identification probe — gallery from one recording, probe… |
| VR-014 | **Done** — 40 rando… | T2, out-of-ci | PR-002 | covered | ` scripts/validation/test_audio_offset.py` | Audio-signature **offset recovery on real content** — a known trim re… |
| VR-014 | **Done** — 40 rando… | T2, out-of-ci | PR-002 | covered | ` scripts/validation/test_audio_offset.py` | Audio-signature **offset recovery on real content** — a known trim re… |
## Detailed mapping
## Detailed mapping
@@ -171,15 +171,16 @@ _None._
**Locations:** 4
**Locations:** 4
- [` src/main.cpp:86`](../src/main.cpp#L86) — ` static constexpr std::size_t kSceneJoinDepth = 256;`
- [` src/main.cpp:86`](../src/main.cpp#L86) — ` static constexpr std::size_t kSceneJoinDepth = 256;`
- [` src/main.cpp:299` ](../src/main.cpp#L299 ) — `Unknown`
- [` src/main.cpp:319 ` ](../src/main.cpp#L319 ) — ` Unknown`
- [` src/nodes/identity_matcher_node.hpp:166`](../src/nodes/identity_matcher_node.hpp#L166) — ` std::vector<float> host_query(static_cast<size_t>(kMaxFaces) * 512);`
- [` src/nodes/identity_matcher_node.hpp:166`](../src/nodes/identity_matcher_node.hpp#L166) — ` std::vector<float> host_query(static_cast<size_t>(kMaxFaces) * 512);`
- [` tests/test_replay_fixtures.cpp:3`](../tests/test_replay_fixtures.cpp#L3) — ` Unknown`
- [` tests/test_replay_fixtures.cpp:3`](../tests/test_replay_fixtures.cpp#L3) — ` Unknown`
### AR-005
### AR-005
**Locations: ** 2
**Locations:** 3
- [` src/face_utils.hpp:2`](../src/face_utils.hpp#L2) — ` Unknown`
- [` src/face_utils.hpp:2`](../src/face_utils.hpp#L2) — ` Unknown`
- [` src/nodes/face_aligner_node.hpp:7`](../src/nodes/face_aligner_node.hpp#L7) — ` struct FaceAlignerFunc`
- [` tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — ` Unknown`
- [` tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — ` Unknown`
### AR-006
### AR-006
@@ -190,19 +191,21 @@ _None._
### AR-007
### AR-007
**Locations: ** 3
**Locations:** 4
- [` src/config.hpp:108`](../src/config.hpp#L108) — ` Unknown`
- [` src/config.hpp:108`](../src/config.hpp#L108) — ` Unknown`
- [` src/main.cpp:213`](../src/main.cpp#L213) — ` reg_cfg, EvidenceDiscounter(same_person));`
- [` src/main.cpp:213`](../src/main.cpp#L213) — ` reg_cfg, EvidenceDiscounter(same_person));`
- [` src/nodes/face_tracker_node.hpp:2`](../src/nodes/face_tracker_node.hpp#L2) — ` Unknown`
- [` src/nodes/face_tracker_node.hpp:2`](../src/nodes/face_tracker_node.hpp#L2) — ` Unknown`
- [` tests/test_face_tracker.cpp:1`](../tests/test_face_tracker.cpp#L1) — ` Unknown`
### AR-008
### AR-008
**Locations: ** 3
**Locations:** 4
- [` src/config.hpp:108`](../src/config.hpp#L108) — ` Unknown`
- [` src/config.hpp:108`](../src/config.hpp#L108) — ` Unknown`
- [` src/main.cpp:213`](../src/main.cpp#L213) — ` reg_cfg, EvidenceDiscounter(same_person));`
- [` src/main.cpp:213`](../src/main.cpp#L213) — ` reg_cfg, EvidenceDiscounter(same_person));`
- [` src/nodes/face_tracker_node.hpp:2`](../src/nodes/face_tracker_node.hpp#L2) — ` Unknown`
- [` src/nodes/face_tracker_node.hpp:2`](../src/nodes/face_tracker_node.hpp#L2) — ` Unknown`
- [` tests/test_face_tracker.cpp:1`](../tests/test_face_tracker.cpp#L1) — ` Unknown`
### AR-009
### AR-009
@@ -215,9 +218,9 @@ _None._
**Locations:** 9
**Locations:** 9
- [` src/main.cpp:86`](../src/main.cpp#L86) — ` static constexpr std::size_t kSceneJoinDepth = 256;`
- [` src/main.cpp:86`](../src/main.cpp#L86) — ` static constexpr std::size_t kSceneJoinDepth = 256;`
- [` src/main.cpp:309` ](../src/main.cpp#L309 ) — `Unknown`
- [` src/main.cpp:329 ` ](../src/main.cpp#L329 ) — ` Unknown`
- [` src/main.cpp:379` ](../src/main.cpp#L379 ) — `return run_net(std::move(net));`
- [` src/main.cpp:399 ` ](../src/main.cpp#L399 ) — ` return run_net(std::move(net));`
- [` src/main.cpp:411` ](../src/main.cpp#L411 ) — `Unknown`
- [` src/main.cpp:431 ` ](../src/main.cpp#L43 1) — ` Unknown`
- [` src/nodes/scene_boundary_annotator_node.hpp:2`](../src/nodes/scene_boundary_annotator_node.hpp#L2) — ` Unknown`
- [` src/nodes/scene_boundary_annotator_node.hpp:2`](../src/nodes/scene_boundary_annotator_node.hpp#L2) — ` Unknown`
- [` src/nodes/scene_detector_node.hpp:36`](../src/nodes/scene_detector_node.hpp#L36) — ` static constexpr std::string_view label() { return "scene_detector"; }`
- [` src/nodes/scene_detector_node.hpp:36`](../src/nodes/scene_detector_node.hpp#L36) — ` static constexpr std::string_view label() { return "scene_detector"; }`
- [` src/nodes/scene_detector_node.hpp:110`](../src/nodes/scene_detector_node.hpp#L110) — ` void flush_remaining()`
- [` src/nodes/scene_detector_node.hpp:110`](../src/nodes/scene_detector_node.hpp#L110) — ` void flush_remaining()`
@@ -279,42 +282,48 @@ _None._
### AR-018
### AR-018
**Locations: ** 3
**Locations:** 5
- [` src/config.hpp:152`](../src/config.hpp#L152) — ` Unknown`
- [` src/config.hpp:152`](../src/config.hpp#L152) — ` Unknown`
- [` src/gallery/track_gallery.hpp:161` ](../src/gallery/track_gallery.hpp#L161 ) — `struct TrackState`
- [` src/gallery/track_gallery.hpp:164 ` ](../src/gallery/track_gallery.hpp#L164 ) — ` struct TrackState`
- [` src/gallery/track_gallery.hpp:274`](../src/gallery/track_gallery.hpp#L274) — ` static int plurality_actor(const TrackState& ts)`
- [` src/nodes/identity_matcher_node.hpp:110`](../src/nodes/identity_matcher_node.hpp#L110) — ` std::vector<float> host_gallery(static_cast<size_t>(n_gallery_) * 512);`
- [` src/nodes/identity_matcher_node.hpp:110`](../src/nodes/identity_matcher_node.hpp#L110) — ` std::vector<float> host_gallery(static_cast<size_t>(n_gallery_) * 512);`
- [` tests/test_track_gallery.cpp:1`](../tests/test_track_gallery.cpp#L1) — ` Unknown`
### AR-019
### AR-019
**Locations: ** 3
**Locations:** 4
- [` src/gallery/track_gallery.hpp:122` ](../src/gallery/track_gallery.hpp#L122 ) — `void forget(int track_id) { tracks_.erase(track_id); }`
- [` src/gallery/track_gallery.hpp:123 ` ](../src/gallery/track_gallery.hpp#L123 ) — ` void forget(int track_id) { tracks_.erase(track_id); }`
- [` src/nodes/identity_matcher_node.hpp:147`](../src/nodes/identity_matcher_node.hpp#L147) — ` MatchedSceneFrame operator()(TrackedSceneFrame tf)`
- [` src/nodes/identity_matcher_node.hpp:147`](../src/nodes/identity_matcher_node.hpp#L147) — ` MatchedSceneFrame operator()(TrackedSceneFrame tf)`
- [` src/nodes/identity_matcher_node.hpp:285`](../src/nodes/identity_matcher_node.hpp#L285) — ` Unknown`
- [` src/nodes/identity_matcher_node.hpp:285`](../src/nodes/identity_matcher_node.hpp#L285) — ` Unknown`
- [` tests/test_track_gallery.cpp:1`](../tests/test_track_gallery.cpp#L1) — ` Unknown`
### AR-023
### AR-023
**Locations: ** 3
**Locations:** 4
- [` src/gallery/gallery_calibration.hpp:2`](../src/gallery/gallery_calibration.hpp#L2) — ` Unknown`
- [` src/gallery/gallery_calibration.hpp:2`](../src/gallery/gallery_calibration.hpp#L2) — ` Unknown`
- [` src/gallery/gallery_calibration.hpp:53`](../src/gallery/gallery_calibration.hpp#L53) — ` float boundary_at(float p = 0.5f, float log_prior_odds = 0.f) const`
- [` src/gallery/gallery_calibration.hpp:53`](../src/gallery/gallery_calibration.hpp#L53) — ` float boundary_at(float p = 0.5f, float log_prior_odds = 0.f) const`
- [` src/nodes/identity_matcher_node.hpp:117`](../src/nodes/identity_matcher_node.hpp#L117) — ` const GalleryCalibration& calibration() const { return cal_; }`
- [` src/nodes/identity_matcher_node.hpp:117`](../src/nodes/identity_matcher_node.hpp#L117) — ` const GalleryCalibration& calibration() const { return cal_; }`
- [` tests/test_calibration.cpp:1`](../tests/test_calibration.cpp#L1) — ` Unknown`
### AR-024
### AR-024
**Locations: ** 10
**Locations:** 12
- [` src/config.hpp:108`](../src/config.hpp#L108) — ` Unknown`
- [` src/config.hpp:108`](../src/config.hpp#L108) — ` Unknown`
- [` src/config.hpp:152`](../src/config.hpp#L152) — ` Unknown`
- [` src/config.hpp:152`](../src/config.hpp#L152) — ` Unknown`
- [` src/evidence_discount.hpp:2`](../src/evidence_discount.hpp#L2) — ` Unknown`
- [` src/evidence_discount.hpp:2`](../src/evidence_discount.hpp#L2) — ` Unknown`
- [` src/gallery/gallery_calibration.hpp:53`](../src/gallery/gallery_calibration.hpp#L53) — ` float boundary_at(float p = 0.5f, float log_prior_odds = 0.f) const`
- [` src/gallery/gallery_calibration.hpp:53`](../src/gallery/gallery_calibration.hpp#L53) — ` float boundary_at(float p = 0.5f, float log_prior_odds = 0.f) const`
- [` src/gallery/track_gallery.hpp:132` ](../src/gallery/track_gallery.hpp#L132 ) — `void set_calibration(std::function<float(float)> c) { calibrate_ = std::move(c); }`
- [` src/gallery/track_gallery.hpp:133 ` ](../src/gallery/track_gallery.hpp#L133 ) — ` void set_calibration(std::function<float(float)> c) { calibrate_ = std::move(c); }`
- [` src/gallery/track_gallery.hpp:161` ](../src/gallery/track_gallery.hpp#L161 ) — `struct TrackState`
- [` src/gallery/track_gallery.hpp:164 ` ](../src/gallery/track_gallery.hpp#L164 ) — ` struct TrackState`
- [` src/gallery/track_gallery.hpp:274`](../src/gallery/track_gallery.hpp#L274) — ` static int plurality_actor(const TrackState& ts)`
- [` src/main.cpp:213`](../src/main.cpp#L213) — ` reg_cfg, EvidenceDiscounter(same_person));`
- [` src/main.cpp:213`](../src/main.cpp#L213) — ` reg_cfg, EvidenceDiscounter(same_person));`
- [` src/nodes/face_tracker_node.hpp:2`](../src/nodes/face_tracker_node.hpp#L2) — ` Unknown`
- [` src/nodes/face_tracker_node.hpp:2`](../src/nodes/face_tracker_node.hpp#L2) — ` Unknown`
- [` src/nodes/identity_matcher_node.hpp:110`](../src/nodes/identity_matcher_node.hpp#L110) — ` std::vector<float> host_gallery(static_cast<size_t>(n_gallery_) * 512);`
- [` src/nodes/identity_matcher_node.hpp:110`](../src/nodes/identity_matcher_node.hpp#L110) — ` std::vector<float> host_gallery(static_cast<size_t>(n_gallery_) * 512);`
- [` src/nodes/identity_matcher_node.hpp:117`](../src/nodes/identity_matcher_node.hpp#L117) — ` const GalleryCalibration& calibration() const { return cal_; }`
- [` src/nodes/identity_matcher_node.hpp:117`](../src/nodes/identity_matcher_node.hpp#L117) — ` const GalleryCalibration& calibration() const { return cal_; }`
- [` tests/test_track_gallery.cpp:1`](../tests/test_track_gallery.cpp#L1) — ` Unknown`
### AR-025
### AR-025
@@ -326,9 +335,10 @@ _None._
### AR-026
### AR-026
**Locations: ** 1
**Locations:** 2
- [` src/backends/gemm_backend.cpp:44`](../src/backends/gemm_backend.cpp#L44) — ` constexpr int kDim = 512;`
- [` src/backends/gemm_backend.cpp:44`](../src/backends/gemm_backend.cpp#L44) — ` constexpr int kDim = 512;`
- [` tests/test_similarity.cpp:1`](../tests/test_similarity.cpp#L1) — ` Unknown`
### AR-027
### AR-027
@@ -338,9 +348,10 @@ _None._
### AR-030
### AR-030
**Locations: ** 2
**Locations:** 3
- [` src/face_utils.hpp:2`](../src/face_utils.hpp#L2) — ` Unknown`
- [` src/face_utils.hpp:2`](../src/face_utils.hpp#L2) — ` Unknown`
- [` src/nodes/face_aligner_node.hpp:7`](../src/nodes/face_aligner_node.hpp#L7) — ` struct FaceAlignerFunc`
- [` tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — ` Unknown`
- [` tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — ` Unknown`
### DP-001
### DP-001
@@ -369,7 +380,7 @@ _None._
### GR-003
### GR-003
**Locations: ** 13
**Locations:** 16
- [` src/build_gallery.cpp:83`](../src/build_gallery.cpp#L83) — ` Unknown`
- [` src/build_gallery.cpp:83`](../src/build_gallery.cpp#L83) — ` Unknown`
- [` src/gallery/gallery_calibration.hpp:80`](../src/gallery/gallery_calibration.hpp#L80) — ` struct GalleryCalibrationStats`
- [` src/gallery/gallery_calibration.hpp:80`](../src/gallery/gallery_calibration.hpp#L80) — ` struct GalleryCalibrationStats`
@@ -384,6 +395,9 @@ _None._
- [` src/gallery/gallery_report.hpp:446`](../src/gallery/gallery_report.hpp#L446) — ` inline void save_gallery_report(const std::string& path, const GalleryReport& r)`
- [` src/gallery/gallery_report.hpp:446`](../src/gallery/gallery_report.hpp#L446) — ` inline void save_gallery_report(const std::string& path, const GalleryReport& r)`
- [` src/gallery/gallery_report.hpp:454`](../src/gallery/gallery_report.hpp#L454) — ` inline GalleryReport load_gallery_report(const std::string& path)`
- [` src/gallery/gallery_report.hpp:454`](../src/gallery/gallery_report.hpp#L454) — ` inline GalleryReport load_gallery_report(const std::string& path)`
- [` src/gallery/gallery_report.hpp:464`](../src/gallery/gallery_report.hpp#L464) — ` return gallery_report_from_json(j);`
- [` src/gallery/gallery_report.hpp:464`](../src/gallery/gallery_report.hpp#L464) — ` return gallery_report_from_json(j);`
- [` tests/test_calibration.cpp:192`](../tests/test_calibration.cpp#L192) — ` Embedding unit_axis(int slot)`
- [` tests/test_calibration.cpp:222`](../tests/test_calibration.cpp#L222) — ` Unknown`
- [` tests/test_calibration.cpp:248`](../tests/test_calibration.cpp#L248) — ` Unknown`
### GR-004
### GR-004
@@ -535,7 +549,7 @@ _None._
### PR-002
### PR-002
**Locations: ** 8
**Locations:** 10
- [` src/nodes/embedding_dump_node.hpp:2`](../src/nodes/embedding_dump_node.hpp#L2) — ` Unknown`
- [` src/nodes/embedding_dump_node.hpp:2`](../src/nodes/embedding_dump_node.hpp#L2) — ` Unknown`
- [` src/nodes/embedding_dump_node.hpp:18`](../src/nodes/embedding_dump_node.hpp#L18) — ` Unknown`
- [` src/nodes/embedding_dump_node.hpp:18`](../src/nodes/embedding_dump_node.hpp#L18) — ` Unknown`
@@ -545,6 +559,8 @@ _None._
- [` scripts/optimizer/replay.py:5`](../scripts/optimizer/replay.py#L5) — ` Reads an embedding dump (scripts/optimizer/SCHEMA.md), feeds each frame as an`
- [` scripts/optimizer/replay.py:5`](../scripts/optimizer/replay.py#L5) — ` Reads an embedding dump (scripts/optimizer/SCHEMA.md), feeds each frame as an`
- [` scripts/optimizer/second_score.py:5`](../scripts/optimizer/second_score.py#L5) — ` Unknown`
- [` scripts/optimizer/second_score.py:5`](../scripts/optimizer/second_score.py#L5) — ` Unknown`
- [` scripts/validation/ground_truth.py:24`](../scripts/validation/ground_truth.py#L24) — ` Unknown`
- [` scripts/validation/ground_truth.py:24`](../scripts/validation/ground_truth.py#L24) — ` Unknown`
- [` experiments/xsource/resolution_sweep.py:4`](../experiments/xsource/resolution_sweep.py#L4) — ` Unknown`
- [` experiments/xsource/verify_labels.py:4`](../experiments/xsource/verify_labels.py#L4) — ` Unknown`
### PR-004
### PR-004
@@ -554,7 +570,7 @@ _None._
### SR-001
### SR-001
**Locations: ** 60
**Locations:** 64
- [` src/backends/gemm_backend.cpp:44`](../src/backends/gemm_backend.cpp#L44) — ` constexpr int kDim = 512;`
- [` src/backends/gemm_backend.cpp:44`](../src/backends/gemm_backend.cpp#L44) — ` constexpr int kDim = 512;`
- [` src/build_gallery.cpp:83`](../src/build_gallery.cpp#L83) — ` Unknown`
- [` src/build_gallery.cpp:83`](../src/build_gallery.cpp#L83) — ` Unknown`
@@ -584,6 +600,9 @@ _None._
- [` src/nodes/embedding_dump_node.hpp:238`](../src/nodes/embedding_dump_node.hpp#L238) — ` H5::H5File file(path_, H5F_ACC_TRUNC);`
- [` src/nodes/embedding_dump_node.hpp:238`](../src/nodes/embedding_dump_node.hpp#L238) — ` H5::H5File file(path_, H5F_ACC_TRUNC);`
- [` src/scene_preview.cpp:133`](../src/scene_preview.cpp#L133) — ` int main(int argc, char** argv)`
- [` src/scene_preview.cpp:133`](../src/scene_preview.cpp#L133) — ` int main(int argc, char** argv)`
- [` src/types.hpp:148`](../src/types.hpp#L148) — ` struct Actor`
- [` src/types.hpp:148`](../src/types.hpp#L148) — ` struct Actor`
- [` tests/test_calibration.cpp:192`](../tests/test_calibration.cpp#L192) — ` Embedding unit_axis(int slot)`
- [` tests/test_calibration.cpp:222`](../tests/test_calibration.cpp#L222) — ` Unknown`
- [` tests/test_calibration.cpp:248`](../tests/test_calibration.cpp#L248) — ` Unknown`
- [` tests/test_gallery_store.cpp:182`](../tests/test_gallery_store.cpp#L182) — ` TempFile tf("gallery_stamped.h5");`
- [` tests/test_gallery_store.cpp:182`](../tests/test_gallery_store.cpp#L182) — ` TempFile tf("gallery_stamped.h5");`
- [` tests/test_gallery_store.cpp:201`](../tests/test_gallery_store.cpp#L201) — ` TempFile tf("gallery_stamped.h5");`
- [` tests/test_gallery_store.cpp:201`](../tests/test_gallery_store.cpp#L201) — ` TempFile tf("gallery_stamped.h5");`
- [` tests/test_gallery_store.cpp:219`](../tests/test_gallery_store.cpp#L219) — ` TempFile tf("gallery_unstamped.h5");`
- [` tests/test_gallery_store.cpp:219`](../tests/test_gallery_store.cpp#L219) — ` TempFile tf("gallery_unstamped.h5");`
@@ -596,6 +615,7 @@ _None._
- [` tests/test_gallery_store.cpp:348`](../tests/test_gallery_store.cpp#L348) — ` Unknown`
- [` tests/test_gallery_store.cpp:348`](../tests/test_gallery_store.cpp#L348) — ` Unknown`
- [` tests/test_gallery_store.cpp:367`](../tests/test_gallery_store.cpp#L367) — ` Unknown`
- [` tests/test_gallery_store.cpp:367`](../tests/test_gallery_store.cpp#L367) — ` Unknown`
- [` tests/test_gallery_store.cpp:384`](../tests/test_gallery_store.cpp#L384) — ` TempFile tf("fake_model.onnx");`
- [` tests/test_gallery_store.cpp:384`](../tests/test_gallery_store.cpp#L384) — ` TempFile tf("fake_model.onnx");`
- [` tests/test_similarity.cpp:1`](../tests/test_similarity.cpp#L1) — ` Unknown`
- [` scripts/filter_gallery.py:80`](../scripts/filter_gallery.py#L80) — ` if actor_jellyfin_id(a) in cast_ids]`
- [` scripts/filter_gallery.py:80`](../scripts/filter_gallery.py#L80) — ` if actor_jellyfin_id(a) in cast_ids]`
- [` scripts/make_gallery.py:181`](../scripts/make_gallery.py#L181) — ` Unknown`
- [` scripts/make_gallery.py:181`](../scripts/make_gallery.py#L181) — ` Unknown`
- [` scripts/make_jellyfin_gallery.py:4`](../scripts/make_jellyfin_gallery.py#L4) — ` Unknown`
- [` scripts/make_jellyfin_gallery.py:4`](../scripts/make_jellyfin_gallery.py#L4) — ` Unknown`
@@ -619,7 +639,7 @@ _None._
### SR-002
### SR-002
**Locations: ** 32
**Locations:** 35
- [` src/config.hpp:44`](../src/config.hpp#L44) — ` Unknown`
- [` src/config.hpp:44`](../src/config.hpp#L44) — ` Unknown`
- [` src/config.hpp:108`](../src/config.hpp#L108) — ` Unknown`
- [` src/config.hpp:108`](../src/config.hpp#L108) — ` Unknown`
@@ -630,12 +650,13 @@ _None._
- [` src/main.cpp:86`](../src/main.cpp#L86) — ` static constexpr std::size_t kSceneJoinDepth = 256;`
- [` src/main.cpp:86`](../src/main.cpp#L86) — ` static constexpr std::size_t kSceneJoinDepth = 256;`
- [` src/main.cpp:213`](../src/main.cpp#L213) — ` reg_cfg, EvidenceDiscounter(same_person));`
- [` src/main.cpp:213`](../src/main.cpp#L213) — ` reg_cfg, EvidenceDiscounter(same_person));`
- [` src/main.cpp:230`](../src/main.cpp#L230) — ` reg_cfg, EvidenceDiscounter(same_person));`
- [` src/main.cpp:230`](../src/main.cpp#L230) — ` reg_cfg, EvidenceDiscounter(same_person));`
- [` src/main.cpp:299` ](../src/main.cpp#L299 ) — `Unknown`
- [` src/main.cpp:319 ` ](../src/main.cpp#L319 ) — ` Unknown`
- [` src/main.cpp:309` ](../src/main.cpp#L309 ) — `Unknown`
- [` src/main.cpp:329 ` ](../src/main.cpp#L329 ) — ` Unknown`
- [` src/main.cpp:379` ](../src/main.cpp#L379 ) — `return run_net(std::move(net));`
- [` src/main.cpp:399 ` ](../src/main.cpp#L399 ) — ` return run_net(std::move(net));`
- [` src/main.cpp:411` ](../src/main.cpp#L411 ) — `Unknown`
- [` src/main.cpp:431 ` ](../src/main.cpp#L43 1) — ` Unknown`
- [` src/nodes/camera_position_change_detector_node.hpp:30`](../src/nodes/camera_position_change_detector_node.hpp#L30) — ` struct CameraPositionChangeDetectorFunc`
- [` src/nodes/camera_position_change_detector_node.hpp:30`](../src/nodes/camera_position_change_detector_node.hpp#L30) — ` struct CameraPositionChangeDetectorFunc`
- [` src/nodes/embedder_node.hpp:21`](../src/nodes/embedder_node.hpp#L21) — ` struct EmbedderFunc`
- [` src/nodes/embedder_node.hpp:21`](../src/nodes/embedder_node.hpp#L21) — ` struct EmbedderFunc`
- [` src/nodes/face_aligner_node.hpp:7`](../src/nodes/face_aligner_node.hpp#L7) — ` struct FaceAlignerFunc`
- [` src/nodes/face_detector_node.hpp:2`](../src/nodes/face_detector_node.hpp#L2) — ` Unknown`
- [` src/nodes/face_detector_node.hpp:2`](../src/nodes/face_detector_node.hpp#L2) — ` Unknown`
- [` src/nodes/face_detector_node.hpp:47`](../src/nodes/face_detector_node.hpp#L47) — ` private:`
- [` src/nodes/face_detector_node.hpp:47`](../src/nodes/face_detector_node.hpp#L47) — ` private:`
- [` src/nodes/face_tracker_node.hpp:2`](../src/nodes/face_tracker_node.hpp#L2) — ` Unknown`
- [` src/nodes/face_tracker_node.hpp:2`](../src/nodes/face_tracker_node.hpp#L2) — ` Unknown`
@@ -652,6 +673,8 @@ _None._
- [` src/nodes/scene_detector_node.hpp:144`](../src/nodes/scene_detector_node.hpp#L144) — ` void write_output()`
- [` src/nodes/scene_detector_node.hpp:144`](../src/nodes/scene_detector_node.hpp#L144) — ` void write_output()`
- [` src/scene_boundaries.hpp:2`](../src/scene_boundaries.hpp#L2) — ` Unknown`
- [` src/scene_boundaries.hpp:2`](../src/scene_boundaries.hpp#L2) — ` Unknown`
- [` src/track_registry.hpp:2`](../src/track_registry.hpp#L2) — ` Unknown`
- [` src/track_registry.hpp:2`](../src/track_registry.hpp#L2) — ` Unknown`
- [` tests/test_calibration.cpp:1`](../tests/test_calibration.cpp#L1) — ` Unknown`
- [` tests/test_face_tracker.cpp:1`](../tests/test_face_tracker.cpp#L1) — ` Unknown`
- [` tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — ` Unknown`
- [` tests/test_face_utils.cpp:1`](../tests/test_face_utils.cpp#L1) — ` Unknown`
### SR-003
### SR-003
@@ -668,16 +691,18 @@ _None._
### SR-005
### SR-005
**Locations: ** 9
**Locations:** 11
- [` src/config.hpp:152`](../src/config.hpp#L152) — ` Unknown`
- [` src/config.hpp:152`](../src/config.hpp#L152) — ` Unknown`
- [` src/gallery/gallery_store.hpp:15`](../src/gallery/gallery_store.hpp#L15) — ` Unknown`
- [` src/gallery/gallery_store.hpp:15`](../src/gallery/gallery_store.hpp#L15) — ` Unknown`
- [` src/gallery/track_gallery.hpp:122` ](../src/gallery/track_gallery.hpp#L122 ) — `void forget(int track_id) { tracks_.erase(track_id); }`
- [` src/gallery/track_gallery.hpp:123 ` ](../src/gallery/track_gallery.hpp#L123 ) — ` void forget(int track_id) { tracks_.erase(track_id); }`
- [` src/gallery/track_gallery.hpp:132` ](../src/gallery/track_gallery.hpp#L132 ) — `void set_calibration(std::function<float(float)> c) { calibrate_ = std::move(c); }`
- [` src/gallery/track_gallery.hpp:133 ` ](../src/gallery/track_gallery.hpp#L133 ) — ` void set_calibration(std::function<float(float)> c) { calibrate_ = std::move(c); }`
- [` src/gallery/track_gallery.hpp:161` ](../src/gallery/track_gallery.hpp#L161 ) — `struct TrackState`
- [` src/gallery/track_gallery.hpp:164 ` ](../src/gallery/track_gallery.hpp#L164 ) — ` struct TrackState`
- [` src/gallery/track_gallery.hpp:274`](../src/gallery/track_gallery.hpp#L274) — ` static int plurality_actor(const TrackState& ts)`
- [` src/nodes/identity_matcher_node.hpp:110`](../src/nodes/identity_matcher_node.hpp#L110) — ` std::vector<float> host_gallery(static_cast<size_t>(n_gallery_) * 512);`
- [` src/nodes/identity_matcher_node.hpp:110`](../src/nodes/identity_matcher_node.hpp#L110) — ` std::vector<float> host_gallery(static_cast<size_t>(n_gallery_) * 512);`
- [` src/nodes/identity_matcher_node.hpp:147`](../src/nodes/identity_matcher_node.hpp#L147) — ` MatchedSceneFrame operator()(TrackedSceneFrame tf)`
- [` src/nodes/identity_matcher_node.hpp:147`](../src/nodes/identity_matcher_node.hpp#L147) — ` MatchedSceneFrame operator()(TrackedSceneFrame tf)`
- [` src/nodes/identity_matcher_node.hpp:285`](../src/nodes/identity_matcher_node.hpp#L285) — ` Unknown`
- [` src/nodes/identity_matcher_node.hpp:285`](../src/nodes/identity_matcher_node.hpp#L285) — ` Unknown`
- [` tests/test_track_gallery.cpp:1`](../tests/test_track_gallery.cpp#L1) — ` Unknown`
- [` scripts/make_jellyfin_gallery.py:4`](../scripts/make_jellyfin_gallery.py#L4) — ` Unknown`
- [` scripts/make_jellyfin_gallery.py:4`](../scripts/make_jellyfin_gallery.py#L4) — ` Unknown`
### UT-001
### UT-001
@@ -789,6 +814,13 @@ _None._
- [` src/nodes/embedding_dump_node.hpp:159`](../src/nodes/embedding_dump_node.hpp#L159) — ` void operator()(EmbeddedSceneFrame ef)`
- [` src/nodes/embedding_dump_node.hpp:159`](../src/nodes/embedding_dump_node.hpp#L159) — ` void operator()(EmbeddedSceneFrame ef)`
- [` src/nodes/embedding_dump_node.hpp:242`](../src/nodes/embedding_dump_node.hpp#L242) — ` H5::H5File file(path_, H5F_ACC_TRUNC);`
- [` src/nodes/embedding_dump_node.hpp:242`](../src/nodes/embedding_dump_node.hpp#L242) — ` H5::H5File file(path_, H5F_ACC_TRUNC);`
### VR-013
**Locations:** 2
- [` experiments/xsource/resolution_sweep.py:4`](../experiments/xsource/resolution_sweep.py#L4) — ` Unknown`
- [` experiments/xsource/verify_labels.py:4`](../experiments/xsource/verify_labels.py#L4) — ` Unknown`
### VR-014
### VR-014
**Locations:** 1
**Locations:** 1