Skip to content

firmware: the console is light, and its six core pages look like one thing - #474

Merged
engmung merged 4 commits into
devfrom
console-light
Oct 3, 2026
Merged

engmung merged 4 commits into
devfrom
console-light

Conversation

@engmung

@engmung engmung commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

The device console's core pages (Console, Patterns, Status, Wi-Fi, Knobs, Update) and the shared header, redone for the owner's three asks: light by default, clean and obvious, and no heavier than before.

What changed

  • Light by default. Dark is still the toggle in the header and is remembered (pf-theme). The chrome sets data-theme before the first paint. Its injected light palette matches the core pages' :root, so feature pages turn light without being edited.
  • One set of parts. Every core page opens with the same base block (tokens, .btn, .chip, .notice, .list, fields, footer). console/README.md has a new section, "The look".
  • Home leads with the panel: Now playing with ←/→, On/Sleep, brightness, K1–K4. The device facts are compact rows. The 01–11 page index is now one-line links, still built from featureNav.
  • Header: Console, Patterns, then the build's feature pages, then Wi-Fi / Knobs / Update / Status. On a phone it wraps instead of scrolling sideways.
  • Monospace stack gains Cascadia Mono and Consolas. On Windows every small label was Courier New.
  • Status shows the 3.10.5 crash record when there is one, with Clear. This is new UI on an existing API; say so if it should go.
  • Guide: console_demo.py markNav() now finds links inside the grouped nav. The guide's console frame ground is light, and the demo is regenerated.

Size, gzip -9 (before → after)

before after
home 10947 9936 (8425 before the edition card and knob controls)
patterns 14835 14470
status 5641 5550
wifi 8511 8509
knobs 2985 2942
update 5885 5852
chrome 9654 9639

The default image is 1,101,872 → 1,099,008 bytes for the first commit; the merge of the latest dev (resident patterns) grows it again.

Second commit, after the owner's look

  • Edition card. Edition and firmware version came out of the facts rows and became their own card at the top of the right column (on a phone, right after the control card).
    • It shows the name (or "Patternflow"), the versions in mono, and the feature pages the build carries as chips from featureNav.
    • The update notice sits in it, along with an Editions → / Other editions → button. On the hotspot, the button gives way to a line saying there is no internet, unless the manifest fetch succeeded.
  • Knobs.
    • Each slider shows its 0–100 value.
    • Together (remembered): one drag moves all four by the same amount, with each knob clamped.
    • Shuffle: all four at random, with Undo (one level). Undo releases the lanes that sound was driving instead of pinning them.
    • Every multi-knob write is one POST /api/params with p1..p4.
  • Arrow keys step patterns (one request in flight; extra presses queue).
  • Checked on the bench panel: Shuffle → one request, Undo → one request back to 500×4, Together drag → p1..p4 equal steps, 3× → / 3× ← → back to the start pattern. No page errors. build.sh all and the footprint check pass.

Checks

  • console_pages.py check, check_sources.py, check_boundaries.py, console_demo.py --check: pass.
  • build.sh all: all five compositions ok.
  • check_footprint.py: every edition within tolerance.

On a panel (new bench board, Core build with this branch, flashed over /update)

  • Desktop over the LAN, before → after: cold loads stayed about 0.09–0.11 s a page; warm (?v= cached) went from about 17 ms to about 8 ms.
  • Driven with Playwright: next/prev, Sleep/On, brightness down and back, K1 drag (POST /api/params), click-to-play on /patterns, the theme toggle both ways. Panel state followed each time, with no page errors.
  • Not tried on the panel: a phone on the hotspot (no Wi-Fi NIC here), iOS Safari, and the destructive flows (delete, Wi-Fi save/forget, reboot, firmware upload). Those were exercised against the mock only.

Feature pages (audio-in, midi, clock, weather, mqtt, show) are not edited. Only their headers' chrome stamp changed.

🤖 Generated with Claude Code

…thing

Light by default with dark kept as the remembered toggle; one base block of
shared parts across Console, Patterns, Status, Wi-Fi, Knobs and Update; home
leads with the panel's controls; the header wraps instead of scrolling on a
phone; the monospace stack gains Windows fonts. No page grew past its gzip
size. Feature pages are untouched and take the light palette from the
chrome. The guide's console demo is regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
pattern-flow_origin Building Building Preview Oct 3, 2026 4:29am UTC
pattern-flow-open Ready Ready Preview Oct 3, 2026 4:29am UTC

engmung and others added 2 commits October 3, 2026 12:01
…knobs move together

The edition the panel runs is a card of its own (name, versions, the
feature pages it carries, the update notice, a button to the other
editions) instead of one more row among the facts. The knobs show their
values and gain Together (one drag moves all four) and Shuffle with Undo,
each one request; the arrow keys step through patterns.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ts all four at once

Home: the device facts are back in the control card under the knobs, as
before; the right column is the edition card and the pages. The knob
extras (Together, Shuffle, Undo, the value readout) are gone - "all four
at once" meant the Knobs page: it now has an All row that sets direction
and edges per click for the four, reading Mixed while they differ.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@engmung
engmung merged commit bb1f623 into dev Oct 3, 2026
11 checks passed

This branch was successfully deployed

1 active deployment
Preview – pattern-flow-open — 760e0af1 Deployed Oct 3, 2026 by vercel[bot]
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