aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-14 01:43:14 -0500
committerCraig Jennings <c@cjennings.net>2026-07-14 01:43:14 -0500
commit4e62220d1204c8ddc9f25b52bb9185ef0c1947a4 (patch)
tree58ac3773cced21772fcca4be515a6ed43600fd48 /todo.org
parent78081e4cf89e877d89223c8f85aa046a11905336 (diff)
downloadarchsetup-4e62220d1204c8ddc9f25b52bb9185ef0c1947a4.tar.gz
archsetup-4e62220d1204c8ddc9f25b52bb9185ef0c1947a4.zip
chore: close the speedrun tasks and record the diagnoses
The org-capture float cap and the doctor realtime lamps close as DONE (dotfiles 9c4dc2f, 0318a91). The zfs VM failure is diagnosed and externally blocked: OpenZFS 2.3.3 tops out at kernel 6.15 against our 6.18 LTS, and archzfs hasn't published 2.4.x yet. The lyricsgenius recheck logged the same structural LICENSE.txt pin. Both evidence reports are linked from their parents (dotfiles 260752a, archsetup 78081e4), and the pre-existing panel-smoke state-word failure is filed as its own bug.
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org25
1 files changed, 19 insertions, 6 deletions
diff --git a/todo.org b/todo.org
index 5876f2f..de9ab5b 100644
--- a/todo.org
+++ b/todo.org
@@ -92,11 +92,12 @@ Restyle the audio panel's GTK CSS onto =tokens-waybar.css= + the banked composit
After ~5 hand ports, weigh widget-level codegen with evidence (mechanical duplication vs judgment per port). Recorded as a dated decision in the spec; go spawns its own spec.
*** TODO Flip the spec to IMPLEMENTED
When the phases above close: status heading keyword → =IMPLEMENTED=, dated history line with the reason, Metadata =Status= mirror. Three lines, one file.
-** TODO [#C] Org-capture float popup grows too large :bug:hyprland:quick:solo:
+** 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:
-The org-capture float (confirmed by Craig, 2026-07-13) gets too large; it needs a max on its scale so it never exceeds a threshold — his guess is roughly X by 120 (from roam inbox, 2026-07-11). Fix shape: a maxsize windowrule on the org-capture float rule in the dotfiles hyprland config (archsetup owns dotfiles end to end). Pre-flight question: the exact cap values. Minor severity × most users, frequently = P3 = [#C].
+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.
** TODO [#C] Maint live-refresh hairline replacement :feature:maint:
:PROPERTIES:
:LAST_REVIEWED: 2026-07-14
@@ -124,6 +125,9 @@ On dotfiles main (=12e3e76=, pushed). =gather_context= derives an auth cause on
*** 2026-07-12 Sun @ 09:14:00 -0500 Flipped the net spec to IMPLEMENTED and logged the vNext items
Spec status heading now IMPLEMENTED (dated history line + Status mirror); all four phase headings DONE. vNext items (flaky/drops cluster, DoT/DNSSEC verdict, profile hygiene) logged as the "Net doctor vNext" task. The privileged-fix live halves remain with the VM live-verification sub-task and the manual-testing checklist — findings there come back as bugs.
+** TODO [#C] Panel smoke: faceplate state-word assertion fails on the live compositor :bug:dotfiles:test:
+Found 2026-07-14 while running the net and bt AT-SPI smokes: both fail the shared "state word present" faceplate assertion (empty list) on a live Hyprland session, and the net failure reproduces on a clean HEAD, so it pre-dates the doctor-streaming change. Every other assertion passes. A standing red smoke masks real regressions in the panels' one gated integration check. Diagnose whether the state label genuinely renders empty under the live session or the AT-SPI read races the first render. Major severity for the dev loop × some-users-sometimes = P3 = [#C].
+
** TODO [#C] Net panel speedtest history :feature:dotfiles:network:
:PROPERTIES:
:LAST_REVIEWED: 2026-07-14
@@ -151,7 +155,9 @@ Two fix shapes, decide at work time: (1) wire a digest key — e.g. on the timel
:PROPERTIES:
:LAST_REVIEWED: 2026-07-09
:END:
-=FS_PROFILE=zfs make test-vm-base= fails inside the VM at initramfs time: archangel reports "ZFS module not found! DKMS build may have failed" against the installed kernel (linux-lts 6.18.38 at the 2026-07-08 attempt). Likely a kernel/OpenZFS version skew — the archzfs zfs-dkms may not support 6.18 yet. Consequences: the maint scenario harness's zfs lane (Phase 12) is filtered but unexercised, and a real zfs bare-metal install via archangel would plausibly hit the same wall. Diagnosis needs the in-VM pacman/DKMS logs (rerun create-base-vm.sh with =--keep=-style access or pull /var/log from the ISO session before teardown). Priority per the bug matrix: Major severity (zfs install path broken) × some-users-sometimes = P3. When fixed, run =FS_PROFILE=zfs bash scripts/testing/run-maint-scenarios.sh --list= and add zfs scenario files (zpool scrub / autotrim / snapshot destroy) to the harness.
+=FS_PROFILE=zfs make test-vm-base= fails inside the VM at initramfs time: archangel reports "ZFS module not found! DKMS build may have failed" against the installed kernel (linux-lts 6.18.38 at the 2026-07-08 attempt). Consequences: the maint scenario harness's zfs lane (Phase 12) is filtered but unexercised, and a real zfs bare-metal install via archangel would plausibly hit the same wall. Priority per the bug matrix: Major severity (zfs install path broken) × some-users-sometimes = P3. When fixed, run =FS_PROFILE=zfs bash scripts/testing/run-maint-scenarios.sh --list= and add zfs scenario files (zpool scrub / autotrim / snapshot destroy) to the harness.
+*** 2026-07-14 Tue @ 01:40:48 -0500 Diagnosed: OpenZFS/kernel version skew, blocked on archzfs
+Reproduced in ~1 minute of install: =dkms install zfs/2.3.3 -k 6.18.38-2-lts= exits 1 during pacstrap. Root cause confirmed: OpenZFS 2.3.3's META declares Linux-Maximum 6.15, and the VM installs linux-lts 6.18.38. The first release supporting 6.18 is 2.4.0 (2.4.1 covers 6.19), and archzfs currently serves only zfs-dkms 2.3.3-1 — nothing on our side to fix. Unblock condition: archzfs publishes zfs-dkms ≥2.4.0; recheck with =curl -s https://archzfs.com/archzfs/x86_64/ | grep -o 'zfs-dkms-[0-9.]*'=, then rerun =FS_PROFILE=zfs make test-vm-base=.
** TODO [#B] Consistent keybinding family for the panel console :feature:hyprland:
:PROPERTIES:
@@ -161,10 +167,12 @@ Consider putting every panel (net, bluetooth, audio, timer, and the coming maint
*** 2026-07-14 Tue @ 00:31:36 -0500 Folded Craig's ask for a maintenance-panel keybinding; bumped [#C] → [#B]
Craig asked (in session, 2026-07-14) for a maintenance keybinding specifically — the panel he's reaching for without one. Maintenance (M) is the priority chord when this task gets worked. The capture graduated the task from parking lot to active backlog.
-** TODO [#C] Realtime lamp output for the net + bt doctors :feature:solo:
+** 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.
@@ -222,8 +230,8 @@ Refiled from the archsetup task audit (2026-06-28), landed via ~/.dotfiles/inbox
- Review all 50+ scripts in =~/.local/bin= and remove unused ones.
- Check dotfiles for uninstalled packages and remove orphaned configs.
- Verify all stowed files are actually used.
-*** TODO Build the audit evidence report :solo:
-Split out 2026-07-14 so the legwork can run without Craig: inventory every stowed script and config with the signals that inform keep/kill — last-modified and last-accessed where the filesystem has them, whether the owning package is still installed (pacman -Qo / -Qs cross-check), whether anything references the script (grep across dotfiles, waybar configs, hyprland binds, systemd units, cron), and stow-target reachability. Output: a report in the dotfiles repo listing each item with its evidence and a keep/kill/unsure lean. No removals — the kill decisions stay with Craig in the parent task.
+*** 2026-07-14 Tue @ 01:40:48 -0500 Built the audit evidence report
+Shipped as =docs/2026-07-14-bin-audit-evidence.org= in the dotfiles repo (260752a). 150 scripts bucketed: 69 keep (referenced or cron-driven), 74 kill candidates (zero references in the tree), 7 flagged (all dwm-tier, expected on a hyprland host). Config sweep: audacious and wofi configs are orphan candidates, ranger needs an install-vs-delete call (declared in archsetup but not installed on ratio). Shell history was too shallow (~700 lines) to prove by-hand disuse either way — the kill pass stays Craig's call in the parent task.
** TODO [#B] Waybar network module — custom/net :feature:waybar:network:
:PROPERTIES:
@@ -598,6 +606,8 @@ Root cause was in =retry_install=: =last_exit_code=$?= ran AFTER =if eval ...; t
:END:
Triggered by the 2026-06-14 =make package-diff= run on ratio: 62 packages are installed but not declared in archsetup. Stripped of the structural buckets — pacstrap base/boot/kernel (base, linux*, grub, efibootmgr, sudo, btrfs-progs, fwupd, logrotate, ex-vi-compat, linux-lts-strix, zram-generator), the =make deps= VM set (qemu-full, virt-manager, virt-viewer, libguestfs, bridge-utils, dnsmasq, archiso), and the yay bootstrap — these 40 remain. Check the ones to add to the installer, then rerun =make package-diff= to confirm they clear.
+Evidence report (2026-07-14, count now 64): [[file:docs/design/2026-07-14-undeclared-packages-evidence.org][docs/design/2026-07-14-undeclared-packages-evidence.org]] (archsetup 78081e4) — description, requirer, and install date per package, bucketed candidates (30) / dependency-pulled (6) / orphan libraries (7) / structural (21). The include/ignore pass reads the candidates bucket; the checklist below stays until Craig walks it.
+
Some entries are libraries likely pulled in as dependencies (blas-openblas, openblas, eigen, tk, lib32-openal, pkcs11-helper, gtk4-layer-shell, webkit2gtk, sane, freerdp, rust-bindgen) — check those only if you want them declared explicitly rather than left to dependency resolution.
- [ ] aws-cli-v2
@@ -691,6 +701,9 @@ See Framework community notes on logind.conf and sleep.conf settings
:END:
archsetup installs =python-lyricsgenius= with =--mflags --skipinteg=, skipping makepkg integrity + PGP checks — a workaround originally for an expired-signature issue upstream (surfaced by the 2026-06-23 --noconfirm audit). Periodically test whether the cause has cleared: if a plain =aur_install python-lyricsgenius= builds without complaint, drop the =--skipinteg= workaround. Removal needs a real AUR build to confirm, so it isn't a blind change.
+*** 2026-07-14 Tue @ 01:40:48 -0500 Rechecked: still needed, same cause
+Fresh AUR clone, =makepkg --verifysource= on 3.7.0-1 (PKGBUILD unchanged): tarball passes, =LICENSE.txt= still FAILS its b2sum — the github-master pin, structural as diagnosed 2026-06-24. =--skipinteg= stays.
+
*** 2026-07-02 Thu @ 05:08:37 -0400 Rechecked: still needed, same cause
=makepkg --verifysource= on 3.7.0-1: tarball passes, =LICENSE.txt= still FAILS
its b2sum — the PKGBUILD still pins a hash for a file fetched from github