docs: v0.8.0 cycle plan — "Service Bay" (ISTA+ gap analysis + 4 slices) - #112
Conversation
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.
|
ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR. |
|
🤖 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: 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".
| - `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 |
There was a problem hiding this comment.
Include all broken TOMLs in the gate slice
This slice promises a cargo test that parses every shipped community TOML, but the only TOML repair scoped here is dtc_texts.toml. I checked community/**/*.toml with Python tomllib, and community/freeze_schemas.toml plus community/profiles/n52.toml, n54.toml, and n62.toml are already unparseable too; the runtime loaders skip malformed profile/schema files in src-tauri/src/community.rs (load_profiles / load_schemas), so these contribute nothing today. As written, a contributor following the plan will either make the new parse gate fail immediately or leave current shipped data silently ignored; add these repairs to PR #1 or narrow the acceptance criteria.
Useful? React with 👍 / 👎.
| - Audit first: `research/bmw_diag_dim04_uds_dids.md`, | ||
| `TECH_SPECS.md`, and the simulator's routine table are the only | ||
| admissible sources. The PR body lists each candidate routine ID and |
There was a problem hiding this comment.
Don't accept simulator routines as sources
For PR #2, allowing the simulator's routine table as an admissible source undermines the preceding write-path rule: src-tauri/src/data/service_functions.rs explicitly says the current routine IDs only match the simulator and real IDs are chassis-specific, while the simulator accepts routineControl broadly. If a contributor follows this wording to add new service functions sourced only from the simulator, those unvalidated write IDs can be exposed to real cars behind only an [UNVERIFIED] label; restrict the simulator to test coverage/existing placeholders and require a non-simulator source for new routine IDs.
Useful? React with 👍 / 👎.
Summary
v0.8.0 cycle plan — "Service Bay" (docs only)
docs/v0.8.0_plan.md— ISTA+ gap analysis with file-level evidence (SHIPPED / PARTIAL / MISSING / OUT-OF-SCOPE), four PR-sized slices with tiers and acceptance criteria:community/dtc_texts.toml, grow DTC corpus from in-repo sources, add a cargo-test parse gate for every shipped community TOML, complete truncatedCONTRIBUTING.md[UNVERIFIED]write discipline, validation harness docsROADMAP.md— v0.7.0 marked merged (feat(v0.7.0): ENET/DoIP auto-detection — UDP discovery + auto_discover + Discover button #108–community: add N20/N26 + S55 engine profiles (v0.7.0 plan PR #3) #110), v0.8.0 active-plan block, Ready-to-Claim pile pruned of shipped items.README.md— "What's coming" refreshed.Notable findings encoded in the plan:
community/dtc_texts.tomlis truncated mid-string (TOML parse fails — zero overlay DTC texts load today, and CI can't catch it because the lint checks whitespace, not validity).CONTRIBUTING.mdis also truncated mid-table. CLAUDE.md's "not yet implemented" notes are stale (keep-alive, ISO-TP,read_vinall shipped) — flagged for owner; CLAUDE.md edits are Tier C and intentionally not in this PR.Test plan
node scripts/lint-toml.jsclean (21 files)Merge policy
Tier A under CLAUDE.md — documentation only; agent may self-merge when CI is green.