diff options
4 files changed, 57 insertions, 6 deletions
diff --git a/assets/outbox/2026-06-10-1526-from-.emacs.d-handoff-screenshot-crash.org b/assets/outbox/2026-06-10-1526-from-.emacs.d-handoff-screenshot-crash.org new file mode 100644 index 0000000..d67ca1d --- /dev/null +++ b/assets/outbox/2026-06-10-1526-from-.emacs.d-handoff-screenshot-crash.org @@ -0,0 +1,18 @@ +* screenshot.py --launch likely crashed Hyprland (2026-06-10 15:15) + +While capturing a throwaway Emacs frame for theme-studio bevel work on ratio, the screenshot harness's --launch mode (create a headless output, render the app there, capture, tear down) appears to have crashed Hyprland. + +Timeline, from instance dirs and pid start times: +- 15:14 — screenshot.py --launch 'emacs -Q --eval ...' --layout floating ran and returned a PNG (the Emacs window never appeared in it; the capture shows only waybar on the headless output). +- 15:15:32 — a new Hyprland instance dir appeared (first restart). +- 15:15:40 — a second new instance dir; the surviving Hyprland pid (1171040) started 15:15:39. So the compositor died, and its first respawn died too, within 8 seconds. +- The session's original instance (02:08) socket was gone afterward. All Wayland windows from before 15:15 died with it. + +The machine was otherwise idle (Craig away, only the Claude session active), so the headless-output create/teardown is the prime suspect — possibly interacting with the strix kernel (6.18.25-1-lts-strix) or the floating-layout window move. A second --launch attempt a minute later failed differently (stale HYPRLAND_INSTANCE_SIGNATURE in the session env), so the crash path was only exercised once. + +What this asks of archsetup: +1. Check Hyprland logs / coredumpctl around 2026-06-10 15:15 on ratio for the crash signature. +2. Review the --launch teardown ordering in the screenshot harness (output removal while a client window is mid-map seems like the risky window, given the captured PNG shows the launched app never mapped). +3. Until understood, treat --launch as unsafe on a live session; the other modes (--full, --window, --active) don't touch outputs and stayed fine. + +The .emacs.d session paged Craig at the time and avoided --launch for the rest of the day. Happy to provide the exact command and PNG (/tmp/emacs-bevel-ref.png) if they help. diff --git a/assets/outbox/2026-06-10-1812-from-rulesets-handoff-archsetup-roam-units.org b/assets/outbox/2026-06-10-1812-from-rulesets-handoff-archsetup-roam-units.org new file mode 100644 index 0000000..1255fb6 --- /dev/null +++ b/assets/outbox/2026-06-10-1812-from-rulesets-handoff-archsetup-roam-units.org @@ -0,0 +1,15 @@ +#+TITLE: New systemd user units — roam KB git auto-sync (consider dotfiles adoption) +#+DATE: 2026-06-10 + +* What happened + +The org-roam KB moved from the ~/sync/org Syncthing share to a git repo (git@cjennings.net:roam.git, checkout ~/org/roam) — rulesets agent-knowledge-base spec, decision D8. + +* New units on this machine + +~/.config/systemd/user/roam-sync.{service,timer} — every 15 minutes: commit local roam edits, pull --rebase, push. Canonical copies live in rulesets at scripts/systemd/, and the script is scripts/roam-sync.sh (bats-tested). A monthly roam-hygiene timer is being added in the same change set. + +* Asks + +1. Consider adopting the unit files into the stow dotfiles so they reach other machines automatically. +2. Each other personal machine needs a one-time setup: clone git@cjennings.net:roam.git to ~/org/roam, then copy + enable the units (cp ~/code/rulesets/scripts/systemd/roam-sync.* ~/.config/systemd/user/ && systemctl --user daemon-reload && systemctl --user enable --now roam-sync.timer). Note: Syncthing will have already replaced each machine's ~/sync/org/roam with a symlink pointing at ~/org/roam, so Emacs there is broken on the old path until the clone lands. The work machine deliberately gets no clone. diff --git a/assets/outbox/2026-06-10-1816-from-rulesets-handoff-migrate-memories.org b/assets/outbox/2026-06-10-1816-from-rulesets-handoff-migrate-memories.org new file mode 100644 index 0000000..25ca602 --- /dev/null +++ b/assets/outbox/2026-06-10-1816-from-rulesets-handoff-migrate-memories.org @@ -0,0 +1,19 @@ +#+TITLE: One-time guided memory sweep — promote durable facts to the agent KB +#+DATE: 2026-06-10 + +* What this is + +The shared agent knowledge base is live: Craig's org-roam at ~/org/roam, now a git repo (git@cjennings.net:roam.git). The new global rule ~/.claude/rules/knowledge-base.md carries the full contract: query commands, write schema, the work/personal boundary, and inclusion criteria. + +This handoff asks for the one-time Phase 1.5 sweep in this project (agent KB spec, rulesets). + +* What to do (once, next session) + +1. Read this project's harness memory dir (~/.claude/projects/<encoded-cwd>/memory/). +2. Classify each fact against knowledge-base.md's inclusion criteria: KB-worthy (durable, cross-project or cross-machine value) / stays local (project-scoped, or already encoded in a rules file) / stale-delete. +3. Propose the batch to Craig for approval, then write approved facts as one-node-per-fact files under ~/org/roam/agents/ per the rule's schema (pull first, commit + push after). +4. Reply to rulesets' inbox with counts (promoted / kept local / deleted). + +Work-classified projects don't write to the KB — if that's this project, the sweep is a no-op; just reply saying so. + +Worked example: rulesets promoted 3 of its 6 memories (a notify pattern, the pdftools venv, the gpg-agent SSH TTL trap) and kept the rest local as rule-encoded or project-scoped. @@ -318,6 +318,9 @@ velox keeps laptop-specific configs (foot font, pypr scratchpad sizing for 2256x Spec: [[file:docs/PLAN-per-host-overrides.org][docs/PLAN-per-host-overrides.org]] — gated on review before implementation. +*** 2026-06-11 Wed @ 04:40:00 -0500 AI Response: Second restow-conflict instance on velox +The roam-units rollout hit this again: =make restow hyprland= on velox aborted on three real files (foot.ini font size 12, the velox-tuned pypr config.toml, an older waybar config). The roam systemd units were linked manually to unblock; everything else velox should have picked up from recent dotfiles work (mic-toggle, quick-capture, airplane-mode hardening, ranger plugin) is still NOT stowed there — velox's tree stays partially stale until this mechanism ships. That raises this task's practical urgency: velox can no longer cleanly receive dotfiles changes at all. + *** 2026-05-26 Tue @ 10:21:08 -0500 AI Response: Spec written, gated on review Surfaced by a HiDPI scaling failure: a per-app =QT_SCALE_FACTOR=1.5= in the shared =Zoom.desktop= (meant for velox) made Zoom open enormous on ratio. Reverted that patch to plain =/usr/bin/zoom %U=; the durable fix is this mechanism. Proposed approach: a per-host stow tier (=ratio/=, =velox/=) stowed as =common + hyprland + $(uname -n)=, with the existing =conf.d/*.conf= glob as the first clean tenant — move =local.conf= out of the shared =hyprland/= tier into per-host tiers so each machine gets its own (HiDPI monitor scale + =env = QT_SCALE_FACTOR/GDK_SCALE= on velox, minimal on ratio). XWayland apps don't scale via the compositor (=force_zero_scaling=true=), so toolkit env vars set in =conf.d= are the right layer — kills per-app =.desktop= hacks. Open question in the spec: whole-file configs with no include directive (waybar JSON, pypr toml) need a separate strategy. Full design + 5 open questions for Craig in the spec. @@ -767,12 +770,8 @@ CLOSED: [2026-06-10 Wed] :END: Shipped 2026-06-10 as dotfiles commit =2054da4=: =dotfiles-validate= in =common/.local/bin/= (11 unit tests). Extracts commands from hypr exec/bind-exec lines, waybar exec/on-click/on-scroll values, and systemd user-unit Exec* lines, then verifies each resolves. First run found 4 real orphans — see the follow-up task below. -*** TODO Fix the 4 orphaned references dotfiles-validate found :quick: -- =hyprland.conf:206= tor-browser (Ctrl+Alt+W bind, binary not installed on ratio) -- =hyprland.conf:208= virtualbox (Super+V bind, binary not installed on ratio) -- =common/.config/systemd/user/emacs.service:7= ExecStart points at =~/.local/bin/emacs= (doesn't exist; emacs is =/usr/bin/emacs=) -- =minimal/.config/systemd/user/emacs.service:7= same dangling ExecStart -Decide per item: install the binary, repoint, or drop the reference. +*** 2026-06-11 Thu @ 00:44:41 -0500 All 4 orphaned references fixed; validator fully clean +Both emacs.service units repointed to /usr/bin/emacs (dotfiles =cd15d9b=), and per Craig's call the tor-browser and virtualbox keybinds were dropped rather than backed by installs (dotfiles =e4cb4c2= — Ctrl+Alt+W and Super+V now free). dotfiles-validate: 102 references checked, all resolve. ** TODO [#B] Test security + functionality together :PROPERTIES: |
