From e777ddca34f5ea8040d9905c55b853a7089d6682 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Tue, 25 Aug 2026 18:54:55 -0600 Subject: docs(spec): split the live upgrade and hold the kernel for a dedicated session I rewrote the guarded-upgrade spec around a script the maintenance panel calls: pacman -Syu --ignore on what the live-update guard would block plus the kernel set, then the AUR remainder and topgrade with the system step off. The boot oneshot now completes only the deferred GPU set. Kernels wait for a session I choose, behind a gate on the DKMS build, the initramfs, and a pre-pacman snapshot, because on velox a failed zfs-dkms rebuild after the swap can't be aborted and leaves the new kernel unbootable. All seven decisions are closed. Also closes the ratio Emacs 31 task (upgraded, verified on Wayland) and files gcalcli in the installer. --- todo.org | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 82 insertions(+), 20 deletions(-) (limited to 'todo.org') diff --git a/todo.org b/todo.org index 592349f..d6a3e45 100644 --- a/todo.org +++ b/todo.org @@ -45,6 +45,45 @@ below): input-side-spec.org (DRAFT, four decisions open). * Archsetup Open Work +** TODO [#B] gcalcli in the installer, token carried from the other daily driver :feature:velox:tooling:solo: +:PROPERTIES: +:CREATED: [2026-08-25 Tue] +:LAST_REVIEWED: 2026-08-25 +:END: +From home's 2026-08-25 handoff: velox's 08-13 reinstall left it without +gcalcli, and on 08-21 both calendar write paths on velox were down at once +(the google-calendar MCP with expired tokens, and no gcalcli), so a booked lab +appointment sat uncalendared for three days. The daily-drivers one-time-setup +drift, exactly. + +Part 1 is done (2026-08-25, this session): =pipx install gcalcli==4.5.1= on +velox to match ratio, then ratio's =~/.local/share/gcalcli/{oauth,cache}= +copied over tailscale (=oauth= is a 1 KB pickled google-auth credential, +=chmod 600=). =gcalcli list= on velox returned all six calendars with no +re-consent, so the token is portable between the daily drivers and the OAuth +click-through is not needed when the other machine is reachable. + +Part 2, this task: make the installer do it. +- =pip_install gcalcli= in the tool set beside =pip_install yt-dlp= (archsetup + ~line 3109; =pip_install= wraps =pipx install= as =$username=). Pin or not: + ratio and velox are both 4.5.1; unpinned matches how yt-dlp is installed. +- The credential can't be installed: add a named post-install manual step + "copy =~/.local/share/gcalcli/oauth= from the other daily driver + (=scp :.local/share/gcalcli/oauth ~/.local/share/gcalcli/=, + =chmod 600=), or run =gcalcli init= per + =assets/2026-02-01-gcalcli-setup.org= when neither machine has it." +- A =post-rebuild-check= item: gcalcli on PATH and the oauth file present, so + the drift is caught by the checker rather than by a missed appointment. +- Tests: an installer-steps pytest asserting the tool set carries + =pip_install gcalcli=; a post-rebuild-check test for the new item, both + states. +- When it lands, confirm back to home (=inbox-send home=) so it can retire + its "gcalcli is not installed on velox" notes. + +Grading: feature, no hard date, real improvement to the install = [#B]. +:solo: — build path (installer + checker + tests) and verify path (pytest; +the live proof already exists on velox) with no open decision. + ** TODO [#A] Topgrade guarded-upgrade spec — decisions, review, decomposition :feature:maint:dotfiles: SCHEDULED: <2026-08-25 Tue> :PROPERTIES: @@ -73,26 +112,6 @@ Then: flip the decisions DONE, run spec-review (DRAFT → READY), run spec-response to decompose the four phases into build tasks here, file the vNext =[#D]= kernel-reboot item, and commit the spec. -** TODO [#A] Ratio: pull .emacs.d before upgrading Emacs to 31.1 :chore:ratio:emacs: -SCHEDULED: <2026-08-25 Tue> -:PROPERTIES: -:CREATED: [2026-08-25 Tue] -:LAST_REVIEWED: 2026-08-25 -:END: -Emacs 31.1's warnings.el defers daemon-startup warnings into a closure holding -the =*Warnings*= buffer; the config's dashboard-only sweep killed that buffer, -so the first client frame of every fresh 31.1 daemon failed on Wayland and -emacsclient silently fell back to =$DISPLAY= (XWayland, pgtk warning dialog). -Fixed in =.emacs.d= commit =63831060= (2026-08-25, velox verified live: -=GdkWaylandDisplay=). Ratio is still on 30.2, which lacks the deferring code, -so it is fine until it upgrades — then it hits the same trap once per daemon -start unless the fix is pulled first. - -Order on ratio: =git -C ~/.emacs.d pull= (the push from velox is the telega -session's; confirm =63831060= is on origin first), then the =pacman -Syu= that -brings =emacs-wayland 31.1=, then restart the daemon. Check afterwards: -=emacsclient -e '(pgtk-backend-display-class)'= → =GdkWaylandDisplay=. - ** TODO [#A] Lock-screen clock stale after a real sleep :bug:hyprland:dotfiles:velox: SCHEDULED: <2026-08-25 Tue> :PROPERTIES: @@ -4316,3 +4335,46 @@ installed. *** 2026-08-21 Fri @ 14:18:03 -0700 Promoted the Phase 5 residual out to its own task Rescoped 2026-07-04 (audit): the tunnels track already shipped most of the original Phase 5. Panel tunnel bring-up/down and detection landed (dotfiles 2d9d060 probes tailscale/NM-wireguard/Proton; 21db05a brings overlays up/down from the panel's Tunnels sub-view; 31ba056 diagnose/doctor understand tunnel routes; archsetup 2e40781 wireguard config import; the net-panel-other-interfaces spec is IMPLEMENTED). What remains for Phase 5 is only the =net vpn ...= CLI subcommand — cli.py still has no vpn/tunnel parser. Fold the panel's existing tunnel operations into a CLI surface; spec separately when picked up. +** DONE [#A] Ratio: pull .emacs.d before upgrading Emacs to 31.1 :chore:ratio:emacs: +CLOSED: [2026-08-25 Tue] +:PROPERTIES: +:CREATED: [2026-08-25 Tue] +:LAST_REVIEWED: 2026-08-25 +:END: +Emacs 31.1's warnings.el defers daemon-startup warnings into a closure holding +the =*Warnings*= buffer; the config's dashboard-only sweep killed that buffer, +so the first client frame of every fresh 31.1 daemon failed on Wayland and +emacsclient silently fell back to =$DISPLAY= (XWayland, pgtk warning dialog). +Fixed in =.emacs.d= commit =63831060= (2026-08-25, velox verified live: +=GdkWaylandDisplay=). Ratio is still on 30.2, which lacks the deferring code, +so it is fine until it upgrades — then it hits the same trap once per daemon +start unless the fix is pulled first. + +Order on ratio: =git -C ~/.emacs.d pull= (the push from velox is the telega +session's; confirm =63831060= is on origin first), then the =pacman -Syu= that +brings =emacs-wayland 31.1=, then restart the daemon. Check afterwards: +=emacsclient -e '(pgtk-backend-display-class)'= → =GdkWaylandDisplay=. + +*** 2026-08-25 18:10 — pull already landed; the upgrade half remains +Checked ratio over tailscale: =~/.emacs.d= is clean at =91fbac72= (= =origin/main=), +and =63831060= is an ancestor of HEAD — =modules/undead-buffers.el= carries the +=*Warnings*= entry. Ratio is on =emacs-wayland 30.2-3= with =31.1-1= pending among +720 updates (last full upgrade 2026-08-01; kernel 7.1.5 → 7.1.9 also pending, +btrfs root, uptime 3.5 weeks). The daemon is a plain =emacs --daemon= (not a +user unit) holding 2 live frames, so the restart step will drop those frames. +What remains: the =pacman -Syu= on ratio, the daemon restart, and the +=(pgtk-backend-display-class)= check. + +*** 2026-08-25 Tue @ 18:35:00 -0600 Upgraded ratio to Emacs 31.1 and verified the Wayland backend +Ran the upgrade over tailscale as a transient unit (=ratio-upgrade.service=, +log at =/var/log/ratio-upgrade.log=): 714 packages, =--ignore= on the six +packages the live-update guard would have blocked (aquamarine, hyprland, +hyprutils, mesa, vulkan-radeon, wayland — still pending, apply from a TTY +before the reboot). One orphan cleared first: =qemu-block-gluster= had been +dropped from the repo and pinned =qemu-common=; the new =qemu-full= no +longer needs it. Killed the plain =emacs --daemon= (no modified buffers, no +graphical frames), started =emacs.service= instead so the daemon carries the +systemd user environment, and probed from a throwaway frame: +=(pgtk-backend-display-class)= → =GdkWaylandDisplay=, =*Warnings*= alive. +Ratio still wants a reboot for =linux 7.1.9=. Pacnews to review there: +=/etc/ssh/sshd_config.pacnew= and two =/etc/tpm2-tss/fapi-profiles/*.json=. -- cgit v1.2.3