Skip to content

feat: add beemuu ECC bundle - #5

Closed
ecc-tools[bot] wants to merge 11 commits into
mainfrom
ecc-tools/beemuu-1783379114314
Closed

feat: add beemuu ECC bundle#5
ecc-tools[bot] wants to merge 11 commits into
mainfrom
ecc-tools/beemuu-1783379114314

Conversation

@ecc-tools

@ecc-tools ecc-tools Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Auto-generated ECC bundle from repository analysis.

What This Does

Merging this PR adds repo-local ECC artifacts for both Claude Code and Codex. The generated bundle captures repository patterns, Codex baseline config, and reusable workflow scaffolds derived from git history analysis.

Analysis Scope

  • Commit history patterns and conventions
  • Code architecture and structure
  • Testing patterns and coverage
  • Recurring workflows

Files

Path Description
.claude/ecc-tools.json ECC install manifest used for upgrades, repair, and uninstall.
.claude/skills/beemuu/SKILL.md Repository-specific Claude Code skill generated from git history.
.agents/skills/beemuu/SKILL.md Codex-facing copy of the generated repository skill.
.agents/skills/beemuu/agents/openai.yaml Codex skill metadata so the repo skill appears cleanly in the skill interface.
.claude/identity.json Suggested identity.json baseline derived from repository conventions.
.codex/config.toml Repo-local Codex MCP and multi-agent baseline aligned with ECC defaults.
.codex/AGENTS.md Codex usage guide that points at the generated repo skill and workflow bundle.
.codex/agents/explorer.toml Read-only explorer role config for Codex multi-agent work.
.codex/agents/reviewer.toml Read-only reviewer role config focused on correctness and security.
.codex/agents/docs-researcher.toml Read-only docs researcher role config for API verification.
.claude/homunculus/instincts/inherited/beemuu-instincts.yaml Continuous-learning instincts derived from repository patterns.
Optional: Continuous Learning (16 instincts)

This PR also includes instincts for the continuous-learning-v2 skill. These are optional and only useful if you use that skill.

Import after merging:

/instinct-import .claude/homunculus/instincts/inherited/beemuu-instincts.yaml

Review Checklist

  • Verify detected patterns are accurate
  • Confirm generated config, commands, and skill metadata match the repo’s real workflow
  • Check best practices align with team standards before merging

ECC Tools | Everything Claude Code

@ohgeeceee ohgeeceee closed this Jul 10, 2026
github-actions Bot pushed a commit that referenced this pull request Jul 19, 2026
ROADMAP v0.9.0 'Guided Fault Finding' moves Planned -> In progress. PRs #1/#2/#3/#4 (#120/#121/#122/#123) marked Done; PR #5 (validation harness + contribution path) remains Ready/Not yet dispatched. Footer refreshed to 2026-07-19. Doc-only, no code change. Tier A per CLAUDE.md.

Co-authored-by: hermes-agent <ohgeeceee@users.noreply.github.com>
ohgeeceee added a commit that referenced this pull request Jul 19, 2026
…125)

Completes the v0.9.0 'Guided Fault Finding' cycle.

- New docs/validation/testplans.md: a real-car harness that upgrades a plan from verified = 'needs verification' (the default on every plan) to 'verified', mirroring service-functions.md (pre-flight, walk-the-plan, negative-result handling, report-filing).
- community/testplans/README.md gains the plan-level verification-label contract; CONTRIBUTING.md gains the plan axis (rule 4) alongside the existing read/write axes.
- All 11 PR #2 corpus plans now ship 'verified = "needs verification"' so a future UI NEEDS VERIFICATION badge has its data contract. The marker lives in TOML and is ignored by the loader (no deny_unknown_fields), so the branch-integrity gate stays green (cargo test shipped_testplans_branch_integrity passes).

Tier A docs; no Rust/Python change beyond the data marker. Acceptance: docs only, links resolve, CONTRIBUTING conventions consistent.

Co-authored-by: hermes-agent <ohgeeceee@users.noreply.github.com>
github-actions Bot pushed a commit that referenced this pull request Jul 19, 2026
ROADMAP v0.9.0 'Guided Fault Finding' -> Released; PR #5 (#125) marked Done; footer refreshed to 2026-07-19. Doc-only, Tier A.

Co-authored-by: hermes-agent <ohgeeceee@users.noreply.github.com>
ohgeeceee added a commit that referenced this pull request Jul 19, 2026
…#127)

Completes the data contract PR #5 installed: the plan's meta.verified marker now flows end-to-end and renders as a badge.

Rust (src-tauri/src/testplans.rs, additive, non-protected data loader):
- PlanMeta gains verified: Option<String>; TestPlan gains verified: Option<String>; to_plan threads it through. Legacy plans with no marker parse as None and render no badge.
- parse_roundtrip test asserts the marker threads through; shipped corpus + gate tests still green.

