v0.13.13
Changes since v0.13.10 (0.13.11 and 0.13.12 were develop-only
intermediate versions, rolled into this release).
Changed — librarian timeout durability (#337)
- A timeout-killed librarian run no longer strands its compile output.
The nightly pre-dawn sweep bounds the librarian with a wall-clock
timeout(SIGTERM, then KILL after a grace). Previously a timeout landing
between the start-of-runpre-processing snapshotcommit and the terminal
librarian: processed N file(s)commit left every wiki page written so far
uncommitted — silently absorbed by the next run'sgit add -A
snapshot under a misleading message.athenaeum runnow installs a
SIGTERM/SIGINT handler for the writing phase that commits partial progress
with a distinct, greppable message —librarian: partial run (interrupted after N file(s), …CUE F)— and exits124(matching coreutilstimeout).
Interrupt-commit contract: an interrupted run leaves the knowledge tree
clean and attributes its work to apartial runcommit, not the next run's
snapshot. A normally-completing run is unchanged (still oneprocessed N
commit). The handler is opt-in (CLI-only) so in-process callers (the MCP
server, tests) keep their own signal handling. Newly relevant under the
claude-clibackend (v0.13.10), whose per-call subprocess latency makes
timeouts more frequent. - Hardening (post-review): the writing phase is wrapped in
try/finally
so the handlers are restored on every exit path — normal, interrupt, or an
exception fromrebuild_index/ the terminal commit — and can never outlive
the run for an in-process caller. Batch-mode interrupt accounting is
documented as out of scope (a batch interrupt still commits written pages
with a clean tree, but reports0 file(s)). Test coverage over both
SIGTERM (timeout) and SIGINT (Ctrl-C).
Documentation (#336)
- Surfaced the
claude-clisubscription backend in the two top-level docs a
reader scans first: the README env-var table now documents
ATHENAEUM_LLM_PROVIDER(api|claude-cli, defaultapi),
ATHENAEUM_CLAUDE_CLI_BIN, andATHENAEUM_CLAUDE_CLI_TIMEOUT; SECURITY.md's
scope now names theclaude-clisubprocess backend (argv-list construction,
ambient Claude Code auth, neutral-cwd invocation).docs/configuration.md
remains the source of truth.
Full per-version detail in CHANGELOG.md (§ 0.13.11–0.13.13).