docs(changelog): record post-PR60 frontend wiring trio (#64, #65, #66) - #68
Conversation
…66) PR #64 (gauge text-mode rendering, CSV enum-label fidelity). PR #65 (npm run test:js harness around src/js/live_format.js). PR #66 (wider-stance decode_enum_string_or_unknown so unmapped U8Enum bytes surface as 0xNN ? instead of disappearing). All three shipped to main but were missing from [Unreleased].
|
🤖 Doc-only change — auto-merge enabled. Will merge once required checks pass. |
💡 Codex ReviewLine 12 in 7267097 This new script entry is missing a comma before the next property, so beemuu/ops/backup-beemuu-db.sh Lines 39 to 40 in 7267097 When production relies on Line 1621 in 7267097 When exporting a log CSV, the code above already appends one cell for this series; this additional append writes a second cell for the same sample while the header still contains only one column per series. With any enabled channel, every data row has too many fields and downstream CSV import shifts columns, so keep either the manual formatting or the shared beemuu/src-tauri/src/data/live.rs Line 341 in 7267097 Once profiles can serialize Line 777 in 7267097 For any service function with more than one routine, Rust serializes ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Seventh PR of the v0.4.0/v0.5.0 transition. Doc-only. Auto-merge eligible per CLAUDE.md rule 2. What this ships: - docs/v0.5.0_plan.md — the v0.5.0 cycle scope and PR sequence. The cycle is named "Ground Truth" because the work is about validating the abstractions we shipped in v0.3 / v0.4 against real hardware, and adding the narrow features that real-car owners actually need first. Cycle spine (3 PRs, in order): - PR #1 — Real-car u8_enum validation harness. Doc-only. Mirrors the v0.4.0_first_pr.md shape. Gives an F/G-series owner with an ENET adapter a small checklist to validate the example enum DIDs (gear / engine_state / knock_detect) marked [needs verification] in b58.toml / n55.toml since PR #60. - PR #2 — Real-car fuel-trim / adaptation readout. Adds the DIDs (typically 0x4116 / 0x4117 / 0x4118 on BMW DME) and marks them [needs verification]. Likely no new decoder needed (existing s16_div100 handles the typical scaling). Protected path (live.rs is adjacent to protocol/). - PR #3 — Real-car knock-detection visualisation polish. Pure JS; extends the Logging tab's per-channel display to flag severity-bearing enum values (Moderate / Severe) with a visual indicator. Uses LiveValue.text from PR #60. Out of v0.5.0 scope (deferred to v0.6+ or Backlog per ROADMAP.md): OBDLink MX+, ENET/DoIP auto-detection, trigger- based logging, log merge/comparison, custom math channels, cloud sync, Pi CAN bridge, plugin system, Bootmod3, multi- language UI, web-based shared-log viewer. Each of those has a specific blocker documented in ROADMAP.md. The plan also explicitly notes: - Sibling-agent race in this repo (CLAUDE.md + multi-writer skill): work in fresh sibling clones, branch off origin/main, push from the clone. - origin/main drift (local main was stale vs origin/main during the v0.4 cycle): always git fetch origin before basing a branch, diff against origin/main not main. - CLAUDE.md rule 2: only doc-only PRs auto-merge. PRs #2 and #3 must go through human review. Verification: - node --test src/js/histogram.test.js → 13/13 (run via direct invocation; origin/main's package.json has a missing comma that breaks 'npm run test:*' — NOT fixed here, per commit-discipline 'discovering a broken sibling commit is not license to fix it'. That breakage is inherited from PR #68 / #69 area; a separate doc-only PR can fix it.) This PR does not touch code, workflows, or protected paths. 195 insertions in one new file. Co-authored-by: ohgeeceee <ohgeeceee@users.noreply.github.com>
First PR of the v0.5.0 "Ground Truth" cycle. Doc-only. Auto-merge eligible per CLAUDE.md rule 2. What this ships: - docs/validation/u8_enum-validation.md — the actual validation harness. Pre-flight checklist (cable, adapter, ignition, simulator NOT in use), per-DID test procedure for the three example enum DIDs shipped in v0.4.0 (gear / DA0A, engine_state / 4004, knock_detect / 401F), results-submission instructions (PR the [verified YYYY-MM-DD] labels back into b58.toml / n55.toml), and a 'what if a byte doesn't match' section for the most-likely failure mode. - docs/v0.5.0_first_pr.md — the cycle's written record of why this PR exists. Mirrors the v0.4.0_first_pr.md shape so future contributors can follow the same pattern. Why this is the first PR of v0.5.0: The v0.5.0 cycle plan (docs/v0.5.0_plan.md, PR #70) lists three PRs in order: 1. THIS PR — validation harness (doc-only, lands first because it unblocks the rest) 2. Real-car fuel-trim readout (PR #2) 3. Real-car knock visualisation polish (PR #3) Real-car evidence was the only 🟡 blocker for the v0.4.0 'Tuner Friendly' cycle to retire. The example enum DIDs shipped in PR #60 all carry [needs verification] markers because the byte-to-state mappings came from OBDb (CC-BY-SA 4.0) and have not been validated on real hardware. This harness is the smallest possible next step for an F/G-series owner with an ENET adapter to retire that blocker: a checklist they can fill in and PR back, with no developer hand-holding required. What this PR does NOT do: - No code change. Doc-only. - No new tests. Validation is manual (a person running the app against a real car). - No change to the [needs verification] markers in b58.toml / n55.toml. Those stay until a results PR lands. Verification: - node --test server/dtc/test/ingestor.test.js → all green (no regression) - node --test src/js/histogram.test.js → all green - git diff origin/main...HEAD --stat → 2 files, 305 insertions, 0 deletions (clean; both files new) - This PR does not touch code, workflows, or protected paths. A reviewer with an F/G-series car + ENET adapter is the authoritative verifier. Note on the broken package.json: origin/main's package.json has a missing-comma bug (introduced by a sibling agent in the PR #68/#69 area; noted in PR #70 and #71 bodies). It breaks 'npm run test:*' but does NOT break 'node --test' directly. A separate doc-only PR can fix it. Not fixed here per commit-discipline's 'discovering a broken sibling commit is not license to fix it.' Co-authored-by: ohgeeceee <ohgeeceee@users.noreply.github.com>
Doc-only patch: the
[Unreleased]section ofCHANGELOG.mdwas missing the merged trio (#64, #65, #66) that wires theu8_enumstory end-to-end. Backend #60 already had a bullet; the gauge rendering, test harness, and unknown-byte sentinel merged without entries.Just two short bullets, one for #65 and one for #66. PR #64 was already documented.
This is the smallest possible PR. No code touched. CI shouldn't change. Auto-merge should be safe per CLAUDE.md (doc-only).