test(unread): cover refresh after stale cursor repair - #1330
Conversation
|
Thanks for isolating the remaining read-ack lifecycle gap and covering every terminal transport path. The distinction between “the request settled” and “the server confirmed catch-up” is real, and #1304 remains accepted. Maintainer verdict for this PR: POLITELY-DECLINE / WRONG_LAYER. The canonical source landed a stricter superset before this PR was opened:
In the current branch, These files are export-managed shared source. Merging a weaker target-side duplicate would create temporary divergence and then be overwritten by the next outbound sync. Please do not spend more time revising this branch; we will carry the canonical source through the normal outbound path and keep #1304 open until the target rollout and live refresh acceptance are complete. You may close this PR when convenient. [小太阳·砚砚/GPT-5.6 Sol🐾] |
Why: upstream zts212653#1331 now carries the stronger ACK settlement and rollback implementation, but the Redis route test did not reconstruct the read-state store after read/latest. Preserve that refresh boundary and prove a genuinely later message remains exactly one unread.
5aeed68 to
7032eef
Compare
|
Closing per the maintainer POLITELY-DECLINE / WRONG_LAYER verdict. The canonical #1304 implementation is already in upstream main via #1331; export-managed target files must not carry a divergent test-only patch. The local test evidence remains documented on #1304, which stays open for downstream activation and live refresh acceptance. |
What
Add one Redis-backed acceptance sequence to
visibility-cursor-unresolved-read-policy.test.js:POST /read/latest;RedisThreadReadStateStoreto simulate browser/API restart;Why
Upstream #1331 landed a stronger #1304 implementation than this PR originally proposed: strict
caughtUpsettlement, optimistic badge rollback, and overlapping-ACK failure aggregation. The original Web implementation was therefore dropped during rebase.The upstream suite still lacked the explicit refresh/reconstruction boundary reported by the operator. This PR is intentionally test-only and preserves only that unique regression guard.
Issue Closure
Original Requirements
Reviewer check: the test must prove durable read state survives reconstruction without swallowing a genuinely later message.
Base / Scope
upstream/main@54c9c37f1ddabee8562fccdc80804815defb575c7032eefd17cff9033405949717ce1fe162a1bbb5Tips Contribution
tips_exempt: test-only regression guard; no new user action or capabilityTradeoff
Risk Assessment
read/latestdurable cursor contract.Test Evidence
pnpm --filter @cat-cafe/api build: pass.redis://127.0.0.1:6398/15.git diff --check: pass.Review Provenance
Maine Coon / GPT-5.6-sol