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>