aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-28 15:42:41 -0400
committerCraig Jennings <c@cjennings.net>2026-06-28 15:42:41 -0400
commit6600c07f978b66ca183ebde4558a3834320c06d8 (patch)
tree84d67ba2dd39d8af845eea3f471e82d99f8ec457
parent3c54def0bb2637da6b0700d72defa3a3f838909b (diff)
downloaddotemacs-6600c07f978b66ca183ebde4558a3834320c06d8.tar.gz
dotemacs-6600c07f978b66ca183ebde4558a3834320c06d8.zip
chore(todo): file pdf-view epdfinfo crash taskHEADmain
-rw-r--r--todo.org4
1 files changed, 4 insertions, 0 deletions
diff --git a/todo.org b/todo.org
index 527e13934..82a889f5e 100644
--- a/todo.org
+++ b/todo.org
@@ -713,6 +713,10 @@ A sepia setting for =nov-mode=: keep a dark background, render the letters in a
** 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.
+** TODO [#C] pdf-view: epdfinfo crashes loading some PDFs (large IA scans) :bug:
+=epdfinfo server quit. restart y/n?= when opening certain PDFs, so pdf-view-mode never engages and the file lands in the wrong mode. Reproduced with =~/sync/books/Karl Jaspers/Karl Jaspers_ Basic Philosophical Writings _ Selections (49298)/Karl Jaspers_ Basic Philosophical Writings - Karl Jaspers.pdf= (576-page, 31MB Internet Archive scan).
+Diagnosis: the PDF is structurally valid (=qpdf --check= clean; =pdfinfo= reads it) and poppler renders its pages (=pdftoppm= pages 1 and 300 succeed), so it isn't corruption or a poppler-render crash. epdfinfo crashes loading the document, likely on the tagged-PDF structure / metadata stream the IA scan carries (=Tagged: yes=, =Metadata Stream: yes=), a known epdfinfo trouble class. =auto-mode-alist= maps =.pdf= -> =pdf-view-mode= correctly, so-long is off, and there's no large-file prompt (=large-file-warning-threshold= nil).
+Fix options (Craig to choose): (1) re-save the file to strip what crashes epdfinfo (=mutool clean= / ghostscript / =qpdf --replace-input=), keeping a backup -- fixes this file, recurs on the next bad scan; (2) graceful fallback in =pdf-config.el= -- when epdfinfo dies on a PDF, open it in zathura (already bound to =z=) instead of the dead pdf-view buffer, robust for the whole class; (3) both. From the roam inbox.
** 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