Skip to content

docs(v0.11.0): cycle plan — Share the Trace (4 slices, all Tier A) - #135

Merged
github-actions[bot] merged 1 commit into
mainfrom
docs/v0.11.0-plan
Jul 21, 2026
Merged

docs(v0.11.0): cycle plan — Share the Trace (4 slices, all Tier A)#135
github-actions[bot] merged 1 commit into
mainfrom
docs/v0.11.0-plan

Conversation

@ohgeeceee

Copy link
Copy Markdown
Owner

What

Docs-only PR that scopes the v0.11.0 cycle ("Share the Trace") and closes out the v0.10.0 ROADMAP table that was never formally landed.

Why

What this PR adds

  • docs/v0.11.0_plan.md — the cycle plan. Same shape as v0.8.0_plan.md / v0.9.0_plan.md: premise, surface survey, gap analysis, planned slices with Tier labels, "what we will NOT do" list, per-PR test plan, dispatch/execution handoff.
  • ROADMAP.md — adds the v0.10.0 cycle table (Released, retroactively) and the v0.11.0 cycle table (Started), and prunes the now-completed "PNG/SVG export" item from the 🟢 Ready-to-Claim list since both PNG and SVG export are tracked under v0.11.0.

v0.11.0 scope (5 slices; 1 already in, 4 open, all Tier A)

# Slice Status Notes
1 PNG export of logging + histogram charts ✅ Merged #131 Chart.js toBase64Image() → browser-native download.
2 SVG export of logging + histogram charts 🔲 Open Same UX as PNG; chart config → small inline SVG renderer. Pure frontend.
3 CSV-with-units export option 🔲 Open "Include units row" checkbox on the Save panel. Additive in data/logging.rs; loader parses both shapes.
4 Static HTML walkthrough bundle 🔲 Open "Share walkthrough" → self-contained .html replays the log + steps in any browser. Reuses v0.9.0 reducer. Pure frontend.
5 ROADMAP v0.10.0 closure + v0.11.0 cycle header ✅ This PR Docs-only.

None of the four open slices touch protected paths — slice 3's additive change to src-tauri/src/data/logging.rs is read-path-preserving and the PR body will call out data/ even though it's not in the Tier B list.

What we are NOT doing this cycle (explicit)

  • Cloud upload / telemetry to third-party hosts
  • ISTA+ / proprietary BMW export shapes (copyright + reverse-engineering ceiling)
  • PDF reports (layout engine is a quarter-cycle of work; revisit later)
  • Multi-language CSV headers (needs a localisation pass across logging, not just export)
  • Auto-share / "share to…" sheet — exports are opt-in local files only

Test plan

  • Docs-only PR — markdown links resolve (docs/v0.11.0_plan.mdROADMAP.md cross-link is bidirectional).
  • No source change, no test count change, no Rust / JS / Python / TOML gate touched.
  • npm run build not required (docs only).

Unrelated working-tree noise (not in this PR)

These three files are modified locally but staged only my two intended files; the rest is left untouched per the repo's staging discipline:

  • CLAUDE.md — your own rewrite (Tier C, yours to land)
  • frontend/index.html, frontend/schematics.html — the recurring third-party "network bar" injection (untrusted, not propagated)

Tier

A — docs only, no code, no protected path. Self-merge once CI is green (CI will mostly run the docs/markdown lint path; expect green).

@github-actions
github-actions Bot merged commit aea1418 into main Jul 21, 2026
9 of 10 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: 984731db03

