aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-28 13:36:51 -0400
committerCraig Jennings <c@cjennings.net>2026-06-28 13:36:51 -0400
commit91405050fcce6424e90b520df67256c59e357915 (patch)
treeffc046b09cb59d7b618e24eda047f6b1c1bd59a3 /todo.org
parente4166e0d8bbc9ed75d7ed01e9e8447401ea771c1 (diff)
downloaddotemacs-91405050fcce6424e90b520df67256c59e357915.tar.gz
dotemacs-91405050fcce6424e90b520df67256c59e357915.zip
fix(ai-term): summon restores the agent's last fullscreen state
Summoning the agent (M-SPC) into a single-window frame docked it at the default fraction even when it was last fullscreen, because the size-memory model only captured split geometry at toggle-off and a sole window has no dock size to record. A window-configuration-change-hook tracker now records whether the displayed agent fills its frame (cj/--ai-term-last-fullscreen), and display-saved restores it in place when that flag and a single-window frame both hold. The tracker records only that flag, not dock geometry: re-capturing the dock size on every window change fed a capture/replay loop that drifted the dock height a couple rows per cycle. The restore guard uses (one-window-p t) so an active minibuffer (a picker prompt mid-summon) isn't counted as a second window, which otherwise misfired the restore into a dock and cascaded.
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org3
1 files changed, 3 insertions, 0 deletions
diff --git a/todo.org b/todo.org
index a77683906..9921743fc 100644
--- a/todo.org
+++ b/todo.org
@@ -709,6 +709,9 @@ Next: (1) revise the spec to the new direction; (2) spike the risky assumptions
Put weather on the dashboard with a good illustrative icon, sourced from wttrin. Build on the release/0.4.0 wttrin now loaded via =:load-path= in =weather-config.el= (it carries the mode-line weather string plus auto-fit). Decide format (a current temp/conditions line vs a small forecast), refresh cadence, and placement/icon. From the roam inbox.
** TODO [#C] nov: sepia reading view (dark bg, tan/sepia text) :feature:
A sepia setting for =nov-mode=: keep a dark background, render the letters in a tan/sepia color. nov defines no faces of its own and leans on shr, so the path is buffer-local face-remapping (=face-remap-add-relative= on =default= / =shr-text= / =variable-pitch=) in a nov-mode hook, toggled per a sepia preference. Overlaps the "epub/nov reading color" note under "Route hardcoded theme colors through the theme" (the removed =#E8DCC0= sepia plus "needs a themeable reading face") — reconcile with that themeable-face direction. From the roam inbox.
+** DONE [#C] ai-term: M-SPC summon ignores the agent's last fullscreen size :bug:
+CLOSED: [2026-06-28 Sun]
+Fixed via Approach B (geometry tracking). A =window-configuration-change-hook= tracker (=cj/--ai-term-track-geometry=) records whether a displayed agent window is the sole window of its frame into =cj/--ai-term-last-fullscreen=; =cj/--ai-term-display-saved= restores the agent in place (fullscreen) when that flag (or the existing bury flag) is set and the frame is a single window, otherwise docks as before. Two follow-on bugs surfaced and were fixed during live testing: (1) the tracker must NOT re-capture dock direction/size on every window change -- doing so fed a capture/replay loop that drifted the dock height ~2 rows per cycle (the F9 shrink-bug class), so the tracker tracks only the fullscreen flag and leaves dock geometry to the toggle-off capture; (2) the restore condition used a bare =one-window-p=, which counts an active minibuffer (a picker prompt mid-summon) as a second window and misfired the restore into a dock that then cascaded -- fixed with =(one-window-p t)= (NOMINI). 5 new ERT tests in =test-ai-term--single-window-toggle.el=; 162/162 ai-term tests green; verified live by Craig (window holds (0 0 141 43) across round-trips). From Craig 2026-06-28.
** PROJECT [#B] Architecture review follow-up from 2026-05-03 :refactor:
High-level pass over =init.el=, =early-init.el=, and all 104 files in