Audit second pass: cross-repo contract findings
Read the workpc workers against the homesrv orchestrator and checked the first-pass audit against source. Report only, no code changed. Adds 4 P0, 6 P1, and 13 P2 findings to AUDIT.md, most of them in the seam between the two repos: - worker_scene reads dialogue `speaker` as a local id, but the orchestrator already rewrote it to a character_id, so all narration says "Someone" - the script verifier fails valid narration on sentence-initial capitals and on short quotes, which halts the chapter - correctness flags block TTS with no path to clear them when GATES is off - session_manager can orphan a llama-server that keeps its VRAM Confirms four first-pass claims in source: tracklet gender enum, missing action evidence, dropped verifier feedback, 409 lease stealing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+39
-60
@@ -1,75 +1,54 @@
|
||||
# HANDOFF: repo reconstructed from agent transcripts (2026-08-11)
|
||||
# HANDOFF: audit second pass (2026-08-11)
|
||||
|
||||
## What was asked
|
||||
The working copy at `/home/kami/Programs/n8n-worker` was deleted with `rm`, including `.git`.
|
||||
This repo is the workpc GPU-compute half of the manga pipeline. The ask was to rebuild it from
|
||||
the transcripts on disk, at minimum the transport layer and the pipeline flow.
|
||||
Review `AUDIT.md` (untracked, first pass, 565 lines) and add anything missing.
|
||||
|
||||
## Sources used
|
||||
No backup and no remote survived. `~/.local/share/Trash` is empty. No copy exists under
|
||||
`/home/kami`, `/mnt/D`, or `/mnt/server`. Gitea
|
||||
(`/mnt/server/mnt/hdd2/gitea/git/repositories/`) holds only correx, hexis, maven,
|
||||
model-training, muzick, orchestra, and test-e2e. There is no `n8n-worker` mirror.
|
||||
## What was done
|
||||
Read both halves of the pipeline and checked the first pass against source. No code changed.
|
||||
No GPU work, no pipeline run, no tests executed.
|
||||
|
||||
Reconstruction replays three histories into one timeline, ordered by timestamp:
|
||||
Files read in full:
|
||||
- workpc: `worker_vision.py` (1008), `worker_identity.py` (322), `worker_script.py` (300),
|
||||
`worker_scene.py` (170), `worker_tts.py` (241), `session_manager.py` (238), `transport.py` (216),
|
||||
`worker_crop.py` (first 120 of 359).
|
||||
- homesrv `/mnt/server/home/kami/docker-apps/manga-infra/orchestrator/`: `service.py` (2048),
|
||||
`db.py` (815), `session_proxy.py` (302), `correctness.py` (116), `tracklets.py` (121),
|
||||
`minio_layout.py` (105), `grouping.py` (75).
|
||||
|
||||
1. Claude Code transcripts, 25 sessions in
|
||||
`~/.claude/projects/-home-kami-Programs-n8n-worker/*.jsonl`. Contributes Write and Edit
|
||||
content, full-file Read results, and `@`-mention attachments.
|
||||
2. Codex rollouts, 5 sessions with `cwd=/home/kami/Programs/n8n-worker` under
|
||||
`~/.codex/sessions/2026/07/{13,15,16,18}/rollout-*.jsonl`. Contributes 26 `apply_patch`
|
||||
blocks. The 4 that the log marks `Script failed` are skipped. These carry the 2026-07-18
|
||||
correctness work (`_dialogue_envelope`, `_normalize_claims`, `_annotate_speaker_methods`,
|
||||
`SOM_ATTRIBUTION=1`) that exists in no Claude transcript.
|
||||
3. `~/.claude/file-history/<session>/<hash>@vN` pre-edit blobs, used as cross-checks only.
|
||||
Result: `AUDIT.md` grew from 565 to 745 lines. New section `## Second-pass findings (2026-08-11)`
|
||||
at line 566. 4 new P0, 6 new P1, 13 P2, plus 5 additions to the Phase 1 list and 1 to the
|
||||
acceptance criteria.
|
||||
|
||||
Scripts live in
|
||||
`/tmp/claude-1000/-home-kami-Programs-n8n-worker/6a35d5d8-9f44-4412-955c-9cf088737ad5/scratchpad/`.
|
||||
`replay2.py` is the merged replay. `codex.py` extracts and applies codex patches. `backups.py`
|
||||
compares against file-history. `recon_final/_log.json` holds the per-file event log.
|
||||
Four first-pass claims were confirmed in source and are not restated in the new section:
|
||||
|
||||
## Verification
|
||||
- Replayed to 2026-07-18T13:13:44Z, line counts match the `wc -l` recorded in the transcript at
|
||||
that moment, for all 10 files it covered. crop 326, identity 314, layers 99, render 996,
|
||||
scene 159, script 300, tts 231, vision 871, session_manager 238, transport 216.
|
||||
- Byte sizes match the `ls -l` recorded by the same command. AGENTS.md 867, CLAUDE.md 3678,
|
||||
manga-recap-pipeline-spec.md 11413, plan.md 16511, spec-v3.md 26170. `.gitignore` is 53.
|
||||
- 18 files are byte-identical to their newest file-history blob. The 4 that differ (render,
|
||||
script, tts, spec-v3) differ only by edits made after that blob was taken.
|
||||
- `python3 -m py_compile *.py scripts/*.py attic/*.py` passes. `bash -n` passes on all 3 shell
|
||||
scripts. Runtime self-checks such as `python worker_vision.py` were NOT run, because `.venv/`
|
||||
is gone.
|
||||
- tracklet gender enum: `tracklets.py:43` uses `male|female`, vision emits `m|f|unknown`.
|
||||
- missing action evidence: `worker_scene.py:85` emits `action`, `correctness.py:91` reads `actions`.
|
||||
- dropped verifier feedback: `worker_script.py:13-23` defines neither field.
|
||||
- 409 lease stealing: `session_proxy.py:40-49`.
|
||||
|
||||
## Recovered (live tree)
|
||||
Workers `worker_{crop,vision,identity,scene,script,tts,layers,render}.py`, the GPU mutex
|
||||
`session_manager.py`, `transport.py`, helpers `bubble_detect.py`, `face_detect.py`,
|
||||
`collage.py`, `test_vision_parse.py`, `start_workers.sh`, `systemd/install.sh`,
|
||||
`scripts/{analyze_video_frames.sh,pick_tts_voice.py}`, `requirements.txt`, `.gitignore`,
|
||||
and the docs `AGENTS.md`, `CLAUDE.md`, `plan.md`, `spec-v3.md`, `spec-correctness.md`,
|
||||
`manga-recap-pipeline-spec.md`, `identity-rework-task.md`.
|
||||
|
||||
`attic/` holds files that had been deleted from the tree before the `rm`. They are kept but not
|
||||
live: `worker_ocr.py`, `worker_parse.py`, `plan-workpc.md`, `char-recognition.md`.
|
||||
## Top 4 new findings
|
||||
1. `worker_scene.py:78` reads `speaker` as a local id, but `correctness.py:47` already rewrote it
|
||||
to a character_id. Every lookup returns None, so all narration says `Someone`.
|
||||
2. `correctness.py:106-115` fails valid narration on sentence-initial capitals and on short
|
||||
quotes, and `service.py:1384-1386` turns that into a halted chapter.
|
||||
3. `service.py:1419-1423` blocks TTS on correctness flags that only `/review/approve` can clear,
|
||||
while `GATES` defaults to off (`service.py:312`).
|
||||
4. `session_manager.py:108-119` can orphan a llama-server that keeps its VRAM.
|
||||
|
||||
## Still open
|
||||
- `.venv/` is gone. Rebuild with
|
||||
`python -m venv .venv && .venv/bin/pip install -r requirements.txt`. The ROCm torch wheel is
|
||||
not pinned in requirements.txt, so install it the way workpc had it.
|
||||
- `dots.tts/` (gitignored external checkout) and `legacy/` (pre-rewrite workers, moved there
|
||||
2026-07-13) are not recoverable from transcripts. Re-clone dots.tts if TTS is needed.
|
||||
- `RESUME_SPEC.md`, `pipeline-design-notes.md`, and `spec-v2.md` are unrecoverable. Neither agent
|
||||
ever read them in full. All three were already deleted from the working tree as of 2026-07-17.
|
||||
- Git history is gone. A fresh `git init` plus one commit replaces it. Old commits are not
|
||||
recoverable.
|
||||
- Two replay gaps were left unpatched. One Edit MISS in `worker_render.py` on 2026-07-14, and one
|
||||
orphan Edit against `attic/plan-workpc.md` on 2026-07-13. Both files were later replaced by a
|
||||
full-file snapshot, so the final content stays anchored.
|
||||
- Edits made outside Claude and codex after 2026-07-18T14:35Z (the last recorded write) cannot be
|
||||
detected. `unknown:` whether any exist.
|
||||
- Nothing from this session is half-finished. `AUDIT.md` is complete as written.
|
||||
- No finding has been fixed. All are report-only.
|
||||
- `AUDIT.md` is still untracked as of this session's start. Decide whether it belongs in git.
|
||||
- Prose linter reports ~97 style hits in `AUDIT.md`. Almost all are in the first-pass sections
|
||||
(lines 1-565), which were left as the author wrote them.
|
||||
- Carried over from the earlier reconstruction handoff of the same day:
|
||||
- `.venv/` is gone. Rebuild it, then install the ROCm torch wheel the way workpc had it.
|
||||
- `dots.tts/` and `legacy/` are not recoverable from transcripts.
|
||||
- `RESUME_SPEC.md`, `pipeline-design-notes.md`, and `spec-v2.md` are unrecoverable.
|
||||
|
||||
## Next command
|
||||
```
|
||||
cd /home/kami/Programs/n8n-worker
|
||||
python -m venv .venv && .venv/bin/pip install -r requirements.txt
|
||||
.venv/bin/python worker_vision.py # per-file __main__ self-checks, then ./start_workers.sh
|
||||
sed -n '566,745p' AUDIT.md # read the new section
|
||||
```
|
||||
Then pick the Phase 1 order at `AUDIT.md:511` as amended at the end of the new section.
|
||||
|
||||
Reference in New Issue
Block a user