v0.8.3
Release v0.8.3
Proofreader accuracy overhaul.
Introduces a new audit-then-propose enforcement layer for the proofreader:
- Every proofreading batch now goes through submit_batch_audit before
any changes are proposed. The model must reproduce each line's full
content verbatim and mark a per-line verdict; propose_changes is
gated to refuse anything targeting an unaudited or 'clean' line. - Prompt drives sentence-by-sentence scanning with sentence-tagged
notes (s1:, s2:, ...) so multi-issue lines and skipped sentences
become visible. Explicit statement that a line may have any number
of issues, not just one. - Strict-scope clamp prevents stylistic drift: the proofreader now
refuses to propose any change that can't cite a mechanical rule
('reads better' is disqualified by definition).
Model & batch changes:
- Default proofreader model bumped from Haiku (small) to Sonnet
(medium) — Sonnet holds the multi-category attention required by
the audit much more reliably. - Proofreading batches capped at 25 lines regardless of tier so the
model can genuinely re-scan each sentence.
Robustness:
- Audit content match now tolerates typographic variants (straight
vs curly quotes, em/en dashes vs hyphens, ellipsis vs three dots)
using the same normalization the proposal system already applies —
mixed-typography manuscripts no longer trigger retry storms. - Auto-reset behavior from v0.8.2 is preserved: re-proofreading a
completed file works transparently.
21 new tests cover the audit tool acceptance path, every rejection
condition, quote/dash equivalence, and cross-file audit isolation.
Total suite: 914 tests, all passing.
Full Changelog: v0.8.2...v0.8.3