Files
manga-recap-pipeline/NEXT.md
T
kami e8941d8ceb Stop labelling a model guess as a read tail
_annotate_speaker_methods stamped `tail`, the highest-trust provenance, on any
line whose speaker matched a present local_id, at gemma's confidence of 1.0. No
balloon was read. Three of three sampled two-character panels had the speakers
swapped, so a multi-character guess is now dropped to unknown, and a solo-panel
guess is kept as model_solo at 0.7.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 23:23:56 +04:00

89 lines
4.6 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
Two fixes are written and checked, neither is deployed.
- `worker_vision.py` no longer labels a model guess `tail`, and drops the guess entirely when two or
more characters are present (`decisions/speaker-attribution.md#no-fake-tail`). The workers need a
restart, and only a rerun from `dialogue` puts it on stored data.
- `correctness.py` tokenizes cast names for the script verifier
(`decisions/speaker-attribution.md#multiword-cast-names`). The orchestrator container needs a
rebuild.
Then, in order:
1. Rerun the chapter and re-read the named-speaker share. It will fall, and the lower number is the
first honest one. Deciding whether to resume `script` on the old attributions or clear back to
`dialogue` is open.
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.
3. 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 and were not created, because writing to the tracker was not
asked for: 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.