v0.7.3 — the contradiction pipeline stops losing work silently
athenaeum v0.7.3 — the contradiction pipeline stops losing work silently
Reliability patch closing the silent-loss paths surfaced by the 2026-06-11
nightly run, plus the operator surface to see and control budget exhaustion.
Fixed
- Lenient JSON extraction for LLM responses (#219, #222): the contradiction
detector and resolver no longer drop clusters when the model wraps output
in ```json fences or surrounding prose (38 silent drops observed in one
night). Shared extract_json_object() helper: CommonMark line-leading fence
pairing, fenced-content preference with whole-text fallback, exactly-one
ambiguity rule that fails loudly instead of guessing, RecursionError
containment, debug-level decode diagnostics. The last legacy greedy-regex
parse site (freetext source edits) migrated to the same helper. - Librarian budget exhaustion is loud (#220): budget-tripped runs write a
wiki/_deferred_work.md manifest (true backlog: in-window, beyond-window,
failed-this-run) and log a warning-level "Done (DEGRADED — budget
exhausted)" summary instead of a clean "Done". Stale manifests are cleared
on every clean exit path. athenaeum init now creates raw/auto-memory/ so
first runs don't warn; yaml boolean values are no longer accepted as
integer caps; the test-mcp smoke test declares its own provenance.
Added / Changed
- Run-level API budget is configurable (CLI --max-api-calls > env
ATHENAEUM_MAX_API_CALLS > yaml librarian.max_api_calls > default) and the
default rises 200 → 800 — the one operator-visible behavior shift in this
release; review before blind-upgrading if you meter API spend. The budget
now counts merge-phase and re-resolve calls (true run-level ceiling,
enforced at the entity tier). - athenaeum run accepts --path as an alias for --knowledge-root; opt-in
--strict-budget makes budget-tripped runs exit nonzero for exit-code
alerting (#227).
Reviewer attestation
Reviewed by Zenodotus panel (drive-by-installer, production-evaluator,
maintainers-maintainer) in two rounds: round 1 against dc84dab
(CONDITIONAL — doc defects, all remediated), round 2 against a248857.
Round 2: no red scores; TTFS 2 min (installer, real install), 40 min
(evaluator), 35 min (maintainer); recommendations Yes / Only-with-edits ×2.
Remaining edit — patch-vs-minor bump for the cost-default change — resolved
by explicit maintainer directive to ship as patch; all other findings fixed
on develop (PRs #226, #228, #229) before this tag.
Final candidate: 908e6dc, develop CI green, 1112 passed / 19 skipped.