Panels, wavs, layers, clips, and the chapter mp4 leave the `manga` bucket for `panels`, `audio`, `layers`, and `video`. The key under the bucket is unchanged, so every reader that derives the bucket from the first path segment keeps working. The orchestrator half moves in the same commit, per invariant 7. The 2026-08-11 chapter run proves the split for `raw` and `panels` and produced the first quality read on speaker attribution, which is wrong in every sampled multi-character panel. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XD7cAy81MZrc7gCr6aZGWr
2.8 KiB
HANDOFF, 2026-08-11 session
Live state lives in NEXT.md. This file is only what this session did.
Asked
- Add the buckets to rustfs.
- Fix the bucket saving on the orchestrator side.
- 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.pypanels ->s3://panels/worker_tts.pywavs ->s3://audio/worker_layers.pylayers ->s3://layers/worker_render.pyclips andchapter.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.pyper-artifact bucket constants,BUCKETS,parse_keyaccepts any of themservice.py_s3_delete_prefixtakes<bucket>/<prefix>,_stage_s3_prefixesno longer slices, new_ensure_bucketsin the lifespantest_minio_layout.pyupdated, one test added
Infrastructure, homesrv:
- six buckets created on
rfs(rustfs,127.0.0.1:9010) manga-fetchstarted, exited 2 weeks,/job/createfails without itmanga-webstarted, exited 2 weeks,manga.kvmx.ru-> nginx ->localhost:8083- orchestrator rebuilt and restarted
mcaliasesmioandrfsnow 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.pyself-checks pass.worker_layers.pyself-check fails on the missinglegacy/qwen_layered_workflow.json, which predates this session. - buckets after the run:
raw64MiB/79,panels101MiB/116,manga366MiB/491,audiolayersvideostill 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 run stopped in
directat 113/116.scene script tts layers render assemblenever ran. Resume: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. -
rustfsholds empty buckets. No mirror, no cutover.