Record the first end-to-end chapter and two stages that lie

The run completed: chapter.mp4 at 50MiB from 49 clips. layers reported
completed 116/116 with an empty bucket, so nothing has parallax, and the completed
job still carries the error string from a failure three resumes earlier. Both
recorded as caveats, neither fixed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-12 00:10:34 +04:00
parent dead9cf40c
commit 447c68c8aa
5 changed files with 42 additions and 7 deletions
+7 -6
View File
@@ -61,14 +61,15 @@ Job `778297bc-e7ce-439d-91b5-8a027060d17f`, chapter `7c944dd4-e972-42c7-ba60-9f6
## Open
- **The run is still going.** It was in `tts` at 26/116 when this was written, with `layers render
assemble` unrun. `tts` is the bottleneck. Read it:
- **The run finished.** Every stage completed at 2026-08-11T20:08:16Z: `tts` 116/116, `layers` 116/116,
`render` 116/116, `assemble` 1/1. `s3://video/` holds 49 clips and a 50MiB `chapter.mp4` under
`ef105a86-.../7c944dd4-.../`, `s3://audio/` 49 objects at 32MiB. Nobody has watched the video.
```bash
/usr/bin/ssh kami@192.168.1.104 "curl -s 'http://127.0.0.1:9090/job/status?job_id=778297bc-e7ce-439d-91b5-8a027060d17f'"
```
Two honesty defects at the finish, recorded not fixed. `layers` reported `completed 116/116` with an
empty bucket, so no clip has parallax (`caveats/audit-open.md#layers-writes-nothing`). The completed
job still carries `error: "partial: 112/116 completed"` (`caveats/audit-open.md#stale-job-error`).
If it failed, clear the failed stage and resume:
Read the state, or clear a stage and resume:
```bash
/usr/bin/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\":\"<stage>\"}'"
+9
View File
@@ -160,3 +160,12 @@ at 112/116 because the narrator wrote `"...Hm?"` for the source line `"Uh... hum
rules fired on that two-letter interjection
(`decisions/speaker-attribution.md#interjection-false-positive`). After the fix, `script` passed 116/116,
the first time this chapter has cleared the verifier. `tts` then ran for the first time.
The run then completed end to end for the first time: `tts` 116/116, `layers` 116/116, `render` 116/116,
`assemble` 1/1, finished 2026-08-11T20:08:16Z. `s3://video/` holds 49 clips and a 50MiB `chapter.mp4`,
`s3://audio/` 49 objects at 32MiB. The per-artifact bucket split is now proven for every class except
layers (`decisions/storage-layout.md#bucket-per-artifact`).
Two honesty defects surfaced at the finish, both recorded rather than fixed. `layers` reported
`completed 116/116` with an empty bucket, and the completed job still carries
`error: "partial: 112/116 completed"` from the failure three resumes earlier.
+4 -1
View File
@@ -24,7 +24,10 @@ 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.
six defects behind the old 30%. Everything below is measured on job `778297bc`, not inferred.
That job now runs end to end: `chapter.mp4`, 50MiB, 49 clips. Nobody has watched it. Two stages lie about
it (`caveats/audit-open.md#layers-writes-nothing`, `#stale-job-error`).
**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
+2
View File
@@ -36,3 +36,5 @@ a complaint, so give it one or drop it.
| [One character id covers two different women](speaker-attribution.md#identity-over-merge) | 2026-08-11 run |
| [The character registry carries five weeks of wrong names](speaker-attribution.md#registry-pollution) | 2026-08-11 run |
| [One invented word still halts the chapter](speaker-attribution.md#one-word-halts-chapter) | 2026-08-11 run |
| [A completed job keeps the error from an earlier failure](audit-open.md#stale-job-error) | 2026-08-11 run |
| [`layers` reports success on an empty bucket](audit-open.md#layers-writes-nothing) | 2026-08-11 run |
+20
View File
@@ -151,3 +151,23 @@ transitions, so every non-`cut` transition shortens the real video.
Costs: reviewer timestamps drift further out of sync the further into the chapter they scrub.
Revisit when: the review UI is used for timing work.
Workaround: subtract the transition overlaps by hand.
## A completed job keeps the error from an earlier failure {#stale-job-error}
`/job/resume` does not clear `jobs.error`. Job `778297bc` finished every stage and still reports
`status: "completed"` beside `error: "partial: 112/116 completed"`, a message from three resumes earlier.
Costs: any reader of the error field sees a failure on a successful job. The review UI and any future
alerting both read it.
Revisit when: anything branches on `jobs.error`, or a run is judged by its status alone.
## `layers` reports success on an empty bucket {#layers-writes-nothing}
Measured on job `778297bc`: `layers` reported `completed 116/116` while `s3://layers/` held 0 objects.
Every clip in that run therefore has no parallax. The stage is a sibling of
[#inconsistent-stage-policy](#inconsistent-stage-policy), but this is the measured instance:
`worker_layers.py`'s own self-check already fails on the missing
`legacy/qwen_layered_workflow.json`, and the stage still reports done for every panel.
Costs: a silent quality regression that no status field reveals.
Revisit when: parallax matters for a deliverable, or before quoting this run as a full-pipeline pass.