aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* docs: archive shipped panel-bug batch; track system-monitor design captureHEADmainCraig Jennings10 hours2-16/+1023
| | | | todo-cleanup moved the closed instrument-console panel-bug batch (net/bt/audio) to Resolved. Bring the system-monitor design-ideas capture under version control.
* docs(todo): close instrument-console panel bug batch (all 8 shipped)Craig Jennings17 hours1-16/+15
|
* docs(todo): file instrument-console panel bugs from inboxCraig Jennings17 hours1-0/+17
|
* docs(todo): fix Proton CLI sign-in command (signin, not login)Craig Jennings17 hours1-1/+1
|
* fix(wireguard): deactivate imported configs so import never arms a tunnelCraig Jennings17 hours1-4/+10
| | | | | | nmcli connection import both sets autoconnect yes and activates the profile immediately. The configs are full-tunnel (AllowedIPs 0.0.0.0/0), so a bare import brings the tunnel up and routes everything through it. Importing a file silently connected a VPN, leaving the machine exiting through Proton. Follow each import's autoconnect-off modify with a connection down, so importing only ever adds inactive profiles.
* fix(wireguard): replace dead Proton configs with a working setCraig Jennings18 hours11-109/+59
| | | | | | The seven Proton configs imported April 10 completed the WireGuard handshake but Proton routed no data: DNS and traffic through the tunnel timed out on every server. Fresh configs from the Proton dashboard route data normally. That confirms the old keys were deauthorized account-side, not a local routing, firewall, or NetworkManager fault. Swap in three fresh configs (NL, US-CA, US-TX) and point the panel tunnels manual-test at the new connection names.
* chore(todo): archive completed waybar and timer tasksCraig Jennings19 hours2-82/+76
| | | | The wrap archive pass relocated finished DONE/CANCELLED tasks out of Open Work — six into the Resolved section, four into the task archive — including the timer GTK panel now that the redesign shipped and its live testing settled.
* docs(timer): record the shipped redesign and flip spec to IMPLEMENTEDCraig Jennings26 hours5-90/+1987
| | | | | | The timer-panel UI/UX redesign built and shipped to dotfiles across five phased commits. This captures the archsetup-side records. The three design prototypes (the three-directions study, the hero-rack iteration, and the final) land under docs/prototypes, which the spec's Prototype iterations section links. The spec flips DOING to IMPLEMENTED with a history line summarizing the build. The manual-testing checklist is rebuilt around the redesigned panel (repeat timers, recurring alarms with snooze and a ringing state, the configurable pomodoro cycle, the stopwatch sweep dial, locked presets, and bar-tooltip parity), and the two obsolete fuzzel-dialog tests are marked superseded. A dated entry under the closed feature task records the redesign.
* docs(todo): timer panel shipped — spec IMPLEMENTED, task closed, manual ↵Craig Jennings33 hours2-9/+41
| | | | | | tests filed The timer GTK panel built and shipped to dotfiles (4 commits). Flipped the spec to IMPLEMENTED, closed the Timer GTK panel task, and filed the live-verification checklist (bar-opens-panel, create/validate, fire-time sort, pause/cancel/promote, stopwatch lap/stop/save, 10-cap + live countdown) under Manual testing and validation.
* docs(spec): timer panel to DOING, fold in the cj-comment build scopeCraig Jennings33 hours1-2/+23
| | | | Craig directed the build. Consolidated the four resolved decisions with his cj input from the sibling timer-module spec: GTK app in the instrument-console look, a queue/output-wall auto-sorted by fire time, stopwatch lap/stop with saveable runs, notify integration, 5/25-min configurable defaults, up to 10 timers, and widget-gallery elements. wtimer stays the engine; the bar's fuzzel creation flow retires and the module opens the panel.
* docs(spec): fold the wallpaper-manager input into desktop-settings scopeCraig Jennings34 hours1-0/+7
| | | | Craig's 2026-07-04 roam input on the panel's open "few other things" question: it gathers the mouse/trackpad, no-sleep, and auto-dim toggles and adds a wallpaper manager (where the displaced waypaper lands) with its own depth — multiple source directories, persistent switching, and a sunup/sundown day-night pair. Flagged that the wallpaper piece may warrant its own sub-spec.
* chore(todo): file driver-health and collapse-glyph follow-upsCraig Jennings39 hours1-0/+12
| | | | Two follow-ups from the 2026-07-04 net-panel/audio speedrun: a driver-health diagnostic tier for the net panel (the "adapter present but wedged" case beyond no-hardware), and replacing the waybar collapse triangle with a glyph that matches the instrument-console look (an aesthetic call, options to bring Craig first).
* test(vm): collect network evidence before failing in pre-flight diagnosticsCraig Jennings41 hours2-22/+289
| | | | run_network_diagnostics tested HTTP before DNS and returned on the first failure, so a DNS failure surfaced as a generic "no internet" and the IP/route/resolver evidence was never reached. It now collects read-only facts first (ip -brief addr, default route, resolv.conf) and prints them regardless of outcome, runs every check, and reports all failures together in a summary. Generic checks (DNS, egress, TLS) are split from Arch-specific ones (mirror, AUR) so a DNS failure is named as DNS, not a mirror problem. Raw fact output is saved to the results dir when one is set.
* docs: gather panel design prototypes into docs/prototypes/Craig Jennings42 hours10-7/+1365
| | | | | | I gathered all five self-contained HTML/CSS design prototypes into one home: the instrument-console pair (moved from assets/), plus the net-panel rescan, sound panel, widget gallery, and waybar redesign (moved out of working/). Added a README index and updated every inbound link: build summary, the instrument-console and audio specs, and todo.org. Also fixed a broken link the earlier sort left in the build summary. It still pointed at the instrument-console spec's old docs/design/ path after the move to docs/specs/.
* docs(spec): restore faceplate design edits to desktop-settings specCraig Jennings42 hours1-4/+25
| | | | The specs were sorted into docs/specs/ on another machine, from a copy of this one that predated the 2026-07-03 panel-family design discussion. That lost the faceplate refinements. I re-applied them: the instrument-console faceplate aesthetic in place of the plain palette note, the audio/bt Kin row, a dated Status line, and the still-open "few other things" scoping question. The four decisions that pass resolved stay closed. Only the question it never addressed comes back.
* chore(todo): note Phase 4 build handed off to dotfilesCraig Jennings44 hours1-0/+1
|
* docs(spec): resolve timer and desktop-settings panel decisionsCraig Jennings44 hours2-44/+47
| | | | | | Both DRAFT panel specs had open design decisions blocking their builds. I resolved them. Timer panel: standalone rather than folded into desktop-settings, the fuzzel flow retires once the panel lands, the preset chips gain 10m/30m/2h, and live state comes from a new wtimer watch mode instead of 1s polling. Desktop-settings panel: auto-dim and airplane collapse into the panel while touchpad and caffeine stay on the bar, Super+Shift+G opens it, the code lives in dotfiles settings/ beside net/, and the brightness slider floors at 5%. Both stay DRAFT and decision-complete, ready for a spec-review before build.
* docs(spec): sort formal specs into docs/specs/ with lifecycle statusCraig Jennings45 hours8-7/+49
| | | | Moved the seven formal specs from docs/design/ into docs/specs/, each stamped with a lifecycle status heading: four IMPLEMENTED (bluetooth, net-other-interfaces, audio, instrument-console), one CANCELLED (file-manager-swallow), two DRAFT (desktop-settings, timer). Rewrote the seven todo.org links to the new paths. The two -spec.org files without the spec spine (waybar-network-module, waybar-timer-module) stayed in docs/design/ as notes.
* chore(todo): reconcile open tasks against shipped panel workCraig Jennings45 hours1-27/+33
| | | | | | The 07-03 instrument-console rebuild superseded most of the net-panel bug cluster, so I closed all three: the panels drag and resize now that they're floating windows, the doctor results well with copy and collapse shipped, and the wider-width task is moot on a resizable panel. I closed the stash-unhide focus bug too (verified fixed live on ratio, resolved by the focus-nav fixes that postdated the filing), and retired the "test each modernization" umbrella, which had no completion criterion now that the fleet is Hyprland-only. I closed the /efi-permissions and syncthing sub-items under the laptop-setup review, both automated in the installer now. Rescoped network-module Phase 5 to the net vpn CLI fold, since the tunnels track already shipped detection and panel bring-up. Flagged two net-panel manual tests as pre-rebuild UI drift and refreshed the stale history-commit count on the release task.
* chore(todo): archive completed audio-panel spec to resolvedCraig Jennings47 hours1-9/+8
|
* chore(todo): close audio panel spec IMPLEMENTED, file manual testsCraig Jennings2 days2-2/+215
| | | | The audio panel got built end-to-end in a no-approvals speedrun (the code lives in the dotfiles repo). This is the archsetup-side bookkeeping: the spec flips DRAFT to IMPLEMENTED with all five Decisions resolved, the todo task closes with the resolution, and the live-eyeball checklist (default switching, faders, master quick-mute, and push-to-talk in a real meeting) lands under Manual testing and validation.
* chore(todo): file three panel tasks from roam captureCraig Jennings3 days1-0/+11
| | | | | | Panels moveable + resizable by drag (net + bt), net panel wider initial width, and net panel doctor results can't display. All three raised from the 2026-07-03 roam inbox. Claude-Session: https://claude.ai/code/session_01FdoWWT5d7Wnrt3MLJGzrXf
* chore(todo): fix malformed PROPERTIES drawers in three closed tasksCraig Jennings3 days2-3/+7
| | | | | | The Eask, pocketbook-backlog, and Fn+F9 tasks had their :LAST_REVIEWED: property drawer sitting after the closing note instead of directly under the heading, so org parsed it as body text. Move each drawer back above the note. File the lint follow-up that surfaced them. Claude-Session: https://claude.ai/code/session_01FdoWWT5d7Wnrt3MLJGzrXf
* chore(todo): archive completed tasks to resolvedCraig Jennings3 days2-382/+369
| | | | Move the finished level-2 tasks (the instrument-console rebuild and its folded children, the timer fixes, the net/bt panel items, the Testinfra migration) from Open Work into Resolved.
* chore(todo): instrument-console rebuild complete, spec IMPLEMENTEDCraig Jennings3 days4-16/+1535
| | | | Closed out the panel rebuild. Both panels verified live on velox: 46 suites and both AT-SPI smokes green, the dead-code removal shipped in dotfiles f4e688e, and the render carries the phase-3/4/5 screenshots since no view code changed. Flipped the parent task and its three folded children (network panel redesign, bt switch placement, bt rename) to DONE, ticked the spec's last phase, and flipped the spec to IMPLEMENTED. Filed the approved prototype and the build summary flat into assets/ with dated names, updated the inbound links, and dropped the working dir. The real-device bt interactions (pair, rename, connect, forget, discoverable, power, low-batt badge) can't be auto-driven, so they're a manual-test checklist.
* chore(todo): bt panel instrument-console shipped — phase 5 of the rebuildCraig Jennings3 days2-2/+9
| | | | | | Ticks spec phase 5 and records the two-commit bt rebuild (dotfiles 5318b34 layer + 66f03d9 view). Phase 6 (live verify + close-outs + IMPLEMENTED) remains. Claude-Session: https://claude.ai/code/session_013xt96EetpueCFriY4jGyfw
* chore(todo): net panel instrument-console shipped — phases 3+4Craig Jennings3 days2-5/+12
| | | | 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.
* chore(todo): net console layer shipped — phase 2 of the panel rebuildCraig Jennings3 days2-1/+4
| | | | | | Tick spec phase-2 checkbox and record the dotfiles 81ec9c3 build (net GTK-free presenter layer + engine verbs) as a dated entry under the instrument-console parent task. Claude-Session: https://claude.ai/code/session_013xt96EetpueCFriY4jGyfw
* feat(spec): instrument-console rebuild spec for both panels, task wiringCraig Jennings3 days2-0/+150
|
* chore(todo): record the pty fix-up on the speedtest streaming taskCraig Jennings3 days1-0/+2
|
* chore(todo): close the bt icon-color and close-button tasksCraig Jennings3 days1-4/+10
|
* chore(todo): file two bt-panel items from the roam inboxCraig Jennings3 days1-0/+6
|
* chore(todo): close the tunnel-identification taskCraig Jennings3 days1-2/+5
|
* chore(todo): close the speedtest streaming task, file its panel manual testCraig Jennings3 days1-2/+10
|
* chore(todo): close both timer bugs, file their manual dialog testsCraig Jennings3 days1-4/+25
|
* chore(todo): file four net-panel and timer items from the roam inboxCraig Jennings3 days1-0/+12
|
* chore(todo): record the online pre-check follow-on on the closed taskCraig Jennings3 days1-0/+2
|
* chore(todo): record the action-narration follow-on on the closed taskCraig Jennings3 days1-0/+2
|
* chore(todo): close the net-diagnostics narrate task, shipped in dotfilesCraig Jennings3 days1-2/+5
|
* chore(todo): file two bluetooth-panel follow-ons from the roam inboxCraig Jennings3 days1-0/+6
|
* docs(spec): swallow pattern reassigned — the file manager is dirvish, not ↵Craig Jennings3 days2-4/+15
| | | | | | nautilus Craig corrected the target: Super+F opens the dirvish popup (an Emacs frame), so the swallow belongs in elisp, where it's strictly better — Emacs launches the viewer, so a directly-spawned handler plus a process sentinel gives exact hide/restore and a failure notify, no window-event heuristics. Spec cancelled with the gio double-fork finding kept for reference; task closed as reassigned.
* docs(spec): file-manager swallow pattern, native swallow ruled out by testCraig Jennings4 days2-0/+136
| | | | Hyprland's enable_swallow matches by PID ancestry, and nautilus's gio launch path orphans the handler process (verified live: the spawned viewer reparents to init while the launcher still runs). The spec designs an event-listener daemon on the IPC socket instead — swallow nautilus when a window opens while it's active, restore on that window's close. DRAFT with four decisions pending review.
* chore(todo): file net-diagnostics verbosity task, daily review batch of 7Craig Jennings4 days1-8/+39
| | | | Filed Craig's net doctor UX feedback from the roam inbox (every diagnostic step should report what's tested, why, and pass/fail). Review pass: stow-conflicts re-graded B to C with the body pruned to its two remaining items, audio-panel spec tagged solo, five keeps stamped.
* feat(vpn): wireguard config import for the NM migrationCraig Jennings4 days5-9/+306
| | | | scripts/import-wireguard-configs.sh imports the seven Proton configs into NetworkManager with autoconnect forced off. Each config stages through a wgpvpn.conf temp copy (NM's import name must be a valid interface name; several config names exceed the 15-char limit) and is renamed by the UUID parsed from the import output, so a stray same-named connection can't be hit. A leftover wgpvpn connection — a run that died between import and rename, autoconnect still armed — makes the script refuse to run. 10 tests over a fake nmcli; velox migration verified (all seven wireguard, autoconnect no). The tunnels spec is implemented: all six phases shipped.
* feat(vpn): proton CLI replaces the GTK app, tailscale operator at installCraig Jennings4 days2-3/+41
| | | | The net panel's Tunnels view drives proton-vpn-cli, and the CLI and GTK app can't run concurrently, so the installer swaps them. tailscaled now enables with --now and the install grants operator to the primary user (brief retry — the daemon takes a moment to accept its socket), so tailscale up/down works without sudo from the panel. VM asserts the vpn stack, the retirement, and the OperatorUser pref (format verified against a live daemon).
* docs(spec): tunnels phase 4 shippedCraig Jennings4 days1-2/+2
|
* docs(spec): tunnels phase 3 shippedCraig Jennings4 days1-2/+2
|
* docs(spec): tunnels phase 2 shippedCraig Jennings4 days1-2/+2
|
* docs(spec): tunnels phase 1 shipped, proton CLI ground truth notedCraig Jennings4 days1-2/+2
|
* docs(spec): tunnels spec reviewed READY and decomposed to DOINGCraig Jennings4 days2-5/+38
|