Skip to content

Fix correctness bugs: audio-only merge, capture write errors, verdict grouping#15

Merged
REPPL merged 2 commits into
mainfrom
bughunt-1
Jul 18, 2026
Merged

Fix correctness bugs: audio-only merge, capture write errors, verdict grouping#15
REPPL merged 2 commits into
mainfrom
bughunt-1

Conversation

@REPPL

@REPPL REPPL commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Summary

Burst 1 of the autonomous correctness hunt (6 lenses, loop-until-dry, majority-refute verification): 12 findings collapsing to 5 distinct bugs, each fixed with a watched-to-fail regression test.

  • merge crashed on a default audio-only session (HIGH). A default testimony record run captures no interactions.jsonl (only the demo server writes one), yet record prints merge as the next step — so following the tool's own guidance aborted with "no such file or directory", blocking report/analyze/review too. Merge now reads transcript and interactions as optional (absent → zero records; a malformed line or permission error still propagates). Verified live: an audio-only session now merges to a speech-only timeline. This is the pipeline my earlier live tests missed because they always used -demo.
  • Demo capture reported false success on a write error (MEDIUM). appendLines discarded both f.Write errors and always returned 204, so a failed/partial append silently dropped an event (or left a truncated line that later broke the JSONL reader) while the browser was told it succeeded. Now writes line+newline as one buffer and returns 500 on error.
  • Findings with an out-of-enum verdict vanished (MEDIUM). analyze.Load never validated the verdict enum and the report renders only four status groups, so a typo/foreign verdict dropped the finding from both the report and the review queue. Load now ignores an unknown verdict, keeping the finding visible as unverified.
  • WriteJSONL/AppendVerdict masked the Close() error (LOW) — a flush failure on a committed artefact went unreported. Now checked.
  • Demo banner built a malformed URL with an explicit -addr host (LOW) — now formatted correctly.

Verification

gofmt, vet, go test -race (all packages), build, sample pipeline + smoke, abcd audit, abcd docs lint — all green independently. The high-severity fix reproduced live. Docs (merge/demo surfaces, schemas, CLI reference) and DECISIONS.md updated in step.

Burst 1 of an ongoing hunt; further bursts run until a pass yields only nitpicks.

Assisted-by: Claude:claude-fable-5

REPPL added 2 commits July 18, 2026 15:34
… grouping

Burst 1 of the autonomous correctness hunt — 12 findings, 5 distinct
bugs, each with a watched-to-fail regression test.

- merge (HIGH): a default audio-only `record` session has no
  interactions.jsonl (only the demo server writes one), yet `record`
  prints `merge` as the next step. Merge treated the missing file as
  fatal and aborted the documented pipeline. It now reads transcript and
  interactions as optional — an absent file is zero records; a malformed
  line or permission error still propagates — so an audio-only or
  interaction-only session merges to a partial timeline.
- demo capture (MEDIUM): appendLines discarded both f.Write errors and
  always returned 204, so a failed/partial append silently dropped an
  event (or left a truncated line that later broke the JSONL reader)
  while telling the browser it succeeded. It now writes line+newline as
  one buffer and returns 500 on a write error.
- report/review (MEDIUM): analyze.Load never validated the verdict enum
  and the report renders only four status groups, so a finding with a
  typo/foreign verdict vanished from both the report and the review
  queue. Load now ignores an out-of-enum verdict, keeping the finding
  visible as unverified.
- session (LOW): WriteJSONL and AppendVerdict ignored the Close() error,
  masking a flush failure on a committed artefact — now checked.
- demo (LOW): the startup banner built a malformed URL when -addr
  carried an explicit host — now formats it correctly.

Docs (merge/demo surfaces, schemas, CLI reference) and DECISIONS.md
updated in step. Gates green; the audio-only merge fix verified live.

Assisted-by: Claude:claude-fable-5
@REPPL
REPPL merged commit c758242 into main Jul 18, 2026
6 checks passed
@REPPL
REPPL deleted the bughunt-1 branch July 18, 2026 14:54
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