docs(roadmap): audit v0.3.0 historical section — stale 🟢 Ready items … - #205
Conversation
…moved to ✅ Done Six items in the v0.3.0 'Real Car' historical section were marked 🟢 Ready but have actually shipped: | Item | Shipped in | Reference | |-----------------------|-----------------|--------------------------| | KWP2000 slow timeout | v0.13.0 (PR #153) | commit fd9efc2 | | ISO-TP multi-frame | v0.14.x | src-tauri/src/transport/isotp.rs (enforced by CLAUDE.md, refreshed in PR #198) | | Dark/light theme | v0.7.0 (PR #109) | commit afefc32 | | Gauge theming | v0.7.0 (PR #109) | commit afefc32 | | Save/load workspace | v0.7.0 (PR #109) | commit afefc32 | | Export PNG/SVG charts | v0.11.0 (PR #136) | commit 7f92ccb | This is the same doc-rot pattern that PR #198 fixed in CLAUDE.md: items the inventory still claims as 'Ready to land' have actually shipped, but nobody re-tagged the historical section afterward. Same 'data over invention' fix as the CLAUDE.md refresh. What changed: - '⭐ Protocol & Transport' table — kept the four genuinely-🟡 items (ENET/DoIP, BLE, WiFi, CAN-bus listener), removed the two stale 🟢 Ready items. - 'UI / UX' table — kept the only genuinely-🟡 item (Mobile- responsive), removed the five stale 🟢 Ready items. - New '✅ Protocol, Transport, UI/UX — historical (shipped)' table — pins the six shipped items with their PR references and code locations, following the v0.3.0 'Decode Functions' historical pattern that already exists just above. What this PR does NOT change: - No CHANGELOG.md edits (the shipped-PR references are in CHANGELOG.md already) - No CLAUDE.md edits (the ISO-TP / keepalive / read_vin references there are already accurate post PR #198) - No code edits - No test edits (markdown only) Verified locally (docs-only, no test diff expected): - node --test src/js/**/*.test.js src/js/**/*.test.cjs: 226/226 - python -m pytest backend/tests/ -q: 166/166 - cd src-tauri && cargo test --lib --offline: 149/149 - npm run build: rc=0, both BeeEmUu_0.14.3 bundles built Tier A docs-only per CLAUDE.md. Self-merge on CI green. Cross-references: - PR #198: 'docs: refresh CLAUDE.md hardware/timing invariants' (the same doc-rot sweep on CLAUDE.md) - PR #183: 'docs(proposal): fix stale NOT YET IMPLEMENTED claims' (proposed similar fixes but never applied)
|
🤖 Doc-only change — auto-merge enabled. Will merge once required checks pass. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 948c212c64
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
| | Item | Status | Notes | | ||
| |------|--------|-------| | ||
| | KWP2000 slow-module timeout fix | ✅ Done (v0.13.0) | `transport::kdcan::default_slow_modules()` + per-target deadline (1s default, 3s for slow modules). PR #153 (commit `fd9efc2`). | | ||
| | ISO-TP multi-frame (FF/CF/FC) | ✅ Done (v0.14.x) | `src-tauri/src/transport/isotp.rs` (430 LOC, ~25 unit tests). Enforced by CLAUDE.md "Hardware & timing invariants" §ISO-TP multi-frame. | |
There was a problem hiding this comment.
Correct the ISO-TP release attribution
Git history shows that src-tauri/src/transport/isotp.rs was introduced by d1d71fd as a v0.8.0 feature, which docs/v0.8.0_plan.md:53-54 also describes as shipped; the file contains 18 #[test] functions, matching that commit's “+18” summary. Labeling it v0.14.x with approximately 25 unit tests makes the historical audit inaccurate, so this row should identify v0.8.0 and either use the verified count or omit it.
Useful? React with 👍 / 👎.
| |------|--------|-------| | ||
| | KWP2000 slow-module timeout fix | ✅ Done (v0.13.0) | `transport::kdcan::default_slow_modules()` + per-target deadline (1s default, 3s for slow modules). PR #153 (commit `fd9efc2`). | | ||
| | ISO-TP multi-frame (FF/CF/FC) | ✅ Done (v0.14.x) | `src-tauri/src/transport/isotp.rs` (430 LOC, ~25 unit tests). Enforced by CLAUDE.md "Hardware & timing invariants" §ISO-TP multi-frame. | | ||
| | Dark/light theme toggle | ✅ Done (v0.7.0) | `#btn-theme` in `src/index.html:49` + handler in `src/js/main.js:283`. localStorage persistence via `beeemuu_dark` key (migrated to `beeemuu_settings` per the v0.7.0 settings-schema). PR #109 (commit `afefc32`). | |
There was a problem hiding this comment.
Describe the actual theme persistence migration
In v0.7.0, theme persistence moved to ~/beeemuu-exports/workspace.json, as documented in CHANGELOG.md:451-460 and implemented by saveSettings()/flushWorkspace(). Workspace.migrateLegacy() reads beeemuu_dark and beeemuu_settings as separate legacy inputs and converts the former directly into the workspace theme field; it never migrates that key into beeemuu_settings. The current wording therefore sends maintainers to the wrong persistence mechanism and schema.
Useful? React with 👍 / 👎.
| | Dark/light theme toggle | ✅ Done (v0.7.0) | `#btn-theme` in `src/index.html:49` + handler in `src/js/main.js:283`. localStorage persistence via `beeemuu_dark` key (migrated to `beeemuu_settings` per the v0.7.0 settings-schema). PR #109 (commit `afefc32`). | | ||
| | Gauge theming | ✅ Done (v0.7.0) | `profileThemes` object in `src/js/main.js:21`; per-profile `[profile.theme]` block in the TOML community profile. PR #109. | | ||
| | Save/load workspace layout | ✅ Done (v0.7.0) | `src/js/workspace.js` (pure helpers for the persisted layout). PR #109. | | ||
| | Export PNG/SVG from charts | ✅ Done (v0.11.0) | `src/js/svg_export.js` (pure-JS SVG renderer; avoids the `canvas2svg` / `chartjs-plugin-svg-export` deps); PNG export via `canvas.toDataURL` upstream. Logging chart + histogram both supported. PR #136 (commit `7f92ccb`). | |
There was a problem hiding this comment.
Credit both chart-export pull requests
PR #136 (7f92ccb) added only the SVG renderer and SVG controls; the PNG buttons and Chart.js toBase64Image() downloads were added earlier by PR #131 (d2d1d070), as also recorded in CHANGELOG.md:363-368. Since the surrounding text promises the PR that landed each item, attributing the combined PNG/SVG feature solely to #136 loses the provenance for half of the shipped work.
Useful? React with 👍 / 👎.
| | ISO-TP multi-frame (FF/CF/FC) | ✅ Done (v0.14.x) | `src-tauri/src/transport/isotp.rs` (430 LOC, ~25 unit tests). Enforced by CLAUDE.md "Hardware & timing invariants" §ISO-TP multi-frame. | | ||
| | Dark/light theme toggle | ✅ Done (v0.7.0) | `#btn-theme` in `src/index.html:49` + handler in `src/js/main.js:283`. localStorage persistence via `beeemuu_dark` key (migrated to `beeemuu_settings` per the v0.7.0 settings-schema). PR #109 (commit `afefc32`). | | ||
| | Gauge theming | ✅ Done (v0.7.0) | `profileThemes` object in `src/js/main.js:21`; per-profile `[profile.theme]` block in the TOML community profile. PR #109. | | ||
| | Save/load workspace layout | ✅ Done (v0.7.0) | `src/js/workspace.js` (pure helpers for the persisted layout). PR #109. | |
There was a problem hiding this comment.
Keep workspace layout marked as unfinished
The v0.7.0 plan defines this item as restoring which gauges are open and their min/max bounds (docs/v0.7.0_plan.md:134-137), but Workspace.sanitizeWorkspace() has no gauge-layout field and saveSettings() records only general preferences such as theme, connection settings, profile selectors, and enabled logging channels. Consequently src/js/workspace.js cannot save or load the promised gauge layout, so moving this item from Ready to Done hides work that remains unimplemented.
Useful? React with 👍 / 👎.
|
|
||
| | Item | Status | Notes | | ||
| |------|--------|-------| | ||
| | KWP2000 slow-module timeout fix | ✅ Done (v0.13.0) | `transport::kdcan::default_slow_modules()` + per-target deadline (1s default, 3s for slow modules). PR #153 (commit `fd9efc2`). | |
There was a problem hiding this comment.
Reconcile the later KWP timeout status
Marking this item Done introduces a direct contradiction within the same roadmap: the v0.13.0 section still calls the timeout fix Ready at ROADMAP.md:378, lists its cycle slice as 🔲 Open at line 392, and says modules “time out today” at line 416. Because ROADMAP.md is presented as the canonical project state, update those later entries to historical/completed status as part of this audit rather than leaving readers with mutually exclusive planning states.
Useful? React with 👍 / 👎.
…moved to ✅ Done
Six items in the v0.3.0 'Real Car' historical section were marked 🟢 Ready but have actually shipped:
This is the same doc-rot pattern that PR #198 fixed in CLAUDE.md: items the inventory still claims as 'Ready to land' have actually shipped, but nobody re-tagged the historical section afterward. Same 'data over invention' fix as the CLAUDE.md refresh.
What changed:
What this PR does NOT change:
Verified locally (docs-only, no test diff expected):
Tier A docs-only per CLAUDE.md. Self-merge on CI green.
Cross-references:
What this adds
For data contributions (community/*.toml)
proprietary software
For code contributions
cargo fmtandcargo clippyare cleanFor release-cut PRs
Cargo.toml,package.json, andpackage-lock.jsongit tag -a vX.Y.Z)release.ymlcan build installers (git push origin vX.Y.Z)