Skip to content

docs(roadmap): audit v0.3.0 historical section — stale 🟢 Ready items … - #205

Merged
github-actions[bot] merged 1 commit into
mainfrom
docs/roadmap-v0.3-stale-ready-items
Jul 31, 2026
Merged

docs(roadmap): audit v0.3.0 historical section — stale 🟢 Ready items …#205
github-actions[bot] merged 1 commit into
mainfrom
docs/roadmap-v0.3-stale-ready-items

Conversation

@ohgeeceee

Copy link
Copy Markdown
Owner

…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:

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:

What this adds

For data contributions (community/*.toml)

  • Vehicle: chassis + engine + year
  • How verified:
  • Loads cleanly (checked the Diagnostics tab — no warnings)
  • Original / community-derived knowledge, not from ISTA or other
    proprietary software

For code contributions

  • cargo fmt and cargo clippy are clean
  • Tested against the Simulator (and, if possible, a real car — say which)
  • No BMW proprietary data or trademarks added
  • Docs updated if any behavior claims changed

For release-cut PRs

  • Version bumped in Cargo.toml, package.json, and package-lock.json
  • Annotated tag created for this release (git tag -a vX.Y.Z)
  • Tag pushed so release.yml can build installers (git push origin vX.Y.Z)

…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)
@github-actions
github-actions Bot merged commit 6e64ea3 into main Jul 31, 2026
37 of 39 checks passed
@github-actions

Copy link
Copy Markdown

🤖 Doc-only change — auto-merge enabled. Will merge once required checks pass.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread ROADMAP.md
| 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. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment thread ROADMAP.md
|------|--------|-------|
| 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`). |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment thread ROADMAP.md
| 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`). |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment thread ROADMAP.md
| 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. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment thread ROADMAP.md

| 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`). |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

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