Skip to content

Fix validation upper bound and missing-t0 merge (burst 4)#19

Merged
REPPL merged 1 commit into
bughunt-3from
bughunt-4
Jul 20, 2026
Merged

Fix validation upper bound and missing-t0 merge (burst 4)#19
REPPL merged 1 commit into
bughunt-3from
bughunt-4

Conversation

@REPPL

@REPPL REPPL commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Summary

Burst 4 — 2 distinct low-severity boundary bugs, each with a watched-to-fail test.

  • validate upper bound floored at 0. idx.end was seeded from the zero value and grown only via end > idx.end, while idx.start was correctly seeded on the first entry. For a fully-negative timeline (external recording predating t0), idx.end stayed 0, so a finding anchored after the real (negative) session end was accepted. Now seeded symmetrically. This is the sibling of burst 3's lower-bound fix — the same function's other half.
  • merge produced a nonsense timeline on a missing t0_epoch_ms. A hand-edited/exchanged manifest without t0_epoch_ms anchored interactions to t0=0, placing events ~55 years after the speech (exit 0, silently). Merge now rejects a missing t0 when interactions are present; transcript-only sessions are unaffected.

Docs + DECISIONS updated; gates green independently. Stacked on #18.

⚠️ Noise-floor reached — recommend stopping the hunt

Bugs per burst: 5 (one HIGH) → 2 → 4 → 2, severity floored at LOW for three bursts, and burst 4 found the symmetric half of burst 3's own fix. The finders are now circling code the previous burst just touched — the classic signal that the hunt has hit its noise floor. Continuing costs ~2M tokens/burst for increasingly niche edge cases (imported-recording clocks, hand-edited manifests). My recommendation is to call it here: merge #15#19 and stop. See my message.

Assisted-by: Claude:claude-fable-5

Burst 4 of the autonomous correctness hunt — 2 distinct low-severity
bugs, both boundary conditions.

- validate seeded idx.end from the zero value 0 and grew it only via
  end > idx.end, while idx.start was correctly seeded on the first entry.
  For a fully-negative timeline (an external recording predating
  manifest t0), idx.end stayed 0, so a finding anchored after the real
  (negative) session end was accepted. idx.end is now seeded on the
  first entry, symmetric with idx.start. This is the sibling of burst
  3's lower-bound fix — the same function's other half.
- merge silently produced a nonsense timeline (events ~55 years after
  the speech) when a hand-edited/exchanged manifest omitted
  t0_epoch_ms, because BuildEntries anchored interactions to t0=0. Merge
  now rejects a manifest missing t0_epoch_ms when interactions are
  present; transcript-only sessions (already session-relative) are
  unaffected.

Both fixes make the code match its documented contract. Docs (merge
surface, CLI reference) and DECISIONS.md updated in step. Gates green.

Assisted-by: Claude:claude-fable-5
@REPPL
REPPL merged commit 89a3262 into bughunt-3 Jul 20, 2026
6 checks passed
@REPPL
REPPL deleted the bughunt-4 branch July 20, 2026 12:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant