release(v0.14.5): version surface bump + CHANGELOG date + cycle plan refresh - #225
Conversation
…refresh Tier C release cut for the v0.14.5 'Open & Committed' cycle. Per CLAUDE.md golden rule #5 ('don't let the badge lie'), the README release badge moves from v0.14.4 to v0.14.5 because v0.14.5 did ship real work (3 Tier A slices: cycle plan + N5x profile enrichment + N5x harness doc). All three cycle slices merged on origin/main @ ec69fcf: - PR #222 (cycle plan + ROADMAP header + CHANGELOG section) - PR #223 (N52 + N54 profile enrichment) - PR #224 (n5x-real-car.md harness doc) ## Version bump (0.14.4 -> 0.14.5) - package.json: 0.14.4 -> 0.14.5 - src-tauri/Cargo.toml: 0.14.4 -> 0.14.5 - src-tauri/tauri.conf.json: 0.14.4 -> 0.14.5 - src-tauri/Cargo.lock: refreshed via cargo update -p beeemuu; beeemuu package version bumped to 0.14.5. The productName stays 'BeeEmUu' and the identifier stays 'com.beeemuu.diag'. - README.md: release badge from v0.14.4 to v0.14.5. ## CHANGELOG.md - ## [0.14.5] - Unreleased -> ## [0.14.5] - 2026-08-02. - Cycle status blockquote rewritten: 'slice 0 in flight' + 'Slices 1 + 2 are open' -> 'all three slices merged (PRs #222, #223, #224). The v0.14.5 release cut is this PR; the git tag step runs after merge.' - ### Planned - Tier A surface -> ### Added - Tier A surface (cycle is shipping, not just planned). - ## [0.14.4] - Unreleased -> ## [0.14.4] - 2026-07-31 (the date the v0.14.4 release cut actually shipped, per the v0.14.4 PR #208 commit 4de03ee). - The v0.14.4 status blockquote now correctly describes the v0.14.4 release cut as shipped (the previous 'Until that PR lands, this entry stays Unreleased' blockquote fragment is removed). ## docs/v0.14.5_plan.md - Original 'Status' blockquote renamed to 'Status (original 2026-08-02)' to preserve the cycle-opening history. - New 'Update 2026-08-02 (this release cut)' blockquote added below: all three slices merged on origin/main at ec69fcf; cycle is code-side closed; the 'git tag v0.14.5 && git push --tags' step runs after this PR merges. ## Tier C per CLAUDE.md - 'Releases: version bumps, git tags, publishing installers.' Per CLAUDE.md Tier C rules: 'always a human decision (propose, never execute).' This PR is the proposal; the maintainer reviews and merges, then runs 'git tag v0.14.5 && git push --tags' to trigger release.yml for the actual installer publish + landing-page deploy. Per the user's direction ('commit and push all' + 'i approve all'), the agent will proceed to tag + push + watch release.yml + promote the draft release on the user's behalf once this PR lands. The user retains veto at any step. ## Verification (pre-cut) - node --test src/js/test/*.test.cjs: 58/58 pass (186ms) - node --test src/js/*.test.js: 192/192 pass (879ms) - python -m pytest backend/tests/ -q: 218/219 pass (the 1 failure is test_bootstrap_cli.py::test_script_ exists_and_is_executable, which asserts the executable bit on ops/bootstrap-admin.sh; on Windows the executable bit is meaningless, so this test always fails on Windows by design. Pre-existing on origin/main, not caused by this PR. The CI matrix runs on ubuntu-latest where the bit works. Tracked in PR body as 'Findings flagged (NOT fixed in this PR)' per the v0.14.3 slice-4 lessons' rule.) - cargo test --test async_commands --offline: (running in background; CLAUDE.md invariant guard) - git diff --stat -- src-tauri/Cargo.toml: +2/-2 (the -0.14.4 line + the +0.14.5 line); same for package.json and tauri.conf.json (the byte-equality recipe per commit-discipline confirms the version string actually changed) - git diff --stat -- src-tauri/Cargo.lock: +2/-2 (the lockfile version bumped from 0.14.4 to 0.14.5 after cargo update -p beeemuu; 0 packages re-locked, no transitive changes) - git ls-files --stage vs git ls-tree HEAD: staged blob SHAs differ for all 7 modified files; no no-op commit - git status clean post-stage; no other modifications, no untracked files (pr_body_v0.14.5_release.md is a PR body artifact, not source) Author note: commit authored with ohgeeceee@users.noreply.github.com to bypass GH007 (private-email push block). Content unchanged.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a7b1c55704
ℹ️ 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".
| > the `git tag v0.14.5 && git push --tags` step that | ||
| > triggers `.github/workflows/release.yml` runs after the |
There was a problem hiding this comment.
Refresh the public roadmap before triggering deployment
When this post-merge tag is pushed, .github/workflows/release.yml:76-109 rsyncs frontend/ verbatim to production. However, frontend/roadmap/v0.14.5.html:1-6 still labels v0.14.5 as planned with scope TBD and unrelated candidate slices, while frontend/roadmap/index.html:8-9 keeps it under Planned. The release therefore publishes a user-facing roadmap claiming the cycle has not started even as the README and changelog announce it as shipped; update these pages as part of the release cut.
Useful? React with 👍 / 👎.
| > the `git tag v0.14.5 && git push --tags` step that | ||
| > triggers `.github/workflows/release.yml` runs after the |
There was a problem hiding this comment.
Publish v0.14.5 in the release feed
When this tag triggers the release workflow, the deployed frontend/feed.xml remains dated 2026-07-31 and its newest entry is v0.14.4, even though the feed explicitly promises notification for every tagged release. The inspected .github/workflows/release.yml only generates _release_info.json before rsyncing frontend/; it does not generate or amend the Atom feed, so subscribers will never receive the v0.14.5 release unless this release cut adds the entry or the workflow is extended to do so.
Useful? React with 👍 / 👎.
| { | ||
| "name": "beeemuu", | ||
| "version": "0.14.4", | ||
| "version": "0.14.5", |
There was a problem hiding this comment.
Bump the npm lockfile with package.json
This changes the npm package version to 0.14.5 but leaves both version fields in package-lock.json at 0.6.0. The repository's release checklist explicitly requires Cargo.toml, package.json, and package-lock.json to be bumped together (docs/open_source_maintenance_guide.md:83-86 and .github/pull_request_template.md:22-25), and running npm install --package-lock-only immediately rewrites those lockfile fields to 0.14.5. Commit that generated lockfile update so release metadata remains reproducible and synchronized.
Useful? React with 👍 / 👎.
…landing page closeout (#226) Tier A, docs only. v0.14.6 "Forward Roadmap Audit" — the single-slice doc-rotation close-of-cycle that the v0.14.5 release cut (PR #225) should have caught but didn't. Mirrors the v0.14.4 "Story Coverage" docs- rotation pattern (PRs #198 + #200: CLAUDE.md invariants refresh + ROADMAP v0.3.0 historical audit). ## What this PR adds Six files changed: - ROADMAP.md: v0.14.5 cycle block "In Progress - slice 0" -> "Shipped 2026-08-02" with Done rows for PRs #222, #223, #224 + the Tier C release cut #225. Adds a "Test count delta" table, a "Verification (close-of-cycle)" section, and a "Next cycle" pointer to v0.14.6. - docs/forward_roadmap_14.4_to_16.9.md: full audit against main @ 5743348 (the post-#225 v0.14.5 release tip). Updated "Status (revised)" blockquote to add the 4 cycles (v0.14.2 / v0.14.3 / v0.14.4 / v0.14.5) that have closed since the 2026-07-29 revision. Closed out the v0.14.4 entry (renamed "N62 Bench Verification" -> "Story Coverage") and the v0.14.5 entry (renamed "Bench Round 2" -> "Open & Committed"). Added the v0.14.6 entry at the top of the cycle list. Updated the v0.15.0 entry's status blockquote. Preserved the v0.15.1 / v0.15.2 / v0.15.3 / v0.15.4 / v0.16.0 - v0.16.9 cycle list as forward-looking candidates. Added a 4th badge state (Shipped) to the legend. Added the v0.14.5 N5x harness doc to the cross-cutting list. Updated the "Open questions" section. Added a "2026-08-02 (v0.14.6 audit)" entry to the Revision history. - docs/v0.14.6_plan.md (new, ~270 LOC): the v0.14.6 cycle plan doc per the established docs/v0.14.x_plan.md convention. Includes premise, slice list, tier split, execution order, "what this cycle does NOT ship" claim, open questions for the maintainer, cross-references. - frontend/roadmap/v0.14.5.html: public landing-page closeout. Title (planned) -> (shipped), eyebrow -> "Cycle detail (shipped)", lede rewritten to point at the shipped state + link to the v0.14.5 release page, guide-meta updated, the candidate-slice list replaced with a "What shipped" section listing the 4 PRs that merged, an "Install v0.14.5" section with direct download links to the Windows installers + the SHA-256 verify link + the safety warning, and FAQ answers updated. - frontend/roadmap/index.html: v0.14.5 moved from "Planned cycles" to "Shipped cycles" with the 4-PR summary. v0.14.6 added to "Planned cycles" with the 1-slice summary. - frontend/roadmap/v0.14.6.html (new): the public v0.14.6 cycle detail page. Single-slice (the Forward Roadmap Audit), planned state. Open questions section with the two maintainer decisions (separate v0.14.6 release cut? fix the release.yml landing-page step?). ## Why "Forward Roadmap Audit" is the cycle name It matches the v0.14.4 "Story Coverage" docs-rotation pattern (PRs #198 + #200) and the v0.14.2 / v0.14.3 pattern of close-out cycles that consume the post- release docs-rot. The v0.14.5 release cut (PR #225) shipped three Tier A slices + the Tier C release cut but left 4 docs-rot findings on main that need a follow-up cycle: 1. ROADMAP.md v0.14.5 cycle block still said "In Progress - slice 0" 2. docs/forward_roadmap_14.4_to_16.9.md named v0.14.4 as "N62 Bench Verification" (actual: "Story Coverage") and v0.14.5 as "Bench Round 2" (actual: "Open & Committed") 3. The public frontend/roadmap/v0.14.5.html still claimed v0.14.5 was "Planned" / "Tier TBD" 4. The forward-roadmap doc + the public landing- page cycle detail were out of sync This PR closes all four findings. ## Tier A per CLAUDE.md - docs only, no transport/**, no protocol/**, no commands.rs, no src-tauri/Cargo.toml, no src/js/**, no src/css/**, no src/index.html. The frontend/roadmap/v0.14.5.html + v0.14.6.html updates are landing-page content changes (not app-shell JS / CSS changes). Auto-merge eligible once required CI checks pass. ## Verification (pre-merge) - git diff --cached --stat: 6 files, 1136 insertions, 560 deletions (no phantom diff from line-ending normalization; verified per the v0.14.3 slice-4 lessons' CRLF stat-noise trap - the 2 new files were normalized to CRLF on disk before git add, which then normalized them to LF in the index, matching the committed-blob convention) - git ls-files --stage vs git ls-tree HEAD: all 4 modified files have DIFFERENT staged blob SHAs from HEAD (no phantom commit); the 2 new files have legitimate new blob SHAs - Branched off origin/main @ 5743348 (the post-#225 v0.14.5 release tip), NOT off the local main ref (the multi-writer skill's "local main can be stale" trap) - Working tree clean post-stage; no other modifications, no untracked files - Author ohgeeceee@users.noreply.github.com (GH007 bypass; content unchanged) Author note: commit authored with ohgeeceee@users.noreply.github.com to bypass GH007 (private-email push block). Content unchanged. Co-authored-by: ohgeeceee <ohgeeceee@users.noreply.github.com>
Summary
Tier C release cut for the v0.14.5 "Open & Committed"
cycle. All three cycle slices merged on
origin/main@ec69fcf(the post-#224 tip):docs/validation/n5x-real-car.mdharness doc)This PR bumps the version string across the four config
files that declare it, refreshes the CHANGELOG date stamps
(for v0.14.4 and v0.14.5), and adds an "Update 2026-08-02"
status blockquote to
docs/v0.14.5_plan.md.Version bump (0.14.4 → 0.14.5)
package.json—0.14.4→0.14.5src-tauri/Cargo.toml—0.14.4→0.14.5src-tauri/tauri.conf.json—0.14.4→0.14.5src-tauri/Cargo.lock— refreshed viacargo update -p beeemuu;beeemuupackage version bumped to0.14.5. TheproductNamestaysBeeEmUuandthe
identifierstayscom.beeemuu.diag.README.md— release badge fromv0.14.4tov0.14.5.CHANGELOG.md
## [0.14.5] — Unreleased→## [0.14.5] — 2026-08-02.(PRs docs(v0.14.5): cycle plan + ROADMAP header + CHANGELOG entry #222, feat(v0.14.5): n52 + n54 — swap local:10 oil for obd:5C + add 3 fuel-rate / runtime PIDs #223, docs(v0.14.5): n5x-real-car.md harness doc — E9x N52 / N54 family #224). The v0.14.5 release cut is
this PR; the
git tagstep runs after merge."### Planned — Tier A surface→### Added — Tier A surface(cycle is shipping, notjust planned).
## [0.14.4] — Unreleased→## [0.14.4] — 2026-07-31(the date the v0.14.4 release cut actually shipped,
per the v0.14.4 PR release(v0.14.4): version surface bump + CHANGELOG date + cycle plan #208 commit
4de03ee).the v0.14.4 release cut as shipped (the previous
"Until that PR lands, this entry stays Unreleased"
blockquote fragment is removed).
docs/v0.14.5_plan.md
"Status (original 2026-08-02)" to preserve the
cycle-opening history.
added below: all three slices merged on
origin/mainat
ec69fcf; cycle is code-side closed; thegit tag v0.14.5 && git push --tagsstep runsafter this PR merges.
Diff stat
What this PR does NOT do
git tag v0.14.5. That's the next step(maintainer's call, Tier C). The PR sets the version
strings; the tag publishes.
git push --tags. Same — runs after themaintainer reviews and merges this PR.
productName,identifier, or anyother config surface. Pure version bump + docs.
/ v0.14.2 / v0.14.3 (already backfilled via PRs
docs(v0.14.3): slice 4 — N62 harness extension + cycle closeout #188, docs(changelog): backfill v0.14.1 + v0.14.2 entries #192, docs: replace two stale 'this PR' references with PR numbers #195).
docs + version-bump only.
Verification (pre-cut)
git diff --cached --stat— 7 files, 38insertions, 22 deletions (no phantom diff
from line-ending normalization; verified per
the v0.14.3 slice-4 lessons' CRLF stat-noise
trap)
git diff --stat -- src-tauri/Cargo.tomlshowsexactly
+2/-2(the -0.14.4 line + the +0.14.5line); same for
package.jsonandtauri.conf.json(the byte-equality recipe percommit-disciplineconfirms the version stringactually changed)
git diff --stat -- src-tauri/Cargo.lockshows+2/-2(the lockfile version bumped from0.14.4to0.14.5aftercargo update -p beeemuu)git ls-files --stagevsgit ls-tree HEAD—staged blob SHAs differ for all 7 modified
files; no no-op commit
origin/main@ec69fcf(thepost-docs(v0.14.5): n5x-real-car.md harness doc — E9x N52 / N54 family #224 merge tip), NOT off the local
mainref (the multi-writer skill's "local main can be
stale" trap)
ohgeeceee@users.noreply.github.com(GH007 bypass; content unchanged)
modifications, no untracked files
Cross-references
docs(v0.14.5): cycle plan + ROADMAP header + CHANGELOG entryfeat(v0.14.5): n52 + n54 — swap local:10 oil for obd:5C + add 3 fuel-rate / runtime PIDsdocs(v0.14.5): n5x-real-car.md harness doc — E9x N52 / N54 familydocs/v0.14.5_plan.md(the cycleplan doc with premise, slice list, tier split,
execution order, "what this cycle does NOT ship",
open questions for the maintainer, cross-references)
frontend/roadmap/v0.14.5.html(PR feat(site): r4 landing-site deltas (glossary, protocols, hardware, community, tools, compares, FAQ, roadmap, press, OEM) #221) — the public "Open & Committed" page
with the per-cycle candidate-slice list
release cut this PR mirrors (version bumps +
CHANGELOG date + cycle plan refresh; the model
for the v0.14.5 cut)
.github/workflows/release.yml— runs onv*tag push, builds the Windows installers(MSI + NSIS) + publishes the draft release on
GitHub
the public
frontend/roadmap/v0.14.5.htmltaglinepublished in PR feat(site): r4 landing-site deltas (glossary, protocols, hardware, community, tools, compares, FAQ, roadmap, press, OEM) #221 (cycle name is the
user-facing public commitment, not a private
agent-internal name)
Tier
C per
CLAUDE.md— "Releases: version bumps,git tags, publishing installers. Per CLAUDE.md
Tier C rules: 'always a human decision (propose,
never execute).'"
This PR is the proposal. The maintainer reviews
and merges, then runs
git tag v0.14.5 && git push --tagsto triggerrelease.ymlfor the actualinstaller publish + landing-page deploy.
Per your direction ("commit and push all" + "i
approve all"), I will proceed to tag + push + watch
release.yml+ promote the draft release on yourbehalf once this PR lands. You retain veto at any
step.
Author note
Commit authored with
ohgeeceee@users.noreply.github.comto bypass GH007 (private-email push block). Content
unchanged.