diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-03 06:04:22 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-03 06:04:22 -0400 |
| commit | 0dd41d7dac7dfcc5c64740bf01b0702260e80e65 (patch) | |
| tree | 9787215dcb0792daf4741908000974745ef6f1d2 | |
| parent | cec67ed22daedfbb909ddd723b0de82d65f4c18a (diff) | |
| download | archsetup-0dd41d7dac7dfcc5c64740bf01b0702260e80e65.tar.gz archsetup-0dd41d7dac7dfcc5c64740bf01b0702260e80e65.zip | |
chore(todo): net panel instrument-console shipped — phases 3+4
Ticked spec phases 3 and 4 (net view rebuild + interactions, dotfiles 800ef60) and logged the dated todo entry. Phases combined into one commit because a view-only intermediate is a broken panel. BT panel (phase 5) next.
| -rw-r--r-- | docs/design/2026-07-03-instrument-console-panels-spec.org | 14 | ||||
| -rw-r--r-- | todo.org | 3 |
2 files changed, 12 insertions, 5 deletions
diff --git a/docs/design/2026-07-03-instrument-console-panels-spec.org b/docs/design/2026-07-03-instrument-console-panels-spec.org index 650fb77..cd0d1e5 100644 --- a/docs/design/2026-07-03-instrument-console-panels-spec.org +++ b/docs/design/2026-07-03-instrument-console-panels-spec.org @@ -123,13 +123,17 @@ visual or interaction, the prototype wins. faceplate state word derivation, meter scale logic, arm state machines for forget/disconnect), PanelModel restructure (sections, no tabs). Engine gaps: radio verb, hidden join, ethernet rows, wired link speed. -3. [ ] Net view rebuild: window_content.blp + gui.py single-page console +3. [X] Net view rebuild: gui.py single-page console built in Python (faceplate, engraved scrolled sections, console keys, cairo dial meters with mode/hold tags, output well + dismiss), panel.css additions - (engrave, lamps, dial, badges, arm tints). AT-SPI smoke rewritten for - the console layout. -4. [ ] Net interactions: join/hidden/forget/disconnect/radio switch/ - ethernet toggle/doctor stream/speed-test-drives-meters, toasts. + (engrave, lamps, dial, badges, arm tints). AT-SPI smoke + driver + rewritten for the console layout. Shipped with phase 4 (dotfiles + 800ef60): a view-only intermediate is a broken panel (rows and switches + that do nothing), so view + interactions landed together. +4. [X] Net interactions: join/hidden/forget (arm terracotta)/disconnect + (arm gold)/radio switch/ethernet toggle/doctor stream/speed-test-drives- + meters, toasts. Verified live on velox (DOCTOR streams, SPEED TEST sweeps + both dials then HOLD). Shipped in dotfiles 800ef60 with phase 3. 5. [ ] Bluetooth panel: same treatment end to end (faceplate + power switch, adapter chip, paired/nearby lamp rows, pair passkey flow, rename via set-alias, forget arm, battery gauges + LOW BATT, DOCTOR / @@ -29,6 +29,9 @@ The no-approvals speedrun build of the console design Craig approved through fiv *** 2026-07-03 Fri @ 03:20:00 -0400 Phase 2 shipped: net GTK-free console layer + engine verbs Dotfiles =81ec9c3= (TDD, 52 new tests, 581 net green). Pure presenter logic for the single-screen console, no view code touched: =viewmodel.net_faceplate= (state word + lamp + TUNNEL/AIRPLANE badges, wired-link-wins precedence), =network_console_rows= (ethernet pinned, radio-off note, active-then-signal sort, per-row lamp/caption/ladder/forget), =channel_headline= (wired device+speed / SSID+ladder+dBm / not-connected placeholder), =tunnel_console_rows=, dial-meter geometry (=meter_needle_deg= + =meter_scale= 100→1000 auto-relabel), =signal_bars=/=mbps_label=, and =panel.ArmState= (two-click arm-to-fire for forget/disconnect). Engine verbs: =manage.wifi_radio= (nmcli radio wifi on|off), =manage.device_up= (ethernet take-the-route), =sysio.link_speed_mbps= (/sys wired speed), =connections.ethernet_devices=, hidden flag on =manage.add=. + +*** 2026-07-03 Fri @ 06:02:32 -0400 Phases 3+4 shipped: net view rebuilt as the instrument console +Dotfiles =800ef60= (1197+/250-). =gui.py= rewritten as the single-screen console — no tabs, no Blueprint template (the dial meters and arm-to-fire rows are too dynamic, so the tree is built in Python; =pages.py= + the =*.blp/*.ui= are now orphaned, Phase 6 dead-code). Faceplate (lamp/word/TUNNEL+AIRPLANE badges/wifi-radio switch/close), engraved CHANNEL headline, scrolled NETWORKS + TUNNELS lamp rows, CONSOLE keys, two cairo dial meters, output well + dismiss ✕, toast. Interactions all wired: open network joins / secured opens the password dialog, active row arm-disconnects (gold), ✕ arm-forgets (terracotta), tunnel toggles, ethernet row takes/yields the route, radio switch flips the wifi radio (refuses under airplane with the way out), + hidden joins a non-broadcast SSID, DOCTOR streams diagnose+repair into the well, SPEED TEST sweeps both dials with the live rate then pins the final with HOLD (location/ping/final/tips in the well). =panel.css= grew the console classes (lamps+glow, b-face, engrave, chan, lamp-row + arm tints, c-btn, meter/mode/hold, output steps, toast). AT-SPI smoke + driver rewritten (anchor on the DOCTOR key). Phases 3 and 4 landed together because a view-only intermediate is a non-functional panel. Verified live on velox: full render screenshotted, console smoke green (faceplate/keys/sections/tunnels/DOCTOR/dismiss/close), DOCTOR streams real diagnose steps, SPEED TEST drove RX 36.6↓ / TX 90.7↑ then HELD. 581 net tests + full make test green. ** DONE [#B] Net diagnostics: narrate every step :feature:network:solo: CLOSED: [2026-07-02 Thu] :PROPERTIES: |
