aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org102
1 files changed, 82 insertions, 20 deletions
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 <other>:.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=.