Skip to content

docs: v0.8.0 cycle plan — "Service Bay" (gap analysis + 4 slices) - #113

Merged
ohgeeceee merged 1 commit into
mainfrom
docs/v0.8.0-plan
Jul 18, 2026
Merged

docs: v0.8.0 cycle plan — "Service Bay" (gap analysis + 4 slices)#113
ohgeeceee merged 1 commit into
mainfrom
docs/v0.8.0-plan

Conversation

@ohgeeceee

Copy link
Copy Markdown
Owner

Planning document for the post-v0.7.0 cycle, drafted against main @ ba14141. Docs-only: the plan, plus the ROADMAP/README updates it implies. No code, no data changes.

Gap analysis (evidence-level, ISTA+ vs BeeEmUu):

  • SHIPPED: live data, logging/replay/compare, VIN/vehicle info, freeze-frame decode, transports (K+DCAN, ENET/DoIP + discovery, sim, ISO-TP reassembly).
  • PARTIAL: DTC coverage (26 built-in texts; 12-address scan table; 6 simulator-grade service functions, none chassis-validated; thin freeze schemas; embryonic guided fault finding).
  • Broken today: community/dtc_texts.toml truncated mid-string (TOML parse fails, 0 overlay entries load) and CONTRIBUTING.md truncated mid-table — CI can't catch this because lint-toml.js checks whitespace, not parseability.
  • OUT-OF-SCOPE with reasons: flashing/programming, FSC/AOS, coding writes (this cycle), ISTA repair-doc corpus, immobiliser functions.

Four slices: PR #1 data integrity + TOML parse gate (Tier A), PR #2 service-function breadth with [UNVERIFIED] write discipline (Tier B, protected paths flagged), PR #3 B48/S58/N57 profiles (Tier A), PR #4 ECU scan-table breadth + addressing-model doc (Tier A). Each with acceptance criteria and test expectations.

ROADMAP.md: v0.7.0 marked merged (PRs #108-110), v0.8.0 active-plan block added, Ready-to-Claim pile pruned of shipped items (theme toggle, workspace, gauge theming, ISO-TP, OBD-II auto-discovery, N20/S55). README.md: "What's coming" refreshed for v0.7.0 merged + v0.8.0 plan link.

Flagged for owner (Tier C, not touched): CLAUDE.md invariant notes are stale — keep-alive (#87), ISO-TP (#88), and protocol::read_vin all shipped but still read NOT-YET-IMPLEMENTED.

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)

Planning document for the post-v0.7.0 cycle, drafted against main @
ba14141. Docs-only: the plan, plus the ROADMAP/README updates it
implies. No code, no data changes.

Gap analysis (evidence-level, ISTA+ vs BeeEmUu):
- SHIPPED: live data, logging/replay/compare, VIN/vehicle info,
  freeze-frame decode, transports (K+DCAN, ENET/DoIP + discovery,
  sim, ISO-TP reassembly).
- PARTIAL: DTC coverage (26 built-in texts; 12-address scan table;
  6 simulator-grade service functions, none chassis-validated;
  thin freeze schemas; embryonic guided fault finding).
- Broken today: community/dtc_texts.toml truncated mid-string (TOML
  parse fails, 0 overlay entries load) and CONTRIBUTING.md truncated
  mid-table — CI can't catch this because lint-toml.js checks
  whitespace, not parseability.
- OUT-OF-SCOPE with reasons: flashing/programming, FSC/AOS, coding
  writes (this cycle), ISTA repair-doc corpus, immobiliser functions.

Four slices: PR #1 data integrity + TOML parse gate (Tier A),
PR #2 service-function breadth with [UNVERIFIED] write discipline
(Tier B, protected paths flagged), PR #3 B48/S58/N57 profiles
(Tier A), PR #4 ECU scan-table breadth + addressing-model doc
(Tier A). Each with acceptance criteria and test expectations.

ROADMAP.md: v0.7.0 marked merged (PRs #108-110), v0.8.0 active-plan
block added, Ready-to-Claim pile pruned of shipped items (theme
toggle, workspace, gauge theming, ISO-TP, OBD-II auto-discovery,
N20/S55). README.md: "What's coming" refreshed for v0.7.0 merged +
v0.8.0 plan link.

Flagged for owner (Tier C, not touched): CLAUDE.md invariant notes
are stale — keep-alive (#87), ISO-TP (#88), and protocol::read_vin
all shipped but still read NOT-YET-IMPLEMENTED.
@ohgeeceee
ohgeeceee merged commit bcdbb83 into main Jul 18, 2026
19 of 21 checks passed
@ecc-tools

ecc-tools Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

@github-actions

Copy link
Copy Markdown

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

@ohgeeceee
ohgeeceee deleted the docs/v0.8.0-plan branch July 18, 2026 10:43

@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: 75989230e6

ℹ️ 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 docs/v0.8.0_plan.md
Comment on lines +87 to +90
- `src-tauri/src/community.rs` — add a unit test that parses **every
shipped community TOML** (`dtc_texts.toml`, `freeze_schemas.toml`,
`profiles.toml`, `profiles/*.toml`) so a future truncation fails
`cargo test`, which CI already runs (`test.yml`). No production-code

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 Include all shipped TOML in the parse gate

If PR #1 follows this scoped list, the new “every shipped community TOML” gate will miss currently shipped TOML under community/opinions/*.toml and community/stories/*.toml, which are loaded separately by opinions::load (src-tauri/src/opinions.rs lines 93-124) and story::load (src-tauri/src/story.rs lines 131-164). A truncated opinion/story file would still be skipped at runtime without failing the planned CI gate, so please make the plan/test glob all community/**/*.toml or explicitly include those folders.

Useful? React with 👍 / 👎.

Comment thread docs/v0.8.0_plan.md
module table. Each candidate address needs an in-repo citation.
- `src-tauri/src/data/ecus.rs` — sourced additions only (read-only
probing → not a write path → Tier A). Update the scan-table test.
- `src-tauri/src/transport/sim.rs` — simulator answers the new

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 Treat simulator transport edits as protected

In the PR #4 section, the slice is labeled Tier A, but it explicitly includes src-tauri/src/transport/sim.rs; CLAUDE.md classifies src-tauri/src/transport/** as Tier B protected paths. Following this plan would let a transport change be prepared/merged under the wrong review gate, so either make PR #4 Tier B when it touches the simulator transport or move the simulator update into a separately gated change.

Useful? React with 👍 / 👎.

Comment thread docs/v0.8.0_plan.md
Comment on lines +72 to +75
**Why first.** Two shipped files are broken today
(`community/dtc_texts.toml` truncated → parse error → zero overlay
entries; `CONTRIBUTING.md` truncated mid-table), and **CI cannot catch
this class of breakage** because `lint-toml.js` checks whitespace, not

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 Rescue every broken shipped TOML file

This scopes the data-integrity rescue to community/dtc_texts.toml, but a repo-wide tomllib parse also fails on currently shipped community/freeze_schemas.toml and community/profiles/{n52,n54,n62}.toml. If PR #1 only repairs the listed DTC file, the planned all-TOML acceptance gate and the affected profile/freeze loaders will still fail or skip data, so please include those files in the rescue scope.

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