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

4.6 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

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:

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.