aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-25 16:25:58 -0400
committerCraig Jennings <c@cjennings.net>2026-06-25 16:25:58 -0400
commit39f0d77514db3bf4c7d2a93d111b8504074b5abf (patch)
tree77d46c092f2ef673d07a61b354dcf6898972bd2b
parent687b438fc09da0997c9507610eb6146e7e0dca14 (diff)
downloaddotemacs-39f0d77514db3bf4c7d2a93d111b8504074b5abf.tar.gz
dotemacs-39f0d77514db3bf4c7d2a93d111b8504074b5abf.zip
chore(todo): close F12->EAT task, file the visual toggle check
-rw-r--r--todo.org13
1 files changed, 11 insertions, 2 deletions
diff --git a/todo.org b/todo.org
index d1b27d206..de5563e36 100644
--- a/todo.org
+++ b/todo.org
@@ -57,6 +57,14 @@ Tags are additive. For example, a small wrong-behavior fix can be
* Emacs Open Work
** PROJECT [#A] Manual testing and validation
Exercised once the phases above land.
+*** VERIFY F12 toggles the EAT terminal (dock, hide, type, escape)
+What we're verifying: F12 now opens and toggles a single EAT terminal (not ghostel), docked with the remembered geometry, and F12 + C-; reach Emacs from inside it. The wiring is verified live; this is the visual dock/toggle gesture only Craig can run.
+- Press F12 in a normal frame. Expected: an EAT terminal docks (bottom or right per the column rule) with a real shell prompt, focus in it.
+- Type a command (e.g. =ls=) and confirm it runs in the EAT terminal.
+- Press F12 again from inside the terminal. Expected: the terminal window hides (toggles off).
+- Press F12 again. Expected: the same EAT terminal returns at the remembered size.
+- From inside the terminal, press =C-; b= (a window-family leaf). Expected: the global prefix works (reaches Emacs), not typed into the shell.
+Expected: F12 docks / hides / redocks one EAT terminal with stable geometry; ghostel is no longer the F12 backend (ai-term on M-SPC is unaffected); F12 and C-; reach Emacs from inside EAT.
*** VERIFY ai-term next steps into and attaches a detached session
What we're verifying: =C-; a n= (or =M-SPC=) cycles into a detached ai-term (alive in tmux, no Emacs buffer) and attaches it, not just live buffers. The pure logic is unit-tested; this is the live attach-on-landing check only Craig can run.
- Start agents in two projects so two ai-terms exist, then leave one detached (kill its Emacs buffer while the tmux session stays alive, or after an Emacs restart that leaves =aiv-*= sessions running).
@@ -610,8 +618,9 @@ Craig's call (option a + hover): the contrast cell now shows just the rating-col
** CANCELLED [#B] first f12 doesn't toggle the term window :bug:solo:
CLOSED: [2026-06-25 Thu]
Couldn't reproduce — neither could Craig (2026-06-25). The toggle code is clean (a single create-new -> ghostel on the first press, no second toggle), and the symptom pointed to an intermittent first-launch race, but with nobody able to reproduce it there's nothing to instrument. Cancelled; reopen with a live capture if it recurs.
-** TODO [#B] F12 pops EAT instead of ghostel :feature:studio:
-Switch the F12 terminal toggle from ghostel/ghostty to EAT (emulator-for-terminals, pure elisp). The draw: EAT renders entirely in elisp, so its whole palette is real Emacs faces (=eat-term-color-0= .. =eat-term-color-15=, foreground/background, cursor), which makes it fully themeable from the theme — and a fun theme-studio coverage target. Steps: install =eat=; wire F12 to pop/toggle an EAT terminal (mind the =ghostel-keymap-exceptions= + rebuild gotcha if any ghostel F-key wiring lingers; the new path is plain Emacs keymaps); theme the =eat-term-color-*= faces (candidate to surface in theme-studio). Tradeoff to accept knowingly (themeability research 2026-06-24): ghostel is actually the most live-themeable — it has an =enable-theme-functions= resync hook and a dedicated default fg/bg face, whereas EAT needs a buffer reload to pick up a theme change and exposes no default fg/bg defcustom. So this trades ghostel's automatic theme-resync for EAT's pure-elisp face control. Spawned from the terminal-themeability comparison.
+** DONE [#B] F12 pops EAT instead of ghostel :feature:studio:
+CLOSED: [2026-06-25 Thu]
+Done 2026-06-25, design doc =docs/design/eat-f12-toggle.org=. Part A (commit fe7aa658): F12 toggles a single EAT terminal instead of ghostel, reusing the dock-and-remember geometry toggle; ghostel stays for ai-term (M-SPC); EAT runs a plain shell with no tmux; F12 and C-; are bound in EAT's keymaps so they reach Emacs from inside the terminal. Part B (commit 687b438f): EAT's faces are exposed in theme-studio (16 named palette + attribute + prompt-annotation faces) with a =renderEatPreview=, no colors set so it stays vanilla. term 223/223, ai-term 158/158, studio gates green; the toggle wiring (F12 reaches Emacs in EAT, =(eat)= creates the buffer, the predicate recognizes it) was verified live in the daemon. Accepted tradeoff: EAT needs a buffer reload to pick up a theme switch (ghostel auto-resyncs), taken for EAT's pure-elisp face control. The visual F12 dock/toggle check is a VERIFY under Manual testing and validation.
** TODO [#C] ai-term.el commentary names a stale F9 keybinding scheme :quick:
The header commentary (lines ~43-64) still documents an old =F9= / =C-F9= / =s-F9= / =M-F9= scheme for =cj/ai-term= and its family, but those bindings no longer exist — F9 is unbound in the daemon and the only live global binding is =M-SPC= -> =cj/ai-term-next= (=ai-term.el:1059=). The =M-<f9>= mention in the =cj/ai-term-shutdown= docstring (~996) is stale too. Rewrite the commentary and any stale docstrings to match the current keymap. Found 2026-06-25 while scoping the F12 -> EAT work.