Repository navigation
ci(spec-shape-gate): register the retirement of a page action row's own patch - #24485
Merged
objectstack-fleet[bot] merged 1 commit intoOct 19, 2026
Merged
Conversation
…wn patch One entry in scripts/ci/spec-shape-retirements.json so the Spec Shape Gate reads objectui's action-button undo test, which still authors `patch` on an `action:button` node, as a known retirement instead of a new break. The pattern names the objectui file, TS2353 and the diagnostic's full first-line message, read from the check-run annotation of job 117911140691. Claude-Session: https://claude.ai/code/session_01WnW7HvfnfHbLg1fpkHX3Mu Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
席位核对ACCEPT ·
Generated by Claude Code |
objectstack-fleet
Bot
deleted the
claude/issue-24394-spec-shape-retirement
branch
October 19, 2026 07:44
This was referenced Oct 19, 2026
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.
Part of #24394
Clause-②: no
Aftercare for #24394. This PR adds one entry to the Spec Shape Gate's retirement registry, so the gate reads the retirement of a page action row's own
patch(PR #24442, merge commit69f342b92470e0b66aa9b17ccd2fc7db04e4e568) asknown (registered: objectstack-ai/objectui#13022)instead of red. #24394 keeps itscompletedstate, and this PR is only its registry half. objectstack-ai/objectui#13022 is the consumer card and is not addressed here.What changed
scripts/ci/spec-shape-retirements.jsongets one entry, in the grammarparseRegistryreads (scripts/ci/spec-shape-gate.mjs, THE REGISTRY):retired: what retired (a page action row's ownpatchonaction:button,action:iconand theaction:group/action:menumember), and what objectui still authors (its action-button undo test setspatchon anaction:buttonnode).objectstack_pr24442,objectstack_commit69f342b92470e0b66aa9b17ccd2fc7db04e4e568,downstream_cardobjectstack-ai/objectui#13022,registered_at2026-10-19.matches: one pattern. It names the objectui file, the TS code and the diagnostic's full first-line message, so it covers only the diagnostic it was measured from (the precedent is PR ci(spec-shape-gate): register the retirement of the page component's visibility and the view form's visibleOn #23920).packages/components/src/renderers/action/__tests__/action-button-undoable-11168.test.tsxThe entry was written by a script from the annotation's own message bytes, not retyped. A JSON round-trip of the file is byte-identical, so the two existing entries are untouched. The diff is +14 / -0.
There is no change to the reader, its grammar, the workflow, or any objectui file.
Where the diagnostic was read
pull_requestrun,39206747055, job117911140691. Its head iseb080715a5. The objectstack commit under test is the merge reffaa8cd2403a0, whose parents areff4840756d(main) andeb080715a5. That run reports exactly ONE new diagnostic, the one above. It was read from the job's check-run annotations through REST. The job log itself could not be downloaded here: its blob host refuses this container's proxy (CONNECT 403).69f342b924: the compare API saysfaa8cd2403a0is 8 ahead of and 0 behind69f342b924, so it contains the retirement. Line 64 of that test ispatch: { status: 'done' },inside anaction:buttonnode'sproperties, and column 14 isstatus. The type it fails against is theretiredKey()tombstone that69f342b924put on the rowpatch(rowPatchRetired,packages/spec/src/ui/component.zod.ts). The test file read is from objectuimain4484a11041.@object-ui/componentsrunstype-checkastsc --noEmit && tsc -p tsconfig.test.json. Itstsconfig.jsonexcludes**/__tests__/**, so only the second half compiles this file. That means the first half passed, and the second half reported its whole program, which is this one row. The annotations name no other package.mainafter5eb5400309existed when this PR was opened. The newest is39207019385, on31ce45c071, created 05:55Z. GitHub's scheduler is lagging across the repo: the newest scheduled run of any workflow was created at 06:25Z. This PR's ownpull_requestrun compiles objectuimainagainst this registry, and it is the first reading of the entry itself.6260806564: that comment quotes the message as starting'status' does not exist in type. Its full first line startsObject literal may only specify known properties, and. The shorter quote would still have matched as a substring, but the full first line is what is registered here.How it was proved locally (at
dd4359bf47)The gate's full objectui compile was not run here. Per the dispatch, objectui was not built. The reader was exercised offline through the CI step itself:
node scripts/ci/spec-shape-gate.mjs report --log LOG --sha 69f342b92470e0b66aa9b17ccd2fc7db04e4e568 --status 2 --downstream DS --registry REG. Here DS is a synthetic objectui workspace mapping@object-ui/componentstopackages/components. LOG is one turbo-prefixed line rebuilt from the annotation's bytes:@object-ui/components:type-check: src/renderers/action/__tests__/action-button-undoable-11168.test.tsx(64,14): error TS2353: ....spec-shape-gate: 1 diagnostic(s), all registered retirements -- known, not red.e11ae4b6b0(BASE)1 NEW diagnostic(s) in 1 objectui file(s)'title'for'status'1 NEW diagnostic(s), and this entry is listed as matching nothingaction-icon-undoable.test.tsx1 NEW diagnostic(s), and this entry is listed as matching nothingnode scripts/ci/spec-shape-gate.mjs --self-test: exit 0,spec-shape-gate --self-test: 60/60 passed across 7 batteries. The self-test runs on its own fixture, not on this file, so the table above is the proof for the entry.node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderived 22 commands from this diff (1 path). All 22 exit 0, each code captured before any pipe. Among them,pnpm check:spec-shape-gatereports 60/60,pnpm check:nul-bytesreportsOK (scanned 12305 text file(s) ...), andpnpm check:cross-package-test-inputsreportsOK.--ranthen reports22 derived, 22 run, 0 NOT-MEASURED, 0 UNRUN.Changeset
No changeset.
scripts/ci/sits under the private root package (@objectstack/spec-monorepo,private: true). Nopackage.jsonunderscripts/ships it, and only the gate's script and workflow read the registry.skip-changesetapplies.Acceptance notes
Generated by Claude Code