Releases: cainhopwood/editbot
Release list
v0.8.4
Release v0.8.4
Fix editing-status drift after batched phases finish.
Two related bugs kept the phase-completion state out of sync with
actual progress, causing files to appear 'Pending' after the harness
had already finished them:
-
The batching harness never set the phase-complete flag on the
final batch (except for prose_polish which had its own fallback).
Small files that fit in one batch were even worse — they skipped
the batch machinery entirely and had no completion writer at all.
The system relied on the coordinator to notice a tool-result string
and issue update_file_status by hand; when the coordinator forgot,
the file stayed stuck at 'proofreading pending' with all batches
complete. -
Proofreading completion used two field names. The reader path
(readEditingStatus, get_next_editing_step, aggregate stats, and
the Zod schema itself) checked 'proofread_complete'. The writer
path since v0.8.2 wrote 'proofreading_complete' to a different
field the reader never looked at. Result: harness set the flag,
reader reported 'Pending', coordinator issued a redundant
update_file_status that happened to write the correct field —
masking the bug most of the time and making it look like a
coordinator memory issue.
Same class of bug hit 'last_edited_phase': only ever updated by
update_file_status, so files completed by the harness alone kept
the previous phase's value (e.g. showing 'readability' after a
successful proofread).
Fix:
- New phaseCompleteField(phase) helper maps 'proofreading' to the
canonical 'proofread_complete'; other phases pass through. Every
writer routes through this helper so future name drift can only
happen in one place. - New markPhaseComplete helper called from the non-batched path of
all four batched specialists (dialog, style, readability,
proofreading). Idempotent — only no-ops when both the completion
flag AND last_edited_phase are correct, so stale values from
previous versions get repaired on the next specialist run. - Both completeBatch and setupBatching now set last_edited_phase
when marking a phase complete. - Reset map in index-tools switched to the canonical field name.
Tests: 6 new tests covering markPhaseComplete acceptance, name
mapping for proofreading, idempotency, stale-last_edited_phase
repair, and a completeBatch case locking in the field name. Total:
921 tests, all passing.
Full Changelog: v0.8.3...v0.8.4
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
v0.8.2
Release v0.8.2
Proofreader improvements:
- Auto-reset batch state when re-running the proofreader on a file
whose batches were all marked complete. Previously the tool would
silently short-circuit with an internal 'batches complete' message
which the coordinator paraphrased as 'file is clean'. - Fix field-name mismatch in reset_batch_progress that left the
proofreading completion flag stuck (proofread_complete vs
proofreading_complete). - Tighten the proofreader prompt: mandate paragraph-by-paragraph
scan, override the shared 'quality over quantity' guideline, and
require concrete verification evidence before returning
NO_CHANGES_NEEDED.
Full Changelog: v0.8.1...v0.8.2
v0.8.1
v0.8.0
v0.7.1
v0.7.0
v0.6.0
v0.5.0
v0.4.4
Full Changelog: https://github.com/cainhopwood/editbot/commits/v0.4.4
Full Changelog: v0.4.2...v0.4.4