aboutsummaryrefslogtreecommitdiff
path: root/archive
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-08-20 11:46:19 -0500
committerCraig Jennings <c@cjennings.net>2026-08-20 11:46:19 -0500
commitfb13378559cdc6a9ef3b23883bcbda2937dc1195 (patch)
treef972cdca16e965a95948775dd849dad842e2e07a /archive
parente8004e3a7416c57661d43e8bfaefb7c77255129e (diff)
downloadarchsetup-fb13378559cdc6a9ef3b23883bcbda2937dc1195.tar.gz
archsetup-fb13378559cdc6a9ef3b23883bcbda2937dc1195.zip
fix(velox): trace the dead touchpad to its own connector, and repair two lost todo headings
The touchpad fault was an interrupt line that never fired: the device enumerated, hid-multitouch bound, and the handler sat correctly on amd_gpio pin 8, but the count stayed at zero across all 24 CPUs under active use and the i2c-HID reset timed out at every boot. A live USB reproduced it exactly, which ruled out software. The fix was the touchpad's own connector — the input-cover ribbon I reseated first fixed the phantom power button and left this untouched, and the 4-pin connector beside the silkscreen is GND and VCC only, so it could never have carried i2c. Both faults from the mainboard swap are now closed. Two task headings had been overwritten by inserts at the top of Open Work, and I recovered both verbatim from the commits that introduced them. One displaced task had ridden an archived parent into Resolved, so an open bug had been sitting outside Open Work for weeks. Filed the install placeholder passwords still live on this laptop as an [#A], graded on severity alone rather than the frequency matrix: full-disk encryption protected by a dictionary word does no work at all on a machine that travels. Corrected the ARCHSETUP_DIR line in the reinstall runbook. It carried a tilde on the right-hand side of an assignment, which zsh does not expand, so following it would have produced an ISO with the installer silently absent.
Diffstat (limited to 'archive')
-rw-r--r--archive/task-archive.org97
1 files changed, 97 insertions, 0 deletions
diff --git a/archive/task-archive.org b/archive/task-archive.org
index 2ddd028..ba43804 100644
--- a/archive/task-archive.org
+++ b/archive/task-archive.org
@@ -1604,3 +1604,100 @@ Work: give bluetooth a copy key, give maint the overlay pair, and lift the four
Copy text is per panel but one rule: it pastes as that panel's CLI prints, so the paste lines up with the terminal a user is already looking at. audio's =viewmodel.wall_copy_text()= is the worked example.
Consistent with the 2026-07-07 scope note on the sibling task above: net's compact glyph overlay is what standardizes, not maint's wide COPY-key header row.
+** DONE [#C] Org-capture float popup grows too large :bug:hyprland:quick:solo:
+CLOSED: [2026-07-14 Tue]
+:PROPERTIES:
+:LAST_REVIEWED: 2026-07-13
+:END:
+Craig answered the pre-flight (2026-07-14): cap at 120 wide, height proportional. Applied as 120 Emacs columns (11 px/col measured from the live daemon) = 1320 px wide, height 653 px from the old rule's aspect. Ratio's size rule shrank from the 1892x936 scratchpad match and both hosts gained a max_size growth cap (the field is max_size — bare "maxsize" is invalid and hyprctl reload won't say so; check hyprctl configerrors). Verified live: config clean, a probe window floats at exactly 1320x653. Dotfiles 9c4dc2f.
+** DONE [#C] Panel smoke: faceplate state-word assertion fails on the live compositor :bug:dotfiles:test:
+CLOSED: [2026-07-14 Tue]
+Diagnosed and fixed within the session: not a race — test drift. Dotfiles b581d5d (2026-07-05) made the faceplate word the static subsystem identity (NETWORKING / BLUETOOTH / AUDIO) and updated the audio smoke, but the net and bt smokes kept asserting the retired live-state words and had failed on every run since. Both now assert the identity word like audio's (dotfiles 32cd99f); both smokes run RESULT: OK end to end, which also green-gates the doctor-streaming change.
+** DONE [#C] Realtime lamp output for the net + bt doctors :feature:solo:
+CLOSED: [2026-07-14 Tue]
+:PROPERTIES:
+:LAST_REVIEWED: 2026-07-09
+:END:
+Shipped in dotfiles 0318a91. Both doctors stream: diagnose() emits each step as it completes (bt streams the first diagnosis only — the fix loop's re-diagnoses would replay the chain), and a repair's row goes up amber at attempt start and settles green/red with narration + evidence at completion, so the lamp blinks for the repair's real duration. The 3.5-entry height cap turned out to already be in both wells (it landed with the doctor expansions), so only the streaming half needed building. 5 new tests across net + bt; both suites green; AT-SPI smokes at parity with HEAD (one pre-existing state-word failure, filed separately).
+Retrofit the net doctor (=~/.dotfiles/net/src/net/doctor.py=) and bluetooth doctor (=~/.dotfiles/bluetooth/src/bt/doctor.py=) to stream results as a live output wall — one lamp per escalation step, amber while running, green on success, red on failure — instead of a final summary. Matches the maintenance-console doctor design (see [[file:docs/design/maintenance-console-design-ideas.org][maintenance-console-design-ideas.org]], "Doctor = live output wall"). Goal: every doctor in the system reads the same way. Both doctors already step through an escalation chain re-probing after each, so the steps are natural lamp boundaries.
+
+Scope note (Craig, 2026-07-07): realtime lamp *behavior* only. The maintenance console's wider results-wall layout (date+time stamp column, COPY, persistent history) does NOT backport — the net/bt panels are ~400px wide and lack the horizontal real estate. Their existing output wells keep their compact layout; this task just makes them stream live.
+
+Addendum (Craig, 2026-07-07): DO backport the 3.5-entry height convention — every panel's output well caps at 3.5 visible entries, the half-visible entry being the scroll cue, with the dark slate-on-black scrollbar. Layout stays compact per above; only the height cap + scroll affordance carries over.
+** DONE [#B] Absorb the clock-panel project into the dotfiles :feature:waybar:dotfiles:
+CLOSED: [2026-07-18 Sat]
+Absorbed into =~/.dotfiles= (commit 3fab11d): package =clock/src/clock/= (renamed from clock_panel), the six PNG watchface layers packaged inside the module at =clock/src/clock/assets/=, a stowed =clock-panel= shell shim (LD_PRELOADs gtk4-layer-shell), waybar left-click now =clock-panel toggle= with the absolute path dropped, tests converted pytest→unittest into =tests/clock/= plus an asset-load guard. Kept the layer-shell overlay and the socket toggle. The standalone repo is archived (ARCHIVED.md), kept for its design history. Verified live: the bar click renders the polished watchface.
+** DONE [#A] Velox boot recovery — no kernel in BE :bug:velox:zfs:
+CLOSED: [2026-07-19 Sun]
+Recovered. Velox boots linux-lts 6.18.38 and is back on the tailnet (up 1d+, /boot holds initramfs-linux-lts.img). The pre-pacman ZFS snapshot rollback restored the kernel from the ZBM recovery shell.
+Velox won't boot: ZBM prompts for the passphrase, unlocks, then reports no bootable environment with a kernel. Cause: an interrupted kernel =-Syu= removed the old kernel and never installed the new one — /mnt/be/boot (from zroot/ROOT/default) holds ONLY intel-ucode.img; vmlinuz-linux + both initramfs are gone. /boot lives inside zroot/ROOT/default (no separate boot dataset), so root-dataset snapshots capture it.
+
+Status 2026-07-15: a first rollback attempt did NOT fix it (square zero after reboot) — suspected typo in the snapshot name, so the rollback likely errored and did nothing. NOT verified. Next session: verify state in the ZBM recovery shell BEFORE any reboot.
+
+Recovery lever: the pre-pacman ZFS snapshot hook (live on velox since 2026-06-29) snapshots zroot/ROOT/default@pre-pacman_<ts> before every pacman transaction. The newest =pre-pacman_<ts>= predating the failed upgrade holds the intact old kernel — roll back to it.
+
+Morning steps (Craig at velox ZBM → recovery shell, Ctrl+R):
+#+begin_src sh
+# 1. pool writable + key loaded
+zpool get readonly zroot
+zfs get -H -o value keystatus zroot/ROOT/default
+# if readonly=on: zpool export zroot && zpool import -f -N zroot
+# if keystatus=unavailable: zfs load-key zroot
+
+# 2. list snapshots — COPY THE EXACT NAME (the typo bit here last time)
+zfs list -t snapshot -o name,creation zroot/ROOT/default | grep pre-pacman
+
+# 3. see current /boot state (read-only mount)
+umount /mnt/be 2>/dev/null; mkdir -p /mnt/be
+mount -t zfs -o zfsutil,ro zroot/ROOT/default /mnt/be
+ls -la /mnt/be/boot
+
+# 4. if /boot still shows only intel-ucode.img: redo rollback with the exact name
+umount /mnt/be 2>/dev/null
+zfs rollback -r zroot/ROOT/default@pre-pacman_<EXACT-TS> # -r, NOT -R
+
+# 5. VERIFY before reboot — remount RO, confirm the kernel is back
+mount -t zfs -o zfsutil,ro zroot/ROOT/default /mnt/be
+ls -la /mnt/be/boot # MUST show vmlinuz-linux + initramfs-linux.img
+umount /mnt/be
+
+# 6. only once /boot shows a kernel:
+zpool export zroot && reboot
+#+end_src
+Scope: only zroot/ROOT/default reverts; /home, /var, /media are separate datasets, untouched. After boot: =pacman -Syu= attended, confirm /boot holds vmlinuz-linux + initramfs before any shutdown. Full diagnosis: =inbox/PROCESSED-2026-07-15-0002-from-.emacs.d-velox-boot-failure-handoff.org=; ZBM photo: =inbox/PROCESSED-2026-07-15-0002-from-.emacs.d-PXL_20260715_043758976.jpg= (local on ratio; inbox is gitignored).
+** DONE [#C] Restore date-format scrolling on the waybar date module :feature:waybar:dotfiles:quick:
+CLOSED: [2026-07-19 Sun]
+Shipped dotfiles 9dfe082: date-only ring (ordinal/full/longdate), on-scroll rewired, layout guard flipped. UTC/time stay on the time module.
+Date and time are separate fixed-position controls. The time display cycles its
+own formats, including UTC; the date/calendar control cycles date-only formats
+and never displays a second time. Implement the dedicated format rings,
+tooltip behavior, and tests together in the dotfiles Waybar configuration.
+Reference material for the compact clock/chronograph treatment is filed in
+[[file:working/clock-display-references/][working/clock-display-references/]].
+
+*** 2026-07-19 Sun @ 04:36:26 -0500 Folded clock-panel interaction direction
+The clock-panel handoff settled the prior open question: UTC belongs only to
+the time ring, while the date ring is date-only. The existing task is therefore
+a focused follow-up, not a two-line restoration of the old combined ring.
+** DONE [#C] Notification sound loudness :chore:audio:quick:solo:
+CLOSED: [2026-07-19 Sun]
+Shipped dotfiles 808ca23: NOTIFY_VOLUME default 65536->39322 (0.6 gain) in both notify copies.
+Reduce notification-sound playback loudness by 40% (0.6 gain, approximately
+-4.4 dB). Change the =NOTIFY_VOLUME= playback control rather than re-encoding
+the normalized sound files; verify each notification type still plays clearly.
+** DONE [#C] Show the active wired interface in the Waybar network module :feature:waybar:network:
+CLOSED: [2026-07-19 Sun]
+Shipped dotfiles 22867f9: select_device prefers connected wifi -> connected ethernet -> wifi fallback, so a live cable shows the wired glyph+iface instead of Offline.
+When Ethernet is active, replace the offline-WiFi presentation with the wired
+interface glyph and interface name.
+** DONE [#C] Let the clock panel dismiss itself on right click :feature:clock:waybar:
+CLOSED: [2026-07-19 Sun]
+Shipped dotfiles fc9a2b7: secondary-button gesture -> ClockApplication._dismiss hides the open panel. Live-verified with Craig 2026-07-19.
+Make a right click inside the open clock panel toggle it closed. Preserve left
+click for its established interaction; the Waybar time module remains the
+explicit way to reopen the panel.
+** DONE [#C] Make the WiFi toggle connect the best available profile :feature:network:
+CLOSED: [2026-07-19 Sun]
+Shipped dotfiles 9105361: manage.wifi_radio -> _connect_best_saved activates the strongest in-range saved profile on enable; nothing in range falls back to NM autoconnect.
+When enabling WiFi, automatically connect to the highest-priority available
+saved network instead of requiring a panel selection first.