fix(view): keep snapshots anchored at the lazy tail#11
Merged
Conversation
Separate initial tail anchoring from follow state and arm bounded older preload only after backward navigation intent. Remove the misleading public notice option, which rendered ordinary embedder text as an error.
siriusctrl
marked this pull request as ready for review
July 22, 2026 10:20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
ViewFile::starts_at_tailcapabilityG/Endreturns to the tail, without changing follow detach/pause/reattach behaviorViewOptions::noticefield because it routed ordinary embedder text through the existing red error-notice pathWhy
The facade loaded the newest record batch but initialized non-follow snapshots at local line zero. A large initial batch therefore opened at the oldest visible record in that batch. Idle preload could also walk backward before the user requested history. Conversely, simply guarding preload with the current viewport state would strand a fully visible one-record tail because PageUp cannot move its local line number.
The new state separates three concerns: where the source initially anchors, whether it follows live appends, and whether the user has asked to load older history.
Validation
cargo fmt --all --checkcargo check --workspace --all-targets --lockedcargo clippy --workspace --all-targets --locked -- -D warningscargo test --workspace --all-targets --lockedcargo test --workspace --doc --lockedRUSTDOCFLAGS='-D warnings' cargo doc --workspace --no-deps --lockedfmtviewdependencycargo publish -p fmtview-core --dry-run --locked --allow-dirtycargo package -p fmtview --locked --allow-dirty --no-verifysttyFull root tarball verification still requires the normal release sequence: publish the next matching
fmtview-coreversion before verifying/publishing the root crate. The current publishedfmtview-core0.6.0 does not contain the new snapshot constructor from the base PR.