Repository navigation
docs(api): name both SDK lines in the #533 stale-guard deviation rows - #648
Conversation
Name both SDK lines in the #533 rows for commit-pack, diff-commit and restore-commit. SDK 1.17.1 builds a RefUpdateError from result.status. The new SDKs on SDK main fa4c317 pick RefGuardError only for the code ref_guard_failed, so our 412 becomes a RefUpdateError there too. The deviations end when gate G1 of #352 fires. Refs #647 _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_ Change-Id: I5a73497c3d908dc4430a43fe7c9fdaac04eb765a Signed-off-by: Thomas Kosiewski <tk@coder.com>
|
@codex review |
|
@codex security review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
🛡️ Codex Security ReviewSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Why
Three rows in
docs/explanation/wire-compatibility.mdkeep a staleexpected_target_shaoncommit-pack,diff-commitandrestore-commitat412precondition_failed(#533). Their reasonnamed only the Go SDK
1.17.1. The new SDKs on SDK mainfa4c317handle this
412in a different way, and the rows did not say so. Thisis part 1 of #647. Part 2 changes the status code and waits for gate G1
of #352.
What changed
The three rows now state:
1.17.1(@pierre/storage,pierre-storageandcode-storage-go) does with our412. It builds aRefUpdateErrorwhose status is
result.status, hereprecondition_failed.Upstream's
409hasresult.statusconflict.@pierre/sdk,pierre-sdkandgithub.com/pierrecomputer/sdk/go) do. They pickRefGuardErroronly for the code
ref_guard_failed, so our412becomes aRefUpdateError. A caller that retries withcurrent_shaworksagainst upstream and fails against open.storage.
api: problem-details later tiers (specific codes, instance, result envelope, git/LFS writers, problem+json) — held on SDK trigger #352 and Upstream drift (SDK main fa4c317): the new SDKs branch on ref_guard_failed; end the #533 412 stale-guard deviations when G1 fires #647.
No code changes.
Evidence
I read each claim in the SDK source (github.com/pierrecomputer/sdk):
fa4c317, Go:go/errors.go:110(RefGuardError),:163(
refGuardFailed),:244-258(the code check runs first, then a bodywith
resultgivesRefUpdateError).fa4c317, Python:python/src/pierre/_errors.py:119-124(
RefGuardError),:184-194(_REF_GUARD_FAILEDand the same orderin
api_error).fa4c317, TypeScript:typescript/dist/runtime/errors.js:83(
RefGuardError),:145-153(REF_GUARD_FAILEDand the same orderin
apiError).packages/code-storage-go/v1.17.1(35610abb, all three packagesat
1.17.1): Gocommit_pack.go:77-96andrepo.go:1483-1503,TypeScript
src/commit-pack.ts:63-77andsrc/index.ts:2026-2043,Python
pierre_storage/commit.py:142-176andrepo.py:2232-2246.Each one takes the error status from
result.statusand falls backto the HTTP status. None of them knows
ref_guard_failed.409bodyresult.statusconflict(docs/upstream/openapi.yaml:5455).412body has aresultobject and no top-levelcode(
wcFail,internal/api/handlers_write_commit.go:127, used at:555).Upstream audit evidence:
2026-10-30-0558UTC.Validation
python3 scripts/check-doc-links.py: broken links: 0. This includesthe README link and citation checks from ci(scripts): check links in every README #638 and ci(scripts): check README code citations #639.
python3 scripts/test_check_doc_links.py: 29 tests OK.Refs #647
Generated with
xum• Model:anthropic:claude-opus-5-5• Thinking:high