Skip to content

[Diagnostics] 6 - Replace synthetic BMS fixture with real smart-BMS ride #231

Description

@KacperKozak

Parent

#225

Current state (2026-07-21)

Two fixtures now live in shared/fixtures/:

  • replay-synthetic-bms.jsonlsynthetic 16s-BMS placeholder (generated by scripts/generate-replay-fixture.ts). Drives the clean-run false-positive guard + all [Diagnostics] 2 - Fault scenario tests #227 fault scenarios. The false-positive guard therefore runs on fake data, not a real ride.
  • replay-thor301.jsonlreal captured ride (Thor301, 19s, no smart BMS). Bundled UI-replay fixture only; has no BMS frames so detectors can't run on it.

Kacper has no smart-BMS board available right now, so a real clean smart-BMS capture is deferred to this issue.

What to build

Record a real clean smart-BMS ride (public place, committed verbatim — no sanitizing, no trimming) and use it to replace replay-synthetic-bms.jsonl as the detector fixture. Verify the clean-run test and all #227 fault scenarios still pass against real data on both platforms; investigate (do not snapshot away) any false positive.

HITL: requires a human-recorded smart-BMS ride.

Likely files

  • shared/fixtures/replay-synthetic-bms.jsonl — the synthetic fixture to replace
  • scripts/generate-replay-fixture.ts — synthetic generator; delete once a real fixture lands
  • scripts/copy-shared.ts — copy pipeline (already handles the dir)
  • test fixture refs: WarningReplayCleanRunTest.kt, WarningReplayScenarioTest.kt, WarningReplayHarnessTests.swift, WarningReplayScenarioTests.swift

Implementation hints

  • Scenario transforms in [Diagnostics] 2 - Fault scenario tests #227 are anchored relative to fixture timestamps, so they should survive the swap; if one breaks, fix anchoring, not the assertion.
  • Check fixture size is CI-reasonable; if huge, discuss trimming with Kacper first (default is verbatim).

Acceptance criteria

  • Real smart-BMS recording committed to shared/fixtures/, replay-synthetic-bms.jsonl + generator removed
  • Clean-run test green on real data, both platforms
  • All fault scenarios green on real data, both platforms

Blocked by

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:diagnosticsDebug Recordings, replay tooling, Diagnostic Events, dev-mode debugging surfacescomplexity:lowIsolated, hard to break other things. Use sonnet/haiku.ready-for-humanRequires human implementation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions