aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* chore(todo): net panel instrument-console shipped — phases 3+4Craig Jennings22 hours2-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 Jennings22 hours2-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 Jennings26 hours2-0/+150
|
* chore(todo): record the pty fix-up on the speedtest streaming taskCraig Jennings27 hours1-0/+2
|
* chore(todo): close the bt icon-color and close-button tasksCraig Jennings28 hours1-4/+10
|
* chore(todo): file two bt-panel items from the roam inboxCraig Jennings28 hours1-0/+6
|
* chore(todo): close the tunnel-identification taskCraig Jennings28 hours1-2/+5
|
* chore(todo): close the speedtest streaming task, file its panel manual testCraig Jennings28 hours1-2/+10
|
* chore(todo): close both timer bugs, file their manual dialog testsCraig Jennings28 hours1-4/+25
|
* chore(todo): file four net-panel and timer items from the roam inboxCraig Jennings28 hours1-0/+12
|
* chore(todo): record the online pre-check follow-on on the closed taskCraig Jennings28 hours1-0/+2
|
* chore(todo): record the action-narration follow-on on the closed taskCraig Jennings29 hours1-0/+2
|
* chore(todo): close the net-diagnostics narrate task, shipped in dotfilesCraig Jennings29 hours1-2/+5
|
* chore(todo): file two bluetooth-panel follow-ons from the roam inboxCraig Jennings29 hours1-0/+6
|
* docs(spec): swallow pattern reassigned — the file manager is dirvish, not ↵Craig Jennings29 hours2-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 Jennings30 hours2-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 Jennings30 hours1-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 Jennings30 hours5-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 Jennings33 hours2-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 Jennings33 hours1-2/+2
|
* docs(spec): tunnels phase 3 shippedCraig Jennings33 hours1-2/+2
|
* docs(spec): tunnels phase 2 shippedCraig Jennings33 hours1-2/+2
|
* docs(spec): tunnels phase 1 shipped, proton CLI ground truth notedCraig Jennings33 hours1-2/+2
|
* docs(spec): tunnels spec reviewed READY and decomposed to DOINGCraig Jennings33 hours2-5/+38
|
* feat(packages): retire zoom, meetings open in the browserCraig Jennings34 hours3-7/+11
| | | | The dotfiles zoom-web handler rewrites zoommtg:// links to the web client, so the AUR zoom package leaves the install. The retired-package VM assertion now covers blueman and zoom.
* chore(todo): archive completed tasks to Resolved, age out to task-archiveCraig Jennings34 hours2-424/+391
|
* docs(todo): record the speedrun's stow-hardening ship on the conflicts taskCraig Jennings34 hours1-0/+2
|
* feat(errors): actionable fatals, log-capture for direct mutationsCraig Jennings35 hours2-38/+58
| | | | error_fatal gained an optional recovery-hint arg and now prints the last log lines, the full log path, and the resume pointer on every fatal; all 17 call sites carry specific hints. The silent sed/file-write mutations (locale.gen, pacman.conf, waybar battery, regdom, geoclue, paccache, udev, fstab, mkinitcpio, sudoers) now capture stderr to the log and warn on failure, and the run summary tells the reader how to find each error's output. No new shellcheck findings; 10 unit suites green.
* feat(preflight): add NVIDIA/Wayland check with driver-version gateCraig Jennings35 hours3-7/+242
| | | | Installing Hyprland on an NVIDIA box silently produced a rough Wayland session. nvidia_preflight_report detects the card via modalias (DRM, then PCI display-class only), prints the required env vars and the pre-Turing AUR caveat, and checks the repo's nvidia-utils major against 535. preflight_checks aborts when the requirement can't be met and asks before continuing on a detected card. 9 unit tests over fake modalias trees and a fake pacman.
* feat(tooling): provision eask via user-local npm installCraig Jennings35 hours3-1/+21
| | | | chime and linear-emacs shell out to eask but nothing installed it. The block runs npm install -g --prefix ~/.local as the user after the node tooling, so eask lands on PATH without root. A stowed .npmrc pins the same prefix in dotfiles. VM asserts both.
* chore(pocketbook)!: remove the in-tree pocketbook packageCraig Jennings35 hours19-1059/+9
| | | | Craig's finish-or-cancel checkpoint resolved to remove: the app left daily use in May and the org-capture popup covers quick notes. The pip install, launcher, and Super+P bind went with it (dotfiles a750cb4); the three pocketbook tasks are closed.
* docs(todo): file the audio-panel spec task from the roam inboxCraig Jennings37 hours1-0/+3
|
* feat(bluetooth): prove the fresh-install panel wiring in VM assertionsCraig Jennings37 hours3-8/+59
| | | | Phase 5 needed no new install code: the waybar module, keybind, and shared panel css ride the dotfiles hyprland tier the installer already stows, and sudoers is covered by the existing grant. I added hyprland-gated assertions instead: bt bins stowed executable, custom/bluetooth in the waybar config, the bt-panel bind in hyprland.conf, panel.css present. This closes the bluetooth-panel task and flips the spec to implemented.
* feat(bluetooth): retire blueman, assert the swap in VM testsCraig Jennings37 hours4-3/+38
| | | | I dropped blueman from the desktop_environment bluetooth loop (bluez + bluez-utils stay) and added the VM assertions: bluetooth stack installed, blueman absent as the retirement regression guard. No new sudoers rule was needed for bt-priv, since the existing blanket grant already covers systemctl restart bluetooth.
* docs(spec): bluetooth phase 3 shipped, visual batch closedCraig Jennings37 hours2-2/+20
|
* docs(spec): net-panel keyboard claims verified live, false ones struckCraig Jennings37 hours2-3/+12
|
* docs(spec): bluetooth phase 2 shipped, AT-SPI smoke deferred until meeting endsCraig Jennings38 hours2-2/+19
|
* docs(spec): bluetooth phase 1 shipped, pw-dump ground truth noted, css ↵Craig Jennings38 hours2-4/+22
| | | | factoring moved to phase 2
* docs(spec): bluetooth panel reviewed READY, decomposed to DOING; net-panel ↵Craig Jennings39 hours2-6/+82
| | | | | | kbd-nav probe deferred Fused reviewer + responder pass: gate passed (all four decisions resolved, phases decomposable, bluez 5.86 verbs verified), two non-blocking findings recorded and dispositioned inline (empty-state/no-adapter copy, eventlog + redaction carry-over — both clone the net-panel donor). Build parent now carries the five phase sub-tasks and the spec's ID. The keyboard-nav verification task logs its code-level findings; the live AT-SPI probe waits until Craig's meeting ends (no test windows or synthetic input while zoom holds focus).
* docs(todo): close net-panel toast bug, fixed in dotfilesCraig Jennings39 hours1-2/+3
|
* docs(spec): bluetooth panel decisions resolved, profile switching in v1Craig Jennings41 hours1-37/+46
| | | | Craig approved all four decisions (pair implies trust+connect, blueman retired outright, battery in captions, 8s scan bursts) and pulled audio-profile switching into v1: the doctor's audio step gains a one-click Switch to A2DP repair over wpctl, and a degraded profile shows in the device caption.
* docs(spec): bluetooth panel initial spec, net-panel UX findings filedCraig Jennings42 hours2-0/+328
| | | | The bluetooth panel spec clones the net panel's stack: a GTK-free engine over bluetoothctl one-shot verbs, a GTK4 layer-shell popup, two tabs with ASCII mockups, a diagnostics doctor chain, and four decisions awaiting review. The UX pass surfaced two net-panel findings, filed as tasks: error toasts auto-dismiss before an error can be read, and the V2 spec's keyboard-navigation claims aren't verifiably implemented.
* docs(spec): resolve the four net-panel decisions, tunnel badge joins v1Craig Jennings42 hours1-27/+62
| | | | Craig answered all four decision TODOs in the tunnels spec. The bar badge moves from optional to v1. All seven Proton WireGuard configs import cleanly into NetworkManager (only the six import-safe directives), so wg-quick drops out of the spec. Proton runs through the official proton-vpn-cli (stable since April, Arch extra repo) instead of the GTK app, which the install drops. The implementation phases pick up the badge, the package swap, and the one-time config import.
* chore: archive processed rulesets ack to the outboxCraig Jennings45 hours1-0/+5
|
* docs: timer-panel spec (DRAFT); log tonight's roam-driven waybar fixesCraig Jennings46 hours2-0/+130
|
* docs(todo): close three shipped tasks, cancel emacs-service module, log ↵Craig Jennings46 hours1-4/+35
| | | | lyricsgenius recheck
* chore: archive processed broadcast notes to the outboxCraig Jennings2 days2-0/+10
|
* docs(todo): close the waybar quick-batch — seven shipped, one infeasible, ↵Craig Jennings2 days1-9/+40
| | | | two spec'd
* docs(design): specs for net-panel tunnels and settings panel; animation ↵Craig Jennings2 days3-0/+318
| | | | | | feasibility Two DRAFT specs — tailscale/VPN/wireguard surfaces in the net panel, and the desktop-settings dropdown panel on the net panel's Blueprint/GTK4 stack — each with open decisions marked for review. The expansion-animation note concludes the collapse-by-reload mechanism can't animate (no widget survives the SIGUSR2 rebuild) and recommends closing that task.
* chore: archive processed broadcast notes to the outboxCraig Jennings2 days3-0/+22
|