UI (src/js/main.js, src/index.html, src/css/app.css):
- loadTestPlan reads plan.verified and renders a header badge: NEEDS VERIFICATION (amber, default) or ✓ Verified (green). Absent marker => no badge. Light + dark themes.
- plan_verified_state() maps the TOC string to label+class.

CHANGELOG: 0.10.0 section.

Tier A (frontend + data loader; no protected path). Verification: cargo test testplans (5/5), node --test (56), lint-toml (0 problems).

Co-authored-by: hermes-agent <ohgeeceee@users.noreply.github.com>
github-actions Bot pushed a commit that referenced this pull request Jul 30, 2026
docs/validation/n62-real-car.md: add the three v0.14.3 PIDs
(0x5E fuel rate L/h, 0x5F engine runtime s, 0x62 fuel rate g/s)
to Step 2 cold-reading + Step 3 running-reading tables. Add
critical-row paragraph for fuel-rate failure modes. Extend
Step 4 report template + Step 5 consequences. Update
cross-references to point at PRs #185/#186/#187 and
docs/DECODE_FUNCTIONS.md sections 10-12.

ROADMAP.md: close v0.14.3 cycle table (slices 1, 2, 3a, 4 done;
slice 3b frontend rewire still open). Bump "Last updated"
header. Correct the stale v0.14.2 cycle-table notes that said
the deferred PIDs were v0.14.3+ work (they ship in v0.14.3).

CHANGELOG.md: add the first entry since v0.14.0 — marked
"Unreleased" because slice 3b is still open and the v0.14.3
release cut cannot happen until slice 3b merges. Notes on the
version surface explain why the README badge stays at v0.14.0
(CLAUDE.md golden rule #5: don't let the badge lie about an
incomplete cycle). Also flags v0.14.1 and v0.14.2 as missing
CHANGELOG entries; the maintainer's housekeeping follow-up is
the appropriate scope for that backfill.

