diff options
Diffstat (limited to 'CLAUDE.md')
| -rw-r--r-- | CLAUDE.md | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -296,6 +296,19 @@ by default and correct; it is simply waiting for a publisher who marks breaks. 71% and 105%. First time in this project that detection has been checked against external ground truth and agreed. + **Detection runs once per batch, not once per poll.** `Show.DetectedBatch` holds the set of + episode ids the last completed pass examined; `pollOne` skips detection when the batch is + unchanged. Without it the server re-derived identical results every cycle -- 4.5 hours of work + against a two-hour poll interval, so it never idled. The batch is the unit because every + result depends on which other episodes it was compared against, so one arrival or one pruning + must re-run all of them. `Episode.DetectedAtUnix` cannot serve as this gate: it is only set + for episodes that appear in `result.Offsets`. + + **Do not filter breaks by partner count or run length.** It looks obviously right -- 40% of + breaks have one partner and a 5s median -- and it is wrong: measured against the declared + length gap it drops agreement from 67% to 43%. Detection already under-reports. Table in + `docs/detection-findings.md`. + Breaks are published as ranges into `episode_midrolls`, which `MidrollSkip` and `PlayheadPolicy` already read -- no playback changes, no migration. Two guards publish nothing rather than something wrong: an episode whose matches cover over 35% of it, and any single |
