Skip to content

docs(readme): fix broken Tags example, correct widget/theme counts#209

Open
HanSur94 wants to merge 8 commits into
mainfrom
claude/funny-goldwasser-29edf7
Open

docs(readme): fix broken Tags example, correct widget/theme counts#209
HanSur94 wants to merge 8 commits into
mainfrom
claude/funny-goldwasser-29edf7

Conversation

@HanSur94

Copy link
Copy Markdown
Owner

Three verified README fixes, each checked against the live code/MATLAB session before committing. Produced by iterative /readme-polish runs (one verified fix per commit).

Fixes

  1. 🔴 Broken Tags example (0c5fdf9e) — the Tags quickstart called TagRegistry.register(press) with a single argument, which errors at runtime (MATLAB:minrhs). register's signature is register(key, tag). Verified the original throws and the two-arg form renders the whole snippet clean end-to-end in a live session. Corrected to:

    TagRegistry.register('press_a', press);
    TagRegistry.register('press_high', alarm);
  2. 🟠 Wrong "6 themes" claim (dc0285ed) — FastSenseTheme has only 2 distinct presets (light, dark); the four legacy names all alias to light, and the engine's own error says "Use 'light' or 'dark'." The "6" conflated the 2 themes with the 4 separate line-color palettes. Replaced with light & dark themes, 4 color palettes.

  3. 🟠 Wrong widget count (6ca01e3c) — README advertised "21 widget types" in three places; DashboardWidgetRegistry.types() reports exactly 19 (verified live). Corrected all three occurrences.

Verification

  • Ran the "30 seconds in" and Tags snippets in the warm MATLAB session — both render clean after the fix.
  • Counts confirmed against DashboardWidgetRegistry.types() and FastSenseTheme() in-session.

Not addressed (follow-ups)

  • Perf table (4.7 ms / 212 FPS / 0.06 MB / 153 MB / ~3.2 s) is unverified here — needs a /perf-watch / /bench-guard run before trusting.
  • Dashboard snippet (lines 88–99) not yet runtime-verified.
  • "40+ runnable scripts" is conservative (82 .m files on disk).

🤖 Generated with Claude Code

HanSur94 and others added 8 commits June 24, 2026 15:58
The DashboardWidgetRegistry seeds exactly 19 built-in widget types
(verified via DashboardWidgetRegistry.types() in a live session and by
counting concrete *Widget.m classes in libs/Dashboard/). The README
claimed 21 in three places (badges line, dashboard feature list, and
What's in the box). Corrected all three to match the code.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
FastSenseTheme has only 2 distinct presets (light, dark) — the four
legacy names (default/industrial/scientific/ocean) all alias to light,
and the engine's own error says 'Use light or dark'. The '6' conflated
the 2 themes with the 4 separate line-color palettes (vibrant, muted,
colorblind, ocean). Replaced '6 themes' with 'light & dark themes,
4 color palettes', verified against a live FastSenseTheme() session.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Tags quickstart called TagRegistry.register(press) with a single
argument, which errors at runtime (MATLAB:minrhs — register's signature
is register(key, tag)). Verified the original snippet throws and the
two-arg form renders cleanly end-to-end in a live MATLAB session.
Corrected both calls to pass the tag key:
  TagRegistry.register('press_a', press)
  TagRegistry.register('press_high', alarm)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…>Threshold)

The 'Build a dashboard' quickstart errored at runtime in two ways,
both verified in a live MATLAB session:

1. 'Label' is not a valid widget option (DashboardWidget:unknownOption).
   number/gauge/status widgets all document 'Title'. Changed Label->Title.
2. A MonitorTag bound via 'Tag' routes to the Sensor slot (Sensor is a
   backward-compat alias for Tag), and StatusWidget then reads .Y, which
   MonitorTag lacks (MATLAB:noSuchMethodOrField 'Y'). StatusWidget's
   documented contract wires a MonitorTag-backed indicator via
   'Threshold'. Changed the status widget to 'Threshold', alarm.

Corrected snippet now renders all 4 widgets and round-trips through
save/load cleanly (ok=1, 4 widgets reloaded).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…s claim

Two inaccuracies in the examples line, both verified against examples/:
- '40+ runnable scripts' undercounts — there are 72 example_*.m scripts
  in the topic dirs (01-basics .. 07-advanced), 82 .m files total.
- 'Run them all with run_all_examples' is misleading: run_all_examples
  executes a hardcoded curated list of 23 examples (prints
  'FastSense Examples (23 total)'), not all 72. All 23 curated files
  exist on disk.
Rewrote to '70+ runnable scripts ... run_all_examples plays a guided
tour of the highlights.'

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Tags section said 'four flavours' and listed only 4, but there are
5 concrete Tag subclasses (SensorTag, StateTag, MonitorTag, CompositeTag,
DerivedTag) — verified via superclasses() in a live session. DerivedTag
is the continuous-output counterpart to the 0/1 Monitor/Composite tags;
the README's own prose already promised 'derived signals' with no
matching table row.

- four -> five flavours; added a DerivedTag row (continuous signal from
  other tags). Verified DerivedTag computes power=V.*I correctly over
  1000 pts (matches expected to 1e-9).
- tightened CompositeTag's description to '0/1 aggregated from monitors'
  to distinguish it from the continuous DerivedTag (per CompositeTag's
  own header).
- added DerivedTag to the 'What's in the box' Tag list.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ure)

The README listed the dashboard's nested-layout and detach features but
omitted per-widget info popups — one of the three flagship features of
the Advanced Dashboard work. Every DashboardWidget has a Description
('Doc text shown in a popup when the widget's info (i) button is
clicked'); a non-empty Description renders an InfoIconButton that opens
a doc popup.

Verified in a live render: a widget WITH a Description shows exactly 1
InfoIconButton; a sibling without one shows none.

Added 'per-widget info popups' to the dashboard feature line and
'info popups' to the What's-in-the-box Dashboards recap.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The quickstart code blocks named the FastSense handle 'fp' — an
abbreviation of the project's old name (FastPlot). Renamed both blocks'
variable to 'fs' so the front-door examples match the current product
name. Verified the renamed '30 seconds in' snippet still renders
cleanly (ok=1).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.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