Tier A (docs only). No code changes, no transport/** changes,
no protocol/** changes. PR auto-merge eligible per CLAUDE.md
once CI is green.

Findings flagged (not fixed in this PR — Tier B surface, CLAUDE.md
golden rule #3: don't widen PR scope):
- src-tauri/src/data/live.rs::tests::remove_param_from_profile_is_idempotent
  fails on origin/main @ 093b063 (PR #187). Test asserts N-1 params
  after second remove; returns N. Likely HashSet ordering issue in
  the test fixture (not the production code path). Worth a
  separate Tier B fix PR.

Co-authored-by: ohgeeceee <ohgeeceee@users.noreply.github.com>
github-actions Bot pushed a commit that referenced this pull request Jul 30, 2026
Closes the CHANGELOG gap that PR #188 (v0.14.3 slice 4) flagged
in the "Notes on the version surface" section. v0.14.1 and
v0.14.2 shipped without CHANGELOG entries because each cycle's
slice-closeout PR either forgot the version-surface sync step
or deferred it as a separate housekeeping follow-up.

This PR does the backfill from PR commit history:

- ## [0.14.1] — 2026-07-27
  - Tauri 2 `window.confirm()` auto-dismiss fix (PR #169, Tier B)
  - Simulator regenerate-on-identify (PR #169, Tier B)
  - Per-ECU freeze-schema split (PR #170, Tier A)
  Note: PR #169 shipped two slices in one PR (the dialog.js
  helper + the sim regenerate-on-identify). PR #170 is grouped
  under v0.14.1 because the ROADMAP treats the freeze-schema
  split as part of the v0.14.1 housekeeping arc (it was
  originally targeted at v0.14.0 but its tests-only refactor
  landed late and folded into the v0.14.1 PR #171 cycle-table
  retroactive close).

- ## [0.14.2] — 2026-07-29
  - Cycle plan + ROADMAP v0.14.2 header (PR #171, Tier A)
  - `community/profiles/n62.toml` enrichment — `0x5C` oil temp
    (PR #175, Tier A)
  - Live Data panel UX polish — poll-rate, peaks, range bar,
    snapshot-CSV, NRC error surface (PR #177, Tier A)
  - `docs/validation/n62-real-car.md` harness doc (PR #178,
    Tier A)
  - Claude review workflow repair — remove unsupported
    `Bash(gh pr review:*)` tool from `--allowedTools` (PR #176,
    Tier B)
  Note: the original v0.14.3 "Notes on the version surface"
  paragraph omitted PR #176 from the v0.14.2 PR list — fixed in
  this backfill.

Also updates the v0.14.3 "Notes on the version surface" section
to point at this backfill PR instead of flagging it as a
backlog item, and includes PR #176 in the v0.14.2 PR list.

Tier A — docs only. No code changes, no transport/** changes,
no protocol/** changes. PR auto-merge eligible per CLAUDE.md
once CI is green.

Verification:
- [x] CHANGELOG section order preserved: [0.14.0] (line 8) →
      [0.14.1] (line 71) → [0.14.2] (line 105) → [0.14.3]
      (line 168) → [0.13.0] (line 273) — chronological order
      matches merge order (verified via `gh pr list --state
      merged --json number,title,mergedAt`)
- [x] Every PR number cited in a backfill entry exists and
      was actually merged to main (verified via `gh pr view
      N --json mergedAt` for PRs #169, #170, #171, #175, #176,
      #177, #178)
- [x] All slice claims verified against each PR's actual body
      — no fabricated content per the data-over-invention rule
- [x] `node --test src/js/*.test.js` — 163/163 pass (no code
      changes; 5 slice 3b tests absent because this branch is
      from origin/main pre-PR-190)
- [x] `pytest backend/tests/` — 166/166 pass

Cross-references:
- PR #188 — v0.14.3 slice 4 (the cycle-closeout PR that
  flagged this backfill as the appropriate scope)
- CLAUDE.md golden rule #5 — version-surface sync (the rule
  this PR enforces retroactively for v0.14.1 + v0.14.2)
- docs/v0.14.3_plan.md — the cycle plan that calls out the
  forward-roadmap maintenance pattern this PR continues

Co-authored-by: ohgeeceee <ohgeeceee@users.noreply.github.com>
ohgeeceee added a commit that referenced this pull request Jul 31, 2026
Closes the v0.14.3 cycle for real. PR #188 (slice 4) closed
the cycle table on its own merge but the cycle itself was
incomplete — slice 3b was still open, gating the release cut.
PR #190 (slice 3b, merged 2026-07-30T18:58:11Z into
origin/main @ 10f58c8) closed that gate. This PR updates the
stale docs to match reality.

## What this PR ships

### ROADMAP.md

- "Last updated" header: bumped from "partial close" to
  "closed"; tier split bumped from "3 Tier A + 1 Tier B + 1 Tier B
  still open" to "3 Tier A + 2 Tier B + 0 Tier C"; all five cycle
  slices now listed as merged (#185, #186, #187, #188, #190).
- v0.14.3 cycle section header: "In Progress — slices 1, 2, 4
  done; slice 3 split" → "Shipped 2026-07-30".
- Cycle table slice 3b row: 🔲 Open → ✅ Done (PR #190), with
  full notes describing the `classifyNrc` helper, the per-PID
  dim + one-click-remove UI, the `#live-unsupported-count`
  panel-head badge, and the new `.gauge-cell.dimmed` /
  `.pid-remove` CSS.
- Cycle table other rows updated to attribute by PR number
  (#188) instead of the original "this PR" placeholder.
- Release-cut paragraph: "Cannot be cut until slice 3b
  merges" → "is a separate Tier C step — all five cycle slices
  are merged but the version-surface bump requires an explicit
  release-cut PR".

### CHANGELOG.md

- v0.14.3 "Cycle status" blockquote: bumped from "slices 1, 2,
  3a, 4 merged; slice 3b still open" to "all five slices
  merged — #185 (decoders), #186 (profile entries), #187
  (slice 3a backend), #188 (slice 4 harness extension + cycle
  closeout), #190 (slice 3b frontend rewire)".
- v0.14.3 "Added — Tier B surface" bullet: merged the slice 3a
  (PR #187) and slice 3b (PR #190) descriptions into a single
  "Per-PID NRC backend + frontend + remove-from-profile UI"
  entry with PR sub-bullets. Removed the now-stale "slice 3b is
  still open" note.
- v0.14.3 "Notes on the version surface" — README badge
  paragraph: rewrote to acknowledge slice 3b is now merged
  but the release-cut PR hasn't run, so the badge correctly
  stays at v0.14.0 until the Tier C release-cut PR.
- v0.14.3 closing paragraph: "follows slice 3b's merge" →
  "follows the release-cut PR's merge. Until that lands, this
  entry stays `## [0.14.3] — Unreleased`".

## What this PR does NOT do

- ❌ No README badge bump. CLAUDE.md golden rule #5 still
  applies — the release-cut PR (Tier C) hasn't run, so v0.14.3
  isn't a released version. Bumping now would replace one lie
  with another.
- ❌ No `Cargo.toml` / `tauri.conf.json` version bumps.
  These are part of the Tier C release cut (separate PR).
- ❌ No git tag, release notes, or installer build. Tier C.
- ❌ No code changes. Docs only.

## Tier

**A** — `CHANGELOG.md` + `ROADMAP.md`. PR auto-merge
eligible per CLAUDE.md Tier A rules.

## Verification

- [x] `node --test src/js/*.test.js` — 168/168 pass (includes
  the slice 3b `classifyNrc` tests added in PR #190)
- [x] `cargo test --lib --offline protocol::` — 15/15 pass
  (regression check; no code changes)
- [x] `npm run build` — `rc=0`, both MSI + NSIS bundles
  built (1m 52s)
- [x] ROADMAP cycle section header now reads "Shipped
  2026-07-30"
- [x] CHANGELOG `[0.14.3]` header preserved as
  "Unreleased" (correctly — release cut is separate)

## Cross-references

- PR #188 — v0.14.3 slice 4 (the original cycle-closeout
  PR that flagged slice 3b as the gating slice)
- PR #190 — v0.14.3 slice 3b (now merged; the close this
  PR's docs are catching up to)
- PR #192 — v0.14.1 + v0.14.2 CHANGELOG backfill (the
  previous round of version-surface housekeeping)
- CLAUDE.md golden rule #5 — version-surface sync (the rule
  this PR enforces retroactively for v0.14.3's slice 3b)

Co-authored-by: ohgeeceee <ohgeeceee@users.noreply.github.com>
ohgeeceee added a commit that referenced this pull request Jul 31, 2026
Tier C release cut for the v0.14.3 "Finish the Bench" cycle.
All five slices are merged on origin/main @ 1c7b9fd; this PR
bumps the version string across the four config files that
declare it, refreshes the CHANGELOG header date, and rewrites
the "Notes on the version surface" blockquote to reflect that
the release-cut PR has landed.

## What this PR ships

### Version bump (0.10.0 → 0.14.3)

The version drift accumulated because v0.14.1, v0.14.2, and
v0.14.3 all shipped without a version bump. CLAUDE.md golden
rule #5 ("don't let the badge lie") was violated since
v0.14.1 — the README badge has read v0.14.0 across three
shipped cycles. Bumping to v0.14.3 (the most-recently-shipped
cycle, per CLAUDE.md's "the badge moves only when something
actually ships" rule) corrects the surface in one retroactive
catch-up step.

- `package.json` — `0.10.0` → `0.14.3`
- `src-tauri/Cargo.toml` — `0.10.0` → `0.14.3`
- `src-tauri/tauri.conf.json` — `0.10.0` → `0.14.3`
- `src-tauri/Cargo.lock` — refresh via `cargo check`; beeemuu
  package version bumped to `0.14.3`. The productName stays
  `BeeEmUu` and the identifier stays `com.beeemuu.diag` (no
  product-naming changes in this release).
- `README.md` — release badge from `v0.14.0` to `v0.14.3`.

### CHANGELOG.md

- `## [0.14.3] — Unreleased` → `## [0.14.3] — 2026-07-30`.
  The date reflects the day all five cycle slices landed on
  origin/main; the section content is unchanged (already
  documented via PR #188 cycle closeout + PR #192 backfill +
  PR #195 stale-reference cleanup).
- Cycle status blockquote rewritten: "The v0.14.3 release
  cut (version bump in `Cargo.toml` + `tauri.conf.json`,
  git tag, release notes publish, installer build) is a
  separate Tier C step — the slices are all merged but the
  version-surface bump requires an explicit release-cut PR.
  Until that PR lands, this entry stays `## [0.14.3] —
  Unreleased` per Keep-a-Changelog convention." → "Version
  surface bumped in the release-cut PR (this PR) to `0.14.3`
  across `package.json`, `src-tauri/Cargo.toml`,
  `src-tauri/tauri.conf.json`, and the README badge. The
  git tag + release publish + installer build are the next
  step (run locally via `git tag v0.14.3 && git push --tags`
  to trigger `.github/workflows/release.yml`)."
- Closing paragraph rewritten: "follows the release-cut PR's
  merge. Until that lands, this entry stays `## [0.14.3] —
  Unreleased`." → "runs locally via `git tag v0.14.3 && git
  push --tags`, which triggers `.github/workflows/release.yml`
  and publishes a draft release on GitHub."

## What this PR does NOT do

- ❌ No `git tag v0.14.3`. That's the next step (maintainer's
  call, Tier C). The PR sets the version strings; the tag
  publishes.
- ❌ No `git push --tags`. Same — runs after the maintainer
  reviews and merges this PR.
- ❌ No changes to `productName`, `identifier`, or any other
  config surface. Pure version bump.
- ❌ No README content changes. The badge URL changes, but
  the surrounding badge block stays identical.
- ❌ No CHANGELOG content changes for v0.14.1 / v0.14.2
  (already backfilled via PR #192).

## 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.3 && git push --tags` to trigger the
release.yml workflow.

## Verification (pre-cut)

- [x] `node --test src/js/*.test.js` — 168/168 pass
- [x] `cargo test --lib --offline` — 149/149 pass
- [x] `pytest backend/tests/` — 166/166 pass
- [x] `npm run build` — `rc=0`; both MSI + NSIS bundles
  built with the new `0.14.3` version:
  - `BeeEmUu_0.14.3_x64_en-US.msi` (5,009,408 bytes)
  - `BeeEmUu_0.14.3_x64-setup.exe` (3,488,856 bytes)
- [x] Rustc compile log confirms: `Compiling beeemuu v0.14.3`
- [x] `Cargo.lock` regenerated by `cargo check`:
  `name = "beeemuu" version = "0.14.3"`
- [x] `git status` clean (no other modifications)

## Post-merge steps for the maintainer

```bash
# 1. Verify the PR landed cleanly on origin/main
git log origin/main --oneline -1
# 2. Tag the release
git tag v0.14.3
# 3. Push the tag (triggers .github/workflows/release.yml)
git push origin v0.14.3
# 4. Watch the release workflow
gh run watch --repo ohgeeceee/beemuu
# 5. Once the draft release is published, review it at
#    https://github.com/ohgeeceee/beemuu/releases/tag/v0.14.3
#    and promote from draft to public.
```

The release.yml workflow (`.github/workflows/release.yml`)
will:
- Build Windows installers via `tauri-apps/tauri-action@v1`
- Generate the MSI + NSIS bundles with the `0.14.3` version
- Publish a draft GitHub release with the standard release
  notes (NSIS .exe + MSI .msi + safety warning banner)
- Deploy the `_release_info.json` to `beemuu.com/frontend/`
  via the deploy SSH key (writes the new version into the
  public site's "Latest release" card)

## Cross-references

- PR #188 — v0.14.3 slice 4 (the cycle-closeout PR that
  flagged the release cut as the next step)
- PR #194 — v0.14.3 cycle closeout after slice 3b (updated
  ROADMAP + CHANGELOG to "Shipped" / "Unreleased" state)
- PR #195 — "this PR" reference cleanup (prerequisite
  consistency for this PR's CHANGELOG edit)
- `.github/workflows/release.yml` — the workflow that
  publishes the release on `v*` tag push
- `docs/forward_roadmap_14.4_to_16.9.md` — the next cycle
  plan (v0.14.4 "N62 Bench Verification")

Co-authored-by: ohgeeceee <ohgeeceee@users.noreply.github.com>
ohgeeceee added a commit that referenced this pull request Jul 31, 2026
#198)

* release(v0.14.3): version surface bump + CHANGELOG date

Tier C release cut for the v0.14.3 "Finish the Bench" cycle.
All five slices are merged on origin/main @ 1c7b9fd; this PR
bumps the version string across the four config files that
declare it, refreshes the CHANGELOG header date, and rewrites
the "Notes on the version surface" blockquote to reflect that
the release-cut PR has landed.

## What this PR ships

### Version bump (0.10.0 → 0.14.3)

The version drift accumulated because v0.14.1, v0.14.2, and
v0.14.3 all shipped without a version bump. CLAUDE.md golden
rule #5 ("don't let the badge lie") was violated since
v0.14.1 — the README badge has read v0.14.0 across three
shipped cycles. Bumping to v0.14.3 (the most-recently-shipped
cycle, per CLAUDE.md's "the badge moves only when something
actually ships" rule) corrects the surface in one retroactive
catch-up step.

- `package.json` — `0.10.0` → `0.14.3`
- `src-tauri/Cargo.toml` — `0.10.0` → `0.14.3`
- `src-tauri/tauri.conf.json` — `0.10.0` → `0.14.3`
- `src-tauri/Cargo.lock` — refresh via `cargo check`; beeemuu
  package version bumped to `0.14.3`. The productName stays
  `BeeEmUu` and the identifier stays `com.beeemuu.diag` (no
  product-naming changes in this release).
- `README.md` — release badge from `v0.14.0` to `v0.14.3`.

### CHANGELOG.md

- `## [0.14.3] — Unreleased` → `## [0.14.3] — 2026-07-30`.
  The date reflects the day all five cycle slices landed on
  origin/main; the section content is unchanged (already
  documented via PR #188 cycle closeout + PR #192 backfill +
  PR #195 stale-reference cleanup).
- Cycle status blockquote rewritten: "The v0.14.3 release
  cut (version bump in `Cargo.toml` + `tauri.conf.json`,
  git tag, release notes publish, installer build) is a
  separate Tier C step — the slices are all merged but the
  version-surface bump requires an explicit release-cut PR.
  Until that PR lands, this entry stays `## [0.14.3] —
  Unreleased` per Keep-a-Changelog convention." → "Version
  surface bumped in the release-cut PR (this PR) to `0.14.3`
  across `package.json`, `src-tauri/Cargo.toml`,
  `src-tauri/tauri.conf.json`, and the README badge. The
  git tag + release publish + installer build are the next
  step (run locally via `git tag v0.14.3 && git push --tags`
  to trigger `.github/workflows/release.yml`)."
- Closing paragraph rewritten: "follows the release-cut PR's
  merge. Until that lands, this entry stays `## [0.14.3] —
  Unreleased`." → "runs locally via `git tag v0.14.3 && git
  push --tags`, which triggers `.github/workflows/release.yml`
  and publishes a draft release on GitHub."

## What this PR does NOT do

- ❌ No `git tag v0.14.3`. That's the next step (maintainer's
  call, Tier C). The PR sets the version strings; the tag
  publishes.
- ❌ No `git push --tags`. Same — runs after the maintainer
  reviews and merges this PR.
- ❌ No changes to `productName`, `identifier`, or any other
  config surface. Pure version bump.
- ❌ No README content changes. The badge URL changes, but
  the surrounding badge block stays identical.
- ❌ No CHANGELOG content changes for v0.14.1 / v0.14.2
  (already backfilled via PR #192).

## 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.3 && git push --tags` to trigger the
release.yml workflow.

## Verification (pre-cut)

- [x] `node --test src/js/*.test.js` — 168/168 pass
- [x] `cargo test --lib --offline` — 149/149 pass
- [x] `pytest backend/tests/` — 166/166 pass
- [x] `npm run build` — `rc=0`; both MSI + NSIS bundles
  built with the new `0.14.3` version:
  - `BeeEmUu_0.14.3_x64_en-US.msi` (5,009,408 bytes)
  - `BeeEmUu_0.14.3_x64-setup.exe` (3,488,856 bytes)
- [x] Rustc compile log confirms: `Compiling beeemuu v0.14.3`
- [x] `Cargo.lock` regenerated by `cargo check`:
  `name = "beeemuu" version = "0.14.3"`
- [x] `git status` clean (no other modifications)

## Post-merge steps for the maintainer

```bash
# 1. Verify the PR landed cleanly on origin/main
git log origin/main --oneline -1
# 2. Tag the release
git tag v0.14.3
# 3. Push the tag (triggers .github/workflows/release.yml)
git push origin v0.14.3
# 4. Watch the release workflow
gh run watch --repo ohgeeceee/beemuu
# 5. Once the draft release is published, review it at
#    https://github.com/ohgeeceee/beemuu/releases/tag/v0.14.3
#    and promote from draft to public.
```

The release.yml workflow (`.github/workflows/release.yml`)
will:
- Build Windows installers via `tauri-apps/tauri-action@v1`
- Generate the MSI + NSIS bundles with the `0.14.3` version
- Publish a draft GitHub release with the standard release
  notes (NSIS .exe + MSI .msi + safety warning banner)
- Deploy the `_release_info.json` to `beemuu.com/frontend/`
  via the deploy SSH key (writes the new version into the
  public site's "Latest release" card)

## Cross-references

- PR #188 — v0.14.3 slice 4 (the cycle-closeout PR that
  flagged the release cut as the next step)
- PR #194 — v0.14.3 cycle closeout after slice 3b (updated
  ROADMAP + CHANGELOG to "Shipped" / "Unreleased" state)
- PR #195 — "this PR" reference cleanup (prerequisite
  consistency for this PR's CHANGELOG edit)
- `.github/workflows/release.yml` — the workflow that
  publishes the release on `v*` tag push
- `docs/forward_roadmap_14.4_to_16.9.md` — the next cycle
  plan (v0.14.4 "N62 Bench Verification")

* docs: refresh CLAUDE.md hardware/timing invariants — items now shipped

Pure docs fix. The 'Hardware & timing invariants' section has
been stale since the v0.6.0 release blocker resolved. Four
claims were wrong against `main` @ 1c7b9fd:

- **Async commands** listed 7 transport commands as 'still
  sync'. All 7 are `async fn` today; the migration is complete.
  `tests/async_commands.rs` parses `src/commands.rs` and
  asserts every non-async command is in the 24-entry
  `SYNC_ALLOWLIST` of in-memory / local-filesystem helpers.
  Refreshed the bullet to point at the guard.

- **Tester Present keep-alive** marked `NOT YET IMPLEMENTED`.
  `src-tauri/src/keepalive.rs` (210 LOC) ships
  `INTERVAL = 3000 ms` / `FRAME = [0x3E, 0x00]` /
  `tauri::async_runtime::spawn`, wired into `connect`,
  `run_service_function`, `security_access`, with
  `keepalive::tests::` covering session survival,
  compressed-idle, and transport-error backoff.

- **ISO-TP multi-frame** marked `NOT YET IMPLEMENTED`.
  `src-tauri/src/transport/isotp.rs` (430 LOC, ~25 unit
  tests) implements FF/CF/FC per ISO 15765-2. Called via
  `transport::IsoTpTransport` per `transport/kdcan.rs:25`.

- **VIN reads** said `read_vin` does not exist and
  `connect`/`read_vehicle_info` do raw UDS DID reads. Both
  false — `protocol::read_vin` is at
  `src-tauri/src/protocol/mod.rs:296`, and all VIN callers
  in `commands.rs` (lines 70, 533, 677, 930) route through it.

Each claim now cites the specific file + line number that
pins it, and is tagged 'INVARIANT — enforced' to match the
test-time guards. The remaining 'still not implemented' item
(ENET/DoIP UDP discovery) is honestly preserved as such.

Verified locally:
- node --test src/js/**/*.test.js src/js/**/*.test.cjs → 226/226
- cd src-tauri && cargo test --lib --offline → 149/149
- cd src-tauri && cargo test --test async_commands --offline
  → 1/1 (the literal guard cited in the bullet)
