Implements every P0 from AUDIT.md plus four P1s, across both halves of the pipeline. Verified by CPU-only self-checks and the orchestrator test suite. No GPU work ran and no pipeline ran. workpc: - worker_scene: read speaker_ref, not the rewritten speaker field. Every line narrated as "Someone" before this. Emit `actions` for the verifier. - worker_script: declare beat + verifier_feedback (pydantic dropped both, so the retry was blind) and render them as a repair prompt. - worker_vision: gate face->identity pairing on containment, assign globally shortest-first, map an out-of-range resolver index to `unresolved` instead of minting a character, parse JSON with raw_decode. - session_manager: tear down a server whose lease vanished mid-load, and spawn the supervisor respawn unlocked. orchestrator (edited in place, NOT committed there): - tracklets: canonicalize gender, add co-presence cannot-links, block transitive bridges across a hard constraint. - correctness: stop failing valid narration on sentence-initial capitals and short quotes; read action evidence from the singular key. - db: stop orphan flags leaking into every chapter; resolve by flag id. - service: TTS returns instead of raising under GATES, auto-resolves under autonomous mode; job admission control; registry names on dialogue resume. - session_proxy: queue on 409 instead of stealing the lease; run heartbeats. Docs restructured per the repo-structure layout: CLAUDE.md is a pointer table, NEXT.md replaces HANDOFF.md, plus ROADMAP.md, JOURNAL.md, decisions/ and caveats/. AUDIT.md now points at those instead of restating them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XD7cAy81MZrc7gCr6aZGWr
1.1 KiB
JOURNAL
Append-only, newest last. One block per session or run. Not a changelog: this records what happened on the day a number was produced, so a later postmortem can find it.
2026-08-11 Audit second pass [no task]
Command: none. Source reading only.
Outcome: finished. AUDIT.md grew from 565 to 771 lines with a ## Second-pass findings section:
4 new P0, 6 new P1, 13 P2, 5 additions to the Phase 1 list.
Produced: commit 6d9df5b, AUDIT.md:566.
2026-08-11 Audit Phase 1 implemented [#203]
Command: python worker_scene.py worker_script.py worker_vision.py session_manager.py,
pytest -q --ignore=test_api.py in the orchestrator.
Outcome: finished. All self-checks pass, 108 orchestrator tests pass. No GPU work, no pipeline run.
test_api.py was skipped because fastapi is not installed in the workpc venv.
Produced: decisions/audit-phase1.md, caveats/audit-open.md, ROADMAP.md, and this scaffold.
One existing test asserted the bug: test_name_binding.test_conflict_flags_and_stays_unnamed relied on
orphan flags leaking into every chapter, because it never created panel rows. It now creates them.