36c7cc946f
The baseline run died in `script` at 87/116. Every lost beat cites `unsupported-proper-noun: ['Choi', 'Haeseon']`, because verify_script puts the full name in the allowed set and then tests single capitalized tokens against it. No fix applied. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XD7cAy81MZrc7gCr6aZGWr
72 lines
3.3 KiB
Markdown
72 lines
3.3 KiB
Markdown
# HANDOFF, 2026-08-11 session
|
|
|
|
Live state lives in `NEXT.md`. This file is only what this session did.
|
|
|
|
## Asked
|
|
|
|
1. Add the buckets to rustfs.
|
|
2. Fix the bucket saving on the orchestrator side.
|
|
3. Run the title recap.
|
|
|
|
Mid-session: check `manga.kvmx.ru`, and cross-check whether the run got dialogue and identities right.
|
|
|
|
## Changed
|
|
|
|
Workers, `/home/kami/Programs/n8n-worker`, branch `restore-runtime`:
|
|
|
|
- `worker_crop.py` panels -> `s3://panels/`
|
|
- `worker_tts.py` wavs -> `s3://audio/`
|
|
- `worker_layers.py` layers -> `s3://layers/`
|
|
- `worker_render.py` clips and `chapter.mp4` -> `s3://video/`
|
|
- `decisions/storage-layout.md`, `caveats/speaker-attribution.md`, indexes, `JOURNAL.md`, `NEXT.md`
|
|
|
|
Orchestrator, `/mnt/server/home/kami/docker-apps/manga-infra/orchestrator`:
|
|
|
|
- `minio_layout.py` per-artifact bucket constants, `BUCKETS`, `parse_key` accepts any of them
|
|
- `service.py` `_s3_delete_prefix` takes `<bucket>/<prefix>`, `_stage_s3_prefixes` no longer slices,
|
|
new `_ensure_buckets` in the lifespan
|
|
- `test_minio_layout.py` updated, one test added
|
|
|
|
Infrastructure, homesrv:
|
|
|
|
- six buckets created on `rfs` (rustfs, `127.0.0.1:9010`)
|
|
- `manga-fetch` started, exited 2 weeks, `/job/create` fails without it
|
|
- `manga-web` started, exited 2 weeks, `manga.kvmx.ru` -> nginx -> `localhost:8083`
|
|
- orchestrator rebuilt and restarted
|
|
- `mc` aliases `mio` and `rfs` now exist on homesrv
|
|
|
|
## Measured
|
|
|
|
Job `778297bc-e7ce-439d-91b5-8a027060d17f`, chapter `7c944dd4-e972-42c7-ba60-9f6939548e80`,
|
|
"Teto X Egen", 116 panels.
|
|
|
|
- 109 orchestrator tests pass. `worker_crop.py`, `worker_tts.py`, `worker_render.py` self-checks pass.
|
|
`worker_layers.py` self-check fails on the missing `legacy/qwen_layered_workflow.json`, which
|
|
predates this session.
|
|
- buckets after the run: `raw` 64MiB/79, `panels` 101MiB/116, `manga` 366MiB/491, `audio` `layers`
|
|
`video` still empty because the run had not reached those stages.
|
|
- stage times: crop 85s, vision ~4min, identity ~1min, reconcile ~7min, dialogue ~8min.
|
|
- 24 of 81 speech lines resolve to a named character, 30%.
|
|
- 26 of 113 detected people got an identity, 23%, and 25 of the 26 went to one character.
|
|
- 3 of 3 sampled two-character panels attribute both speakers to the wrong person.
|
|
|
|
## Open
|
|
|
|
- The `script` stage failed at 87/116 with `unsupported-proper-noun: ['Choi', 'Haeseon']` on 28 beats.
|
|
Not OOM, the worker stayed healthy. One-line fix named in
|
|
`caveats/speaker-attribution.md#multiword-name-verifier`. Not applied.
|
|
- The run stopped in `direct` at 113/116. `scene script tts layers render assemble` never ran. Resume:
|
|
|
|
Since then it reached `scene` 116/116 and failed in `script`. Fix the verifier, then:
|
|
|
|
```bash
|
|
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'"
|
|
```
|
|
|
|
- Speaker attribution is wrong in multi-character panels and the fix is not written
|
|
(`caveats/speaker-attribution.md`). No code was changed for it.
|
|
- Objects from the 2026-07-17 run still sit under `manga/<manga_id>/<chapter_id>/{pages,panels,audio,
|
|
layers,clips}`. Nothing reads them. They are the rollback, not live data.
|
|
- `rustfs` holds empty buckets. No mirror, no cutover.
|