- pytest backend/tests/ -q → 166/166

No code changes. No `transport/**`, `protocol/**`,
`commands.rs`, or `.claude/**` touches. Tier A docs-only,
self-merge per CLAUDE.md rule 2 once CI is green.

Closes the doc-rot half of the v0.14.3 cycle's housekeeping.
PR #183 ('docs(proposal): fix stale NOT YET IMPLEMENTED claims
in CLAUDE.md + .claude/agents/fix-drafter.md') proposed
similar byte-exact diffs but landed as a proposal; this PR
applies them to `CLAUDE.md`. The `.claude/agents/fix-drafter.md`
half is left for a separate Tier C PR per CLAUDE.md's
'.claude/agents/**' rule.

---------

Co-authored-by: ohgeeceee <ohgeeceee@users.noreply.github.com>
github-actions Bot pushed a commit that referenced this pull request Jul 31, 2026
…208)

Tier C release cut for the v0.14.4 'Story Coverage' cycle.

All four cycle slices merged on origin/main @ 2217558:
- PR #198 (CLAUDE.md invariants refresh)
- PR #199 (ci.yml Tauri Linux sysdeps fix)
- PR #200 (ROADMAP v0.3.0 historical audit)
- PR #201/#207 (52 unit tests for story.rs + anonymize.rs)

