Files
manga-recap-pipeline/NEXT.md
T
2026-08-11 23:47:09 +04:00

87 lines
4.9 KiB
Markdown

# 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
five defects behind the old 30%. Everything below is measured on job `778297bc`, not inferred.
**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:
```bash
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.