Skip to content

Spec 001 T029: book, end to end - #157

Closed
adamjohnwright wants to merge 4 commits into
mainfrom
t029/book-2
Closed

adamjohnwright wants to merge 4 commits into
mainfrom
t029/book-2

Conversation

@adamjohnwright

Copy link
Copy Markdown
Contributor

Spec 001, task T029. Replaces #156 after its review (five mediums, fixed in the second-last commit).

Everything in #156 (pdf-export book: preflight, figures from the folder, printing in parts, reprint, links, outline, stamps, the folder moved into place whole, the run report), plus, from #156's review:

  • A signal while Chromium launches left Playwright's folders: signals are now held until the printer has started, then acted on; tested at four moments, including mid-launch.
  • An unwritable parent of --out gave exit 1 and a stack trace after the preflight: checked at the start (exit 2).
  • A bad --report path was found only after the book was in place: refused or prepared at the start.
  • A signal wrote no report: handlers are registered at the start, and stop writes the report naming the signal.
  • Substitutions in figure labels and several section fields were untested: the printed PDFs are now read for each.
  • An --out that is a mount point is refused at the start; a figure file removed mid-run is a missing-file fault; the label check is proven to run before its part prints.

Tests: test/book/book.test.ts (14); 415 in all. Mutants in tasks.md.

🤖 Generated with Claude Code

adamjohnwright and others added 4 commits November 3, 2026 22:08
The preflight, then each top-level pathway's PDF printed in parts from the
figures' folder, its contents numbered, links rewritten, outline written and
pages stamped, saved with object streams off into a folder moved into place
only once every PDF is written. A figure's labels are checked before its part
prints; FR-017's substitutions are counted as printed; the run report is
written however the run ends. The join's memory on the real book is left to
T031. Folded in: a test timeout and concurrency bound, the preflight's graph
open and close guarded, and stamp.ts's lows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hecked

A signal is handled from the run's start and held while the browser
launches, the report written naming it; an unwritable or mounted --out and
an existing or unwritable --report are refused at the start; a figure file
removed mid-run is a missing-file fault; and the printed PDFs are read for
every substituted field and a figure's label.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@adamjohnwright

Copy link
Copy Markdown
Contributor Author

Replaced after review: SIGINT during Chromium's launch bypassed the signal hold (Playwright's own handler); two printed fields' substitutions untested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant