491dad1c67
Two identity fixes, neither yet run on a GPU. has_face, the extras gate: fixing the bbox coordinate space made extras worse, because crops finally landed on their subjects and a background extra bound to the lead at 1.00. /vision stamps has_face per character using face_detect and _pair_faces_to_present, so containment and its margin match the speaker path. Identity skips has_face is False before it crops or embeds. Fails open on a missing or raising detector, and gates on `is False` so an older vision blob behaves as before. The NONE mint: /identity/resolve now writes each crop's embedding to the crop's key with a .npy suffix and returns emb_uri. The orchestrator cannot compute an embedding of its own (siglip and gemma cannot both be resident), which is why it was clearing a deliberate NONE instead of minting an anonymous character. Also: audit_registry.py, and the tmux respawn-window trap, which leaves a bare shell rather than re-running the window command. decisions/identity-bbox.md#face-gates-enrollment decisions/identity-bbox.md#none-mints-an-anonymous-character Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3.6 KiB
3.6 KiB
decisions/
One entry per settled question about this pipeline. An entry names the claim, the evidence, the date, and what it forbids or permits next.
No entry is a plan. NEXT.md holds the plan, ROADMAP.md holds the horizon, and a limitation that is
still live belongs in caveats/.
Rules for this directory
- One file per topic, one
##section per question, so the index can link an anchor. - An entry cites a file and line, a commit, or a test. No citation means it is an opinion, and an opinion gets deleted rather than defended.
- Closed means acting on it is safe. Open means investigated and undecided. Void means the evidence turned out to be invalid and the claim must not be cited again.
- Rewrite an entry when something contradicts it, and say what changed.