Adds decision entries for the unpaired set-of-mark label, the interjection verifier false positive, and the vision-blob clearing bug, plus the per-run speaker audit script used to measure the chapter. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
4.6 KiB
HANDOFF, 2026-08-11 late session
Live state is in NEXT.md. This file is only what this session did.
Asked
Continue from the previous handoff: fix speaker attribution, then rerun and re-read the named-speaker share. Mid-session: what happens to unidentified people in a two-person panel, can a known character be mis-named, and keep watch during the run.
Result
The named-speaker share is 9 of 95 speech lines, 9%. The previous 30% counted fake tails. All 9 binds
are Choi Haeseon, the over-merged row. script passed 116/116 for the first time.
Identity, not attribution, is now the constraint. 26 of 113 detected people carry an identity. 25 of the 26 are that one row. This chapter caps near 23% named even with perfect balloon binding.
Six defects, four found by measuring the run rather than by reading code. Each has a decision entry:
| # | defect | entry |
|---|---|---|
| 1 | tail stamped on a model guess at confidence 1.0 |
decisions/speaker-attribution.md#no-fake-tail |
| 2 | a two-word cast name always failed the script verifier | #multiword-cast-names |
| 3 | /stage/clear dialogue deleted nothing and reported success |
decisions/storage-layout.md#clear-vision-blob |
| 4 | gemma's speaker answer echoed the prompt label, became a name | #prompt-label-answers |
| 5 | som_face stamped on a mark that paired to nobody |
#unpaired-mark |
| 6 | one two-letter interjection halted the chapter at 112/116 | #interjection-false-positive |
Changed
Workers, /home/kami/Programs/n8n-worker, branch restore-runtime, commits e8941d8 8071137 a965077
plus docs:
worker_vision.py:_annotate_speaker_methods,_apply_speaker_labels, new_present_keysdecisions/speaker-attribution.md(new, 5 sections),decisions/storage-layout.md#clear-vision-blob,caveats/speaker-attribution.md,caveats/audit-open.md#dishonest-clearing, both indexes,JOURNAL.md,NEXT.md
Orchestrator, /mnt/server/home/kami/docker-apps, commits b18b6b4 603d388 db8d7c5 ccc3a8e plus the
interjection commit:
correctness.py: tokenizedallowed,_ID_SHAPEDguard innormalize_speaker, interjection stopwords, short-quote grounding skipdb.py:_STAGE_VISION_KEYSand the strip pass inclear_stage_datatest_script_verify.py,test_correctness.py,test_db.py: one case each
Measured
Job 778297bc-e7ce-439d-91b5-8a027060d17f, chapter 7c944dd4-e972-42c7-ba60-9f6939548e80, 116 panels.
- 113 orchestrator tests pass.
worker_vision.pyself-check passes. dialogue116/116,direct116/116,scene116/116,script116/116.- speech lines 95, named 9. Multi-character panels 0 of 40 by design. Single-character 9 of 55.
speaker_method:unknown47,model_solo28,solo_prior8,som_face7,turn_taking5.- unresolved name refs 3, all
brown ponytail, green dress, from a neighbouring panel in the same 8-panel window. Was 24 of 51 before the fix. - identity assignments 26, of which
character_afa762"Choi Haeseon" holds 25. - registry duplicates that block a correct bind:
seonhomatches 2 rows,lim seonhomatches 2 rows. - buckets during
tts:panels116,raw79,manga491,audio1,layers0,video0.
Open
-
The run is still going. It was in
ttsat 26/116 when this was written, withlayers render assembleunrun.ttsis the bottleneck. Read it:/usr/bin/ssh kami@192.168.1.104 "curl -s 'http://127.0.0.1:9090/job/status?job_id=778297bc-e7ce-439d-91b5-8a027060d17f'"If it failed, clear the failed stage and resume:
/usr/bin/ssh kami@192.168.1.104 "curl -s -X POST http://127.0.0.1:9090/stage/clear -H 'Content-Type: application/json' -d '{\"job_id\":\"778297bc-e7ce-439d-91b5-8a027060d17f\",\"stage\":\"<stage>\"}'" /usr/bin/ssh kami@192.168.1.104 "curl -s -X POST 'http://127.0.0.1:9090/job/resume?job_id=778297bc-e7ce-439d-91b5-8a027060d17f'"Note: plain
sshis the kitty ssh kitten and refuses non-interactive stdin. Use/usr/bin/ssh. -
Defects 5 and 6 landed after
dialoguehad already run, so this run's 7som_facelines are still labelled from the unpaired-mark path. The next dialogue pass fixes that. No name was affected. -
The audit script is
docker exec manga-orchestrator python3 /tmp/audit_speakers.py, source in this session's scratchpad. It is not in the repo. Copy it in if the metric is to be tracked per run. -
The 3 cross-panel unresolved refs need the window's whole present-list, not one panel's.
-
Workers were restarted twice this session and are running in tmux
manga-workers. Nothing watches them, and nothing watches the homesrv containers.