This PR bumps the version string across the four config files
that declare it, refreshes the CHANGELOG header date, and adds
docs/v0.14.4_plan.md (the cycle plan that seeds the per-cycle
docs PR per the v0.6.0/v0.12.0/v0.14.0/v0.14.2/v0.14.3
convention).

## Version bump (0.14.3 -> 0.14.4)

The v0.14.3 release cut (PR #197, commit 8488b08) shipped
installers tagged v0.14.3. The v0.14.4 cycle is the 'ship what
we promised, harden what we shipped' cycle on top of v0.14.3's
five merged slices. Per CLAUDE.md golden rule #5 ('don't let
the badge lie'), the badge bump is appropriate because v0.14.4
did ship real work (52 new tests + 3 doc-rot fixes + 1 CI fix).

- package.json: 0.14.3 -> 0.14.4
- src-tauri/Cargo.toml: 0.14.3 -> 0.14.4
- src-tauri/tauri.conf.json: 0.14.3 -> 0.14.4
- src-tauri/Cargo.lock: refresh via cargo check; beeemuu
  package version bumped to 0.14.4. The productName stays
  'BeeEmUu' and the identifier stays 'com.beeemuu.diag'.
- README.md: release badge from v0.14.3 to v0.14.4.

## CHANGELOG.md

- ## [0.14.4] - Unreleased -> ## [0.14.4] - 2026-07-31.
- Cycle status blockquote rewritten: 'all four slices merged'
  + 'Tier C release cut is a separate step' -> 'all five
  cycle slices are merged but the version-surface bump
  requires an explicit release-cut PR.'
- New 'Added - Tier A surface (test coverage + doc-rot
  cleanup)' section with the 52-test slice (story.rs +
  anonymize.rs), the CLAUDE.md invariants refresh, and the
  ROADMAP v0.3.0 historical audit.
