Skip to content

fix: expire cursors after feed snapshot replacement - #56

Merged
AnderEnder merged 2 commits into
mainfrom
fix/audit-pagination-snapshots
Oct 21, 2026
Merged

AnderEnder merged 2 commits into
mainfrom
fix/audit-pagination-snapshots

Conversation

@AnderEnder

@AnderEnder AnderEnder commented Oct 21, 2026 •

Copy link
Copy Markdown
Owner

A cache refresh could replace a feed window with the same number of items between pages, silently repeating or skipping entries. New cursors record a digest of the filtered ordered item list and return CURSOR_EXPIRED when a partially delivered feed changes; callers restart and reconcile previously received ids.

Keep legacy cursors readable with their count-based warning behavior. A feed resumed at offset zero remains valid, since none of its items have been delivered. Reserve token headroom for the added digest. Includes consolidated README, contributor guidance, ADR-0025, and implementation evidence for this stack.

Validation: formatting, clippy with warnings denied, all 297 tests, release build, and optimized-binary smoke checks. The regression changes a cached item without changing the item count and verifies cursor expiry. Independent review found no blocking issues; its Markdown entity finding was fixed in the source-text PR.

PRs #53 and #54 are merged. Remaining merge order: #55 → #56.

Targets #55; merge #55 first.

@AnderEnder
AnderEnder force-pushed the fix/audit-pagination-snapshots branch from 6d1c768 to 844a532 Compare October 21, 2026 13:34
@AnderEnder
AnderEnder force-pushed the fix/audit-cli-and-discovery branch from fe0ef41 to e577250 Compare October 21, 2026 13:34
Base automatically changed from fix/audit-cli-and-discovery to main October 21, 2026 13:39
@AnderEnder
AnderEnder merged commit 2f8ef18 into main Oct 21, 2026
6 of 12 checks passed
@AnderEnder
AnderEnder deleted the fix/audit-pagination-snapshots branch October 21, 2026 13:46
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.

1 participant