Files
kami ff6a512630 Reconstruct repo from Claude Code + codex transcripts
Working tree (including .git) was lost to an rm. Rebuilt by replaying Write/Edit/
Read/attachment events from 25 Claude sessions and 22 successful codex apply_patch
blocks into one timestamp-ordered timeline.

Verified against ground truth recorded in the transcripts: wc -l on 10 files and
ls -l on 5 files at 2026-07-18T13:13:44Z both match exactly; 18 files are
byte-identical to their newest ~/.claude/file-history blob.

See HANDOFF.md for sources, gaps, and how to rebuild .venv.

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

26 lines
1.8 KiB
Markdown

# Correctness status — worker side
Audit of `plan.md` against the actual code (2026-07-18). Most of the plan is **implemented**; this file
records only what's verified done and the remaining calibration work, so nobody re-does finished work. Orchestrator
counterpart: `/mnt/server/home/kami/docker-apps/manga-infra/orchestrator/spec-correctness.md`.
### #5 region-grounded dialogue — code done, calibration ongoing
Set-of-mark is now the **default path** (`SOM_ATTRIBUTION="1"`, `worker_vision.py:31`; the "off by
default" comment at `:22` is stale — fix it). Residual is per-title threshold calibration on real
chapters, not a code gap. Detector-failure vs zero-regions are already distinct (`_set_of_mark`).
## Verified done (was in plan/earlier drafts as TODO — do not redo)
- #10 cross-window direction continuity: the grouping pass emits `continues_previous`; the first row
carries it through `/direct/window`, and a true edge forces `new_scene=false`. The self-check covers
both a continuing window and the chapter-start guard.
- Script self-check (`python worker_script.py` passes). #2 confidence + `speaker_method` reach the scene
graph (`worker_scene.py:80-81`). H3/#3 fail-loud: `/dialogue` and `/dialogue/window` return a status
envelope (`_dialogue_envelope`) and skip dropped panels instead of manufacturing silent-empty.
- #4 solo assignment is a 0.7-confidence prior with `speaker_method=solo_prior`, not unconditional.
- #6 typed name claims emitted (`_normalize_claims`), roster is hints-only.
- #7 Tier-2 `/vision/resolve` sends candidate **reference images** (≤3 each), judges face-first, returns
open-set `state: known|new|unresolved`.
- #8 webtoon fragments remain independent and retain source bboxes; `context_fragment_links` emits
contextual links instead of the crop endpoints destructively stacking them.