- New 'Fixed - Tier A surface (CI workflow)' section with
  the ci.yml Tauri Linux sysdeps fix.
- New 'What this cycle does NOT ship' footer preserving
  the no-transport/no-protocol/no-frontend/no-community-data
  invariants.

## docs/v0.14.4_plan.md (new, 292 LOC)

The v0.14.4 cycle plan per the established docs/v0.14.x_plan.md
convention. Includes:

- Premise (the test-coverage gap + doc-rot rationale)
- What this cycle ships (all four slices, with PR
  references + file paths + tier + lines)
- What this cycle does NOT ship (the four 'no' claims)
- Tier split table (4 Tier A + 0 Tier B + 0 Tier C)
- Execution order (parallel + sequential)
- Open question for the maintainer (the hash_vin
  case-normalisation decision)
- Cross-references (every PR + every related doc)

## What this PR does NOT do

- No git tag v0.14.4. That's the next step (maintainer's
  call, Tier C). The PR sets the version strings; the tag
  publishes.
- No git push --tags. Same - runs after the maintainer
  reviews and merges this PR.
- No changes to productName, identifier, or any other
  config surface. Pure version bump + docs.
- No CHANGELOG content changes for v0.14.0/v0.14.1/v0.14.2/
  v0.14.3 (already backfilled via PRs #188, #192, #195).
- No README content changes. The badge URL changes, but
  the surrounding badge block stays identical.

## Verification (pre-cut)

- node --test src/js/**/*.test.js src/js/**/*.test.cjs:
      226/226 pass (0.62s)
- python -m pytest backend/tests/ -q: 166/166 pass (56.12s)
- cd src-tauri && cargo test --lib --offline: 201/201
      pass (1.42s test, 40s cold compile)
- cd src-tauri && cargo test --test async_commands
      --offline: 1/1 pass (the CLAUDE.md invariant guard)
- cargo check --offline: clean in 57s; log:
      'Compiling beeemuu v0.14.4'
- Cargo.lock regenerated by cargo check:
      name = 'beeemuu' version = '0.14.4'
- npm run build: rc=0, 2m33s; both BeeEmUu_0.14.4 bundles
      built:
  - src-tauri/target/release/bundle/msi/BeeEmUu_0.14.4_x64_en-US.msi
  - src-tauri/target/release/bundle/nsis/BeeEmUu_0.14.4_x64-setup.exe
- git status clean (no other modifications, no untracked)

## 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.4 && git push --tags' to trigger
release.yml.

Per the user's instruction 'continue with 14.4 please and
finish it' (no exceptions), 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.

Co-authored-by: ohgeeceee <ohgeeceee@users.noreply.github.com>
github-actions Bot pushed a commit that referenced this pull request Aug 2, 2026
…refresh (#225)

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.

Co-authored-by: ohgeeceee <ohgeeceee@users.noreply.github.com>
ohgeeceee added a commit that referenced this pull request Aug 2, 2026
…refresh (#227)

Tier C release cut for the v0.14.6 "Forward Roadmap Audit"
cycle. Per CLAUDE.md golden rule #5 ("don't let the badge
lie"), the README release badge moves from v0.14.5 to
v0.14.6 because v0.14.6 did ship real work (the
forward-roadmap doc audit + ROADMAP v0.14.5 closeout
+ public landing-page cycle detail updates + the new
docs/v0.14.6_plan.md plan doc).

The v0.14.6 cycle's only slice merged on origin/main @
6993475:
- PR #226 (the v0.14.6 "Forward Roadmap Audit" cycle
  plan + ROADMAP v0.14.5 closeout + forward-roadmap
  doc audit + docs/v0.14.6_plan.md + public landing
  page cycle detail updates)

## Version bump (0.14.5 -> 0.14.6)

- package.json: 0.14.5 -> 0.14.6
- src-tauri/Cargo.toml: 0.14.5 -> 0.14.6
- src-tauri/tauri.conf.json: 0.14.5 -> 0.14.6
- src-tauri/Cargo.lock: refreshed via cargo update -p
  beeemuu; beeemuu package version bumped to 0.14.6.
  The productName stays 'BeeEmUu' and the identifier
  stays 'com.beeemuu.diag'.
- README.md: release badge from v0.14.5 to v0.14.6.

## CHANGELOG.md

- New ## [0.14.6] - 2026-08-02 section inserted before
  the v0.14.5 section. Includes the cycle status
  blockquote (single slice merged - #226, the
  "Forward Roadmap Audit" PR), the "Added - Tier A
  surface" planned-slice list, the "What this cycle
  does NOT ship" list, and the "Verification
  (close-of-cycle)" section with the fresh re-run
  results (58/58 + 192/192 + 1/1 + 218/219 test
  counts).
- A ### Added - Tier A surface (docs-only cycle)
  section header (the cycle is shipping, not just
  planned).
- A **Next cycle:** v0.15.0 - "Live Gauges from the
  Bench" pointer at the end of the v0.14.6 entry.

## docs/v0.14.6_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: the v0.14.6 single-slice
  audit PR (#226) merged on origin/main @ 6993475;
  cycle is code-side closed; the 'git tag v0.14.6 &&
  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.6 && 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' + 'whatever is best for the beemuu
application'), 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
  (406ms, fresh re-run on the v0.14.6 audit tip)
- node --test src/js/*.test.js: 192/192 pass (1.5s,
  fresh re-run)
- 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 v0.14.6.)
- cargo test --test async_commands --offline: the
  CLAUDE.md invariant guard runs as part of the
  v0.14.6 release run; the local 3m44s cold compile
  is best-effort here (the release.yml runner does
  the same compile on windows-latest).
- git diff --cached --stat: 7 files, 175 insertions,
  6 deletions (no phantom diff from line-ending
  normalization; verified per the v0.14.3 slice-4
  lessons' CRLF stat-noise trap)
- 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
- 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>
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