656089432f
Final-review fixes: - CRITICAL: optimisticApply no longer re-captures `original` from an already-applied buffer after a window reload (in-memory `applied` set is empty post-reload). A proposal already carrying `original` is marked applied and skipped, so Reject's revert target survives save+reload (INV-51/54). Adds a reload-safety host-E2E that reproduces the prior-session state. - MINOR: the preview toolbar +N/-N summary now counts against the landed text (current minus pending proposals) via the new pure landedTextOf(), so a pending change is shown once (as a proposal), not double-counted (INV-50). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>