Files
manga-recap-pipeline/NEXT.md
T
kami 447c68c8aa Record the first end-to-end chapter and two stages that lie
The run completed: chapter.mp4 at 50MiB from 49 clips. layers reported
completed 116/116 with an empty bucket, so nothing has parallax, and the completed
job still carries the error string from a failure three resumes earlier. Both
recorded as caveats, neither fixed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 00:10:34 +04:00

5.1 KiB

NEXT

Updated 2026-08-11. Replaces the old HANDOFF.md.

State

Audit Phase 1 is implemented and green. Nothing is half-finished.

Changed on workpc: worker_scene.py, worker_script.py, worker_vision.py, session_manager.py. Changed on homesrv (/mnt/server/home/kami/docker-apps/manga-infra/orchestrator/): tracklets.py, correctness.py, db.py, service.py, session_proxy.py, test_script_verify.py, test_name_binding.py.

What landed and why: decisions/audit-phase1.md. What was left open: caveats/audit-open.md.

Verification: CPU-only self-checks and the orchestrator test suite. 108 orchestrator tests pass (test_api.py is excluded on workpc because fastapi is not installed in this venv). No GPU work ran and no pipeline ran, so none of this is confirmed against a real chapter.

The orchestrator half is committed as 1c60710 in /mnt/server/home/kami/docker-apps and the container is rebuilt and serving. 94bd4d8 in the same repo repins minio to its amd64 digest, which the rebuild exposed.

Next

The named-speaker share is 9%, 9 of 95 speech lines, and that number is real. See JOURNAL.md for the six defects behind the old 30%. Everything below is measured on job 778297bc, not inferred.

That job now runs end to end: chapter.mp4, 50MiB, 49 clips. Nobody has watched it. Two stages lie about it (caveats/audit-open.md#layers-writes-nothing, #stale-job-error).

Identity is the constraint now, not attribution. 26 of 113 detected people carry an identity. 25 of those 26 are the single over-merged row (caveats/speaker-attribution.md#identity-over-merge). That caps this chapter near 23% named even with perfect balloon binding. Work identity before geometry.

  1. Split the over-merged character row and dedupe the registry. Lim Seonho and Seonho are separate rows with overlapping aliases, so either name matches two rows and binds nothing. Needs the reversible-merge design (caveats/audit-open.md#destructive-reconcile) rather than a patch.
  2. Bind a balloon to a speaker by tail geometry, using the unused det/seg heads (caveats/speaker-attribution.md#tail-is-not-geometry). Until then multi-character panels have no speaker at all, which is 40 of 95 lines here.
  3. Resolve a speaker answer across the whole dialogue window, not just the answering panel. The last 3 unresolved refs are a description belonging to a neighbouring panel in the same 8-panel call.
  4. Start Phase 2 from ROADMAP.md. Set SQLite busy_timeout before any concurrency work (caveats/audit-open.md#sqlite-locking).

The 2026-08-11 chapter run

Job 778297bc-e7ce-439d-91b5-8a027060d17f, chapter 7c944dd4-e972-42c7-ba60-9f6939548e80, 116 panels. It reached scene 116/116 and then failed in script at 87/116 on the verifier bug fixed above. tts layers render assemble never ran. Read where it got to, clear the failed stage, resume:

ssh kami@192.168.1.104 "curl -s 'http://127.0.0.1:9090/job/status?job_id=778297bc-e7ce-439d-91b5-8a027060d17f'"
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\":\"script\"}'"
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'"

That resume narrates the attributions the old tail label produced. Clearing back to dialogue instead re-runs the GPU stages and produces the honest metric.

Numbers and the quality read are in JOURNAL.md and caveats/speaker-attribution.md.

Storage and viewer, tasks #116/#117

[#117] is done. stowage serves the manga buckets. It was never a MinIO problem: the container had been dead since 2026-07-19 on an arm64 digest pin. Details in JOURNAL.md.

[#116] is closer but not cut over. Artifacts now split one bucket per class (decisions/storage-layout.md#bucket-per-artifact), and both MinIO and rustfs hold all six buckets. rustfs on 127.0.0.1:9010/9011 is still empty and nothing is repointed, so MinIO serves every read and write. Remaining: mc mirror the live buckets, verify counts and sizes, then decide on cutover (decisions/storage-layout.md#rustfs-staged).

Two containers on homesrv had been dead for two weeks and are now running. manga-fetch is the one /job/create needs. manga-web is what manga.kvmx.ru proxies to on 8083. Nothing watches them.

Open questions

Four Phase 1 items have no Vikunja task, because writing to the tracker was not asked for. They are the speaker contract fix, the verifier rules, the tracklet constraints, and the flag resolution path. Only [#203] existed and is now closed by decisions/audit-phase1.md#unlocked-model-load.

Three audit items are deliberately not done and are recorded as caveats rather than silently dropped: honest stage clearing, ComfyUI under the session mutex, and reversible identity merges. Each needs a design decision, not a patch.

Carried over from the reconstruction: .venv needs the ROCm torch wheel reinstalled, and dots.tts/, legacy/, RESUME_SPEC.md, pipeline-design-notes.md, spec-v2.md are unrecoverable.