ℹ️ 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.11.0_plan.md
|---|---|---|---|---|
| 1 | PNG export of logging + histogram charts | A | ✅ Done (#131, d2d1d07) | Chart.js `toBase64Image()` → browser-native download. Buttons enable only once a chart exists. |
| 2 | SVG export of logging + histogram charts | A | 🔲 Open | Same UX as PNG; Chart.js has no `toSVG()`, so serialize the chart config + a small inline SVG renderer in `src/js/`. Pure frontend. |
| 3 | CSV-with-units export option | A | 🔲 Open | Adds a checkbox on the logging "Save" panel: "Include units row" → row 2 of the CSV is `<DID>,<unit>,<unit>`. Loader parses both shapes; existing logs keep loading unchanged. `src-tauri/src/data/logging.rs` is touched additively. |

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 Scope the CSV slice around the frontend implementation

In the inspected commit, src-tauri/src/data/logging.rs does not exist: CSV generation is in src/js/main.js (buildLogCsv), while Rust's export_text command only writes the supplied string. There is also no CSV parser or handler for btn-log-load anywhere in the tree, so the promised dual-shape loader and Rust round-trip test cannot be implemented as this slice specifies; this needs to identify the required frontend writer/parser work and test it in JavaScript rather than presenting it as a small additive Rust change.

Useful? React with 👍 / 👎.

Comment thread docs/v0.11.0_plan.md
Comment on lines +38 to +40
| Chart rendering | Chart.js lines (logging panel) + histograms | `src/js/chart.js`, `src/js/histogram.js` | Look at it in-app; nothing else |
| Trace comparison | Diff modal merges two logs side-by-side | `src/js/merge.js` | Same as above |
| Walkthrough | Step-by-step panel in fault detail | `src/js/walkthrough.js` (v0.9.0 PR #4) | App-only |

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 Point the survey at the actual frontend modules

Three paths in this architecture survey are absent from the commit tree: chart rendering lives primarily in src/js/main.js, comparison uses src/js/log_diff.js plus main.js, and walkthrough traversal is in src/js/testplan_walk.js, not chart.js, merge.js, or walkthrough.js. Since this plan is the execution handoff for contributors, these nonexistent entry points send each planned slice to the wrong place and should be replaced with the actual files.

Useful? React with 👍 / 👎.

Comment thread docs/v0.11.0_plan.md
| 2 | SVG export of logging + histogram charts | A | 🔲 Open | Same UX as PNG; Chart.js has no `toSVG()`, so serialize the chart config + a small inline SVG renderer in `src/js/`. Pure frontend. |
| 3 | CSV-with-units export option | A | 🔲 Open | Adds a checkbox on the logging "Save" panel: "Include units row" → row 2 of the CSV is `<DID>,<unit>,<unit>`. Loader parses both shapes; existing logs keep loading unchanged. `src-tauri/src/data/logging.rs` is touched additively. |
| 4 | Static HTML walkthrough bundle | A | 🔲 Open | "Share walkthrough" button on a completed walkthrough panel → produces `walkthrough-XXXX.html` (single file, inline CSS + JS, replay-from-log-file). Pure frontend; no Rust round-trip. The output file can be attached to a forum post or opened from a USB stick on a phone. |
| 5 | ROADMAP v0.10.0 closure | A | 🔲 Open | v0.10.0 already shipped but the ROADMAP cycle-header / footer table never landed (v0.9.0 has the pattern; v0.10.0 only carries the `Started` line). Pure docs. |

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 Mark the roadmap-closure slice complete

This commit is slice 5 and the accompanying ROADMAP.md row already marks it ✅ Done (this PR), but the canonical cycle plan still records the same slice as open and later calls it dispatchable. Once this commit lands, contributors will see contradictory cycle state and may try to claim already-completed work, so this row should be marked done consistently.

Useful? React with 👍 / 👎.

Comment thread docs/v0.11.0_plan.md
- **PR #131 (already landed)** — manual smoke (PNG export → file opens in image viewer); node --test count unchanged; cargo unchanged.
- **Slice 2 (SVG)** — manual smoke (SVG export → file opens in browser at 1×, 2×, 4× zoom without blur); add `node --test` cases for the SVG serializer (axis ticks, legend, histogram bin shape); cargo unchanged.
- **Slice 3 (CSV-with-units)** — add a Rust unit test that round-trips a log file with and without the units row and confirms both load; node unchanged.
- **Slice 4 (static HTML)** — manual smoke (save bundle → open in a fresh browser with no dev tools → walkthrough replays from the inline log data); no new unit tests needed beyond what the bundle exercises (it reuses the walkthrough reducer already tested in v0.9.0 PR #4); document the bundle shape in `docs/validation/testplans.md` or a sibling doc.

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 Test the generated walkthrough bundle itself

The existing testplan_walk.js tests only map diagnostic-plan steps and answer sequences; they never consume log samples or exercise inline-data serialization, generated HTML, chart playback, or asset embedding. Consequently, a bundle that fails for channel labels or values containing quotes/newlines, omits required runtime code, or cannot replay its trace would leave those tests green, so this slice needs automated coverage for the bundle serializer and replay state rather than treating the traversal reducer's tests as sufficient.

Useful? React with 👍 / 👎.

Comment thread docs/v0.11.0_plan.md

| Owner need | BeeEmUu today | v0.11.0 ships | Why deferred |
|---|---|---|---|
| Paste a chart into a forum post | ✗ | ✅ PNG export (#131 already in) | — |

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 Account for the already-shipped PNG export

This plan is explicitly drafted after PR #131 and later marks PNG export as done, but the gap table still says BeeEmUu cannot paste a chart into a post. The inspected frontend already exposes working PNG downloads for both the logging and histogram charts, so treating all visual export as absent makes the current-state survey and prioritization contradictory; only the remaining SVG or bundle gaps should be marked missing.

Useful? React with 👍 / 👎.

Comment thread docs/v0.11.0_plan.md
Comment on lines +14 to +16
subreddit. The **first thing** they need is the picture: a chart they
can paste straight into a post, and an opinion library they can skim
without running the app. BeeEmUu already logs, draws, histograms,

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 Either scope the opinion export or remove the promise

None of the planned slices makes the opinion library available outside the app: opinions are a separate src-tauri/src/opinions.rs/loadOpinion surface, while the static bundle is scoped to a test-plan walkthrough and log replay. Therefore, even after all listed slices ship, owners still cannot skim the opinion library without running BeeEmUu as this premise promises; either add that data to the bundle/export scope or remove it from the cycle's user promise.

Useful? React with 👍 / 👎.

Comment thread ROADMAP.md
|------|--------|------|-------|
| Plan verification badge in walkthrough header | ✅ Done (PR #127) | A | Reads `meta.verified` per plan; renders **NEEDS VERIFICATION** (amber) / **✓ Verified** (green) in the walkthrough panel header. Rust change additive (`verified: Option<String>` on `PlanMeta` + `TestPlan`); legacy plans with no marker render no badge. |
| Clickable NEEDS VERIFICATION badge + fix repo URL | ✅ Done (PR #130) | A | Badge now links to `docs/validation/testplans.md` so a tech lands on the contribution path with one click. About modal `ohjoncurrie/beeemuu` → `ohgeeceee/beeemuu`. |
| Bump version to 0.10.0 (matches released state) | ✅ Done (PR #128) | C-executed | `Cargo.toml` + `package.json` synced to `0.10.0`. |

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 Record the Tauri config in the version-bump slice

PR #128 also updated src-tauri/tauri.conf.json, but this closure row records only Cargo.toml and package.json as synchronized. The Tauri config is an independent bundle-version source, so this historical release checklist is incomplete and could be copied in a later release while leaving the packaged application on a stale version; list all three files that the cited commit actually changed.

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