Skip to content

Fix/local history bugs - #60

Closed
ChenZhenIO wants to merge 15 commits into
mainfrom
fix/local-history-bugs
Closed

ChenZhenIO wants to merge 15 commits into
mainfrom
fix/local-history-bugs

Conversation

@ChenZhenIO

Copy link
Copy Markdown
Collaborator

No description provided.

albert-gee and others added 15 commits October 22, 2026 02:42
Scope focus-only caret reveal suppression to editor fields, retain the last editing target across desktop suspension, and preserve precise content-relative viewport sessions. Guard stale focus and scroll restoration, retain table ranges, and handle unpainted retained-table geometry.

Add Linux lifecycle, selection/session/Source/workspace regressions and isolated native focus acceptance tools. Retain verification evidence and limitations in the development report.
Bound typing transactions by monotonic age and accumulated size, and give editor sessions distinct group identities. Route document field actions through the shared history, including exhausted operations.

Reconcile accepted source and editing positions independently of parent frames, reject retired asynchronous publications, and retain displaced content at whole-document replacement boundaries.

Protect each distinct pre-traversal source with independent retained recovery work. Add deterministic, application, persistence and native GTK regressions, and document the durability boundary.
Use the production workspace controller with memory stores for both fifteen-minute editor regressions. Dispatch Ctrl+Z and Ctrl+Shift+Z and compare shared source, visible controllers, historical Source caret and live rich serialization. The original grouping still fails both unchanged group-bound assertions.
Share position-aware split ownership for physical Enter and newline input, preserve heading identity and authored state, retain list subtrees, and stage rejected selection edits atomically.

Preserve zero-width inline objects and enclosing formatting, correct nested checkbox ownership and empty-task serialization, and reject read-only structural history changes. Validate source rebinding, undo and save/reopen through production parser, widget, workspace and isolated native Linux regressions.

Record failing-before/passing-after evidence, complete suite and release-build verification, and native acceptance results in the development report.
Restore semantic anchors for hard-break and blank-line commands using the actual clamped insertion offset and length instead of an ambiguous text diff. Keep existing object boundary affinity and other editing paths unchanged.

Cover existing and consecutive breaks, multiple formatted images, object boundaries, publication, local and workspace history, and real saved-file reopening. Retain controller, widget and isolated native Linux failing-before/passing-after evidence and document the pre-existing spelling deadline failure in the broader suite.
Preserve document-owned history, immediate traversal synchronization and
bounded grouping alongside editor focus, selection and viewport restoration.
Keep regression coverage from both parents and repair reproduced integration
failures in scroll-hook ownership, pre-edit snapshots and rejected-edit history.
Retain command focus for non-editable selection endpoints without frame retries.

Document the full-suite, pinned Linux build and isolated native verification.
…fety

* Implement `LocalHistoryBatchReader` in `FileLocalHistoryStore` to batch read revisions and optimize search performance.
* Persist document identities independently in `documents.json` and improve unindexed capture handling during index recovery.
* Add `_LocalHistoryLossProtection` checks to guard entity deletions and external replacements against concurrent disk changes.
* Refactor local history restore flows in comparison and workspace controllers with recovery state tracking, workspace navigation prompts, and final newline policy matching.
* Observe external and authoritative note replacements separately using `LocalHistoryCaptureReason.externalChange`.
@ChenZhenIO ChenZhenIO self-assigned this Oct 23, 2026
@ChenZhenIO ChenZhenIO closed this Oct 23, 2026
@ChenZhenIO
ChenZhenIO deleted the fix/local-history-bugs branch October 23, 2026 21:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants