aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-18 17:01:07 -0500
committerCraig Jennings <c@cjennings.net>2026-06-18 17:01:07 -0500
commit00aa50de133ac00e0e9657afb884c974240314fe (patch)
treece04f36cdb42e97904451ca1822e1ffae59fc902
parent1d531f6ee64003800bdc0a99e801a13c63b14064 (diff)
downloaddotemacs-00aa50de133ac00e0e9657afb884c974240314fe.tar.gz
dotemacs-00aa50de133ac00e0e9657afb884c974240314fe.zip
chore(todo): archive resolved ai-term crash task, note zig-bump coordination
-rw-r--r--todo.org23
1 files changed, 12 insertions, 11 deletions
diff --git a/todo.org b/todo.org
index a3859e8f8..2a5d03e6c 100644
--- a/todo.org
+++ b/todo.org
@@ -60,20 +60,11 @@ From the 2026-06-15 lint-org sweep. Each needs a human read — these are judgme
- obsolete-properties-drawer — incorrect PROPERTIES drawer contents (lines 8392, 4201, 4023, 65, 55).
- misplaced-heading — possibly misplaced heading (line 8116).
-** DONE [#A] ai-term: selecting an agent kills the whole Emacs process :bug:
-CLOSED: [2026-06-18 Thu]
-Root cause: a ghostel native-module regression in 0.35.0-0.35.2 (all shipped 2026-06-16..18), not anything in this config and not display-backend related. Reproduced down to a plain =M-x ghostel= in a GUI frame (not ai-term-specific); under gdb it is a clean =exit()= from the PGTK main loop (not a SIGSEGV — hence no core ever produced). Upstream filed it the same day: dakra/ghostel #422 (Linux/glibc — the native PTY path now spawns worker threads, and a SIGSETXID handler calls malloc while the main thread holds the glibc arena lock → crash/hang on =M-x ghostel= in a GUI daemon, exactly our case) and #423 (macOS — recursive os_unfair_lock via =run_window_change_functions=). =ghostel-comint= is not a usable workaround (no cursor positioning, can't run the Claude TUI).
-
-Fix: pinned ghostel to the last pre-rework build — =ghostel-20260604.2049=, commit 5779a2adceb2, native module 0.33.0 — installed directly into =elpa/= and held there by =:ensure= (won't auto-upgrade). See =modules/term-config.el=. Verified: the exact crash scenario (open a ghostel buffer in a PGTK GUI frame) now survives; ghostel buffer healthy; terminal test suites green.
-
-Also done this session: =ghostel-module-auto-install= set to =download= (the original "doesn't install" fix); zig 0.15.2 pinned at =/usr/local/bin/zig= as the compile fallback (Arch ships 0.16 which can't build ghostel); archsetup notified of the zig pin.
-
-*** 2026-06-18 Thu @ 16:33:56 -0500 ai-term confirmed working after the 0.33.0 pin
-Craig confirmed in normal use — opening/selecting ai-terms works with no whole-process crash ("everything seems to be working as normal now"). Headless reproduction (open a ghostel buffer in a PGTK GUI frame) had already survived; this is the live-hands confirmation.
-
** TODO [#B] Un-pin ghostel from 0.33.0 once upstream fixes #422/#423 :bug:
ghostel is held at 0.33.0 (=ghostel-20260604.2049=, commit 5779a2adceb2) in =modules/term-config.el= to dodge the 0.35.x native-PTY crash. When dakra/ghostel ships a fix for #422 (Linux malloc/signal reentrancy) and #423 (macOS recursive lock), restore =:ensure t= (drop the pin comment) and =package-upgrade ghostel=, then re-run the open-ghostel-in-a-GUI-frame survival check. Watch the two issues for the fixing commit.
+archsetup automated the zig 0.15.2 pin (managed =install_zig_pin= step, sha-verified, unit-tested). If the un-pinned ghostel bumps its ghostty dependency to a newer zig, send archsetup the new version + sha256 so it bumps its =ZIG_VERSION= / =ZIG_SHA256= constants (=inbox-send archsetup=).
+
** VERIFY [#A] calendar-sync drops final occurrences, resurrects cancelled meetings :bug:solo:next:
:PROPERTIES:
:LAST_REVIEWED: 2026-06-13
@@ -8544,3 +8535,13 @@ CLOSED: [2026-06-16 Tue]
Craig, 2026-06-11 manual-test walk: the color picker's background is hard to distinguish from the page background. Give the picker panel a visibly distinct background or a highlighted border so it stands out. Pin with a gate asserting the picker element carries the distinct style.
Done 2026-06-16: the picker now carries the gold accent border (#e8bd30) and a lighter background (#1f1c19 vs the page's #0d0b0a). The #pickertest gate asserts the accent border and a per-channel background lift of ≥12 over the page, so the distinction can't silently regress.
+** DONE [#A] ai-term: selecting an agent kills the whole Emacs process :bug:
+CLOSED: [2026-06-18 Thu]
+Root cause: a ghostel native-module regression in 0.35.0-0.35.2 (all shipped 2026-06-16..18), not anything in this config and not display-backend related. Reproduced down to a plain =M-x ghostel= in a GUI frame (not ai-term-specific); under gdb it is a clean =exit()= from the PGTK main loop (not a SIGSEGV — hence no core ever produced). Upstream filed it the same day: dakra/ghostel #422 (Linux/glibc — the native PTY path now spawns worker threads, and a SIGSETXID handler calls malloc while the main thread holds the glibc arena lock → crash/hang on =M-x ghostel= in a GUI daemon, exactly our case) and #423 (macOS — recursive os_unfair_lock via =run_window_change_functions=). =ghostel-comint= is not a usable workaround (no cursor positioning, can't run the Claude TUI).
+
+Fix: pinned ghostel to the last pre-rework build — =ghostel-20260604.2049=, commit 5779a2adceb2, native module 0.33.0 — installed directly into =elpa/= and held there by =:ensure= (won't auto-upgrade). See =modules/term-config.el=. Verified: the exact crash scenario (open a ghostel buffer in a PGTK GUI frame) now survives; ghostel buffer healthy; terminal test suites green.
+
+Also done this session: =ghostel-module-auto-install= set to =download= (the original "doesn't install" fix); zig 0.15.2 pinned at =/usr/local/bin/zig= as the compile fallback (Arch ships 0.16 which can't build ghostel); archsetup notified of the zig pin.
+
+*** 2026-06-18 Thu @ 16:33:56 -0500 ai-term confirmed working after the 0.33.0 pin
+Craig confirmed in normal use — opening/selecting ai-terms works with no whole-process crash ("everything seems to be working as normal now"). Headless reproduction (open a ghostel buffer in a PGTK GUI frame) had already survived; this is the live-hands confirmation.