Repository navigation
fix: reject unknown Anthropic model cursors and document auth changes - #551
Open
tylerslaton wants to merge 2 commits into
Open
tylerslaton wants to merge 2 commits into
tylerslaton wants to merge 2 commits into
Conversation
tylerslaton
added this pull request to stack #552
October 17, 2026 20:43
commit: |
contextablemark
previously approved these changes
Oct 17, 2026
contextablemark
left a comment
Contributor
There was a problem hiding this comment.
Reviewed at 7a27660. The cursor fix and drift-gate changes are correct and adequately covered; no blocking findings.
Residual limitation: Anthropic catalog errors still omit the upstream body request_id. The gate explicitly constrains this known warning, so the change establishes status, error-type, and message parity rather than full response-body parity.
Base automatically changed from
blitz/response-consolidation/final-history
to
main
October 18, 2026 02:20
tylerslaton
dismissed
contextablemark’s stale review
October 18, 2026 02:20
The merge-base changed after approval.
The drift gate still required empty cursor pages after the server fix returned native 400 errors. Require 400 errors at head and allow old empty pages only in cached base evidence. Bind the known request_id warning, reject other evidence changes, and test the actual workflow CLI.
tylerslaton
force-pushed
the
tyler/fix-anthropic-model-cursors
branch
from
October 18, 2026 02:20
7a27660 to
c4f03b5
Compare
This branch has not been deployed
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.
Problem
Unknown
after_idandbefore_idvalues returned successful empty Anthropic model pages. Authentication docs missed the new native error-body migration details. The CI drift rule also required the old cursor behavior and rejected the corrected response.Why
SDK callers need an error for an invalid cursor. Apps reading the old string
error.codeneed to know that Anthropic omits it and Gemini/Vertex return numeric401. CI must check the new response while retaining its known missing-request-ID warning and the historical base comparison.Fix
Reject unknown Anthropic cursors with HTTP 400, including with lifecycle filters. Keep valid paging and empty filtered pages working. Update README, changelog, provider docs, cursor tests and the drift grading rule. Header enforcement stays opt-in.
The grading rule requires the exact status, error type, message and single known warning. It accepts the old empty-page policy only for cached base evidence. Regression tests mutate receipts, assertions and diffs to verify the gate still rejects mismatches. A saved actual CI receipt replay passes with 11 advisories and no blocks; this does not claim full response-body parity or fresh authenticated calls.
Validation: format, lint, typecheck, all 428 test files (17,456 passed; 11 existing skips), build, package exports, all 14 unchanged API reports, and actionlint with ShellCheck passed. The earlier free-RAM test failure passed unchanged. Separate Node/Bun consumers passed 48 cursor checks each plus the original 38 each.
Stacked above #542 using GitHub's native stack #552. The provider compatibility follow-up is #553, based on this PR. Merge only after required checks pass, in stack order.