revert(spec): take back the declaration-text snapshot, restore the 27 signature hashes - #19024
Conversation
… signature hashes This reverts commit d8b12fc. Executes the maintainer's ruling recorded verbatim on the card that carries this work: option C, revert the PR and let consumer compilation against spec@main be the shape gate instead. The direction is not re-argued here. One conflict, resolved mechanically. api-surface-declarations/root.txt was regenerated on main after the reverted commit; the revert deletes the whole directory, so that file goes with it (git rm). Nothing else in the reverted commit's file set needed a decision. The one path this branch does NOT restore to the reverted commit's parent is .github/workflows/lint.yml, which keeps the later, unrelated check:release-spec-changes step. Reverting that step is not this revert's business. Claude-Session: https://claude.ai/code/session_01JbZnqu8bt6YqfJsr9vaFb3 Co-authored-by: Claude <noreply@anthropic.com>
📓 Docs Drift Check
What this run could not see
Coarse fallback — 136 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
Two modify/delete conflicts, both the same mechanical shape as the one the revert itself carried: api-surface-declarations/automation.txt and data.txt were regenerated on main while this branch deletes the whole directory, so the files go with it (git rm). Nothing else in the merge needed a decision. Claude-Session: https://claude.ai/code/session_01JbZnqu8bt6YqfJsr9vaFb3 Co-authored-by: Claude <noreply@anthropic.com>
|
Skills-lane reading of the Read at
This is a reading, not a review of record: the revert is the spec seat's (os-bill, #19011), Generated by Claude Code |
|
席位记录( ①
|
Main regenerated packages/spec/api-surface-declarations/ui.txt after this branch deleted the directory, so the merge raised the same modify/delete it raised once before. Resolved the same mechanical way: git rm, because the revert removes the whole directory. Re-verified on the merge result: of the 31 paths the reverted commit touched, 30 are byte-identical to its parent; the one that is not is .github/workflows/lint.yml, whose only difference is the check:release-spec-changes step a LATER commit added, compared hunk body to hunk body and identical. api-surface-signatures.json is back with its 27 top-level keys, defineAction through defineWebhook. Claude-Session: https://claude.ai/code/session_01JbZnqu8bt6YqfJsr9vaFb3 Co-authored-by: Claude <noreply@anthropic.com>
…artconfig-precedence-half-2 Resolved three modify/delete conflicts by taking main's DELETION: `packages/spec/api-surface-declarations/` was reverted off main whole by #19024 (the declaration-text snapshot is taken back and the 27 signature hashes restored), together with its `check:`/`gen:` scripts. This branch had only regenerated three of those files; with the artefact and its gate gone there is nothing for those edits to be about.⚠️ Committed BEFORE regenerating, per scripts/pm/os-regen-merge.sh step 3: the os-regen driver exits 0 while silently dropping one side, so the regeneration belongs in its own commit on a known-good base. Claude-Session: https://claude.ai/code/session_01LvwGppdonww4zGLWZo5rho Co-authored-by: Claude <noreply@anthropic.com>
…ggester-opposite-sibling Resolves 4 delete/modify conflicts in packages/spec/api-surface-declarations/ (api.txt, kernel.txt, root.txt, security.txt) by taking main's deletion: #19024 retired the whole declaration-text snapshot mechanism (script, package.json scripts, check:generated gate, files) and this branch had only modified those now-retired files. Verified check:api-surface and check:generated still pass, and that the branch's new polarity-axes.ts exports are not part of the public barrel (not re-exported from shared/index.ts), so no export-recording artifact needs a change. Co-Authored-By: Claude <noreply@anthropic.com>
…es option, and a pin reads the ruleset The size limb (and the governed limb beside it) prescribed 人工直合 — "the maintainer's own click" — without naming which click. Ruleset `main` mandates the merge queue and lists this guard as a required context, so the only Merge that is not an enqueue is the Merge button's bypass-rules option, offered only while the ruleset configures a bypass actor. With none configured the remedy named a terminal nobody could reach: PR #19024 was enqueued three times and refused three times. The four remedy sentences (the header's and the three rendered ones) now name that option and keep 人工直合 as the NAME of the act. A new self-test battery judges the remedy text against a RECORDED reading of `GET /repos/objectstack-ai/objectstack/rulesets/12119582`: red when `bypass_actors` is present and empty, red when the remedy drifts back to a bare click, and a pass that PRINTS its reading when the field is unreadable — which is what every seat and Actions token gets, `administration` being outside the 17 permissions a workflow may grant. The reading is recorded rather than fetched because this self-test is the required guard job's first step and is declared offline; a live read would answer "unreadable" on every CI run, asserting nothing while adding a network dependency to a merge precondition. Claude-Session: https://claude.ai/code/session_017ETYWqMQD4qMtZzAGovWNi Co-authored-by: Claude <noreply@anthropic.com>
Resolves delete/modify conflicts on the five api-surface-declarations files this branch had modified (api.txt, data.txt, root.txt, system.txt, ui.txt) by taking main's deletion of the entire directory (commit 2277d1f, the #19024 revert). That mechanism is fully retired on main: no script regenerates or reads packages/spec/api-surface-declarations/ anymore, and the replacement mechanism (api-surface/*.json + api-surface-signatures.json) does not capture this PR's kind of change per its own documented scope (key-level narrowing inside a schema, not a factory-signature or export-kind change) — consistent with this PR never having touched those files. The actual carrier for this PR's surface change, authorable-surface/ui.json, merged and regenerated cleanly and still declares ui/BulkActionParam:dependsOn. Regenerated after the merge: packages/spec/authorable-surface/ (via gen:schema), content/docs/references/** (via gen:docs), docs/audits/2026-07-unknown-key-strictness-ledger.counts.md (via gen:strictness-ledger), and src/migrations/registry.ts (via gen:migration-registry) — all previously flagged by the merge driver as generated/not-text-merged. Co-Authored-By: Claude <noreply@anthropic.com>
…opertynames-not-pattern-arm
Conflicts resolved:
- packages/spec/api-surface-declarations/{api,system}.txt (modify/delete):
took origin/main's deletion. #19024 reverted the declaration-text snapshot
wholesale on main - the generator (build-api-surface-declarations.ts), the
package.json scripts, the check-generated entry and the .gitattributes
merge=os-regen row are all gone, and api-surface-signatures.json is back.
This branch's only touch of those two files was a regeneration commit
("member order only"), so nothing hand-authored is lost by the deletion.
- packages/spec/dropped-refinements.baseline.json (content): the conflict was
confined to the `measured` census block. The entries map text-merged, so the
header counts describe neither side. Resolved to a committable state here;
the regeneration commit that follows carries the corrected entry the gate
itself prints.
Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1
Co-authored-by: Claude <noreply@anthropic.com>
Fixes #19011
Reverts PR #18971 (squash commit
d8b12fca9) under the maintainer's ruling C, recorded verbatim on the card: the 12 MiB declaration-text snapshot comes out, and consumer compilation againstspec@mainbecomes the shape gate instead. ⛔ The direction is not re-argued here.The branch was produced by the dispatched
domain:specseat (claim comment on #19011,session_01JbZnqu8bt6YqfJsr9vaFb3); this PR only opens it for review.What lands
git revert d8b12fca9, 31 files, +119 / −238,361:packages/spec/api-surface-declarations/(17 shards, 237,706 lines) and its generatorpackages/spec/scripts/build-api-surface-declarations.ts;packages/spec/api-surface-signatures.json(the 27 hashes) as the interim shape pin;scripts/regen-artifacts.mjs,scripts/pm/check-widening-tells.mjs,scripts/pm/dispatch-gates.mjs(CLASS_EIGHTH),scripts/check-published-files.mjs,.github/workflows/lint.yml,.gitattributes,docs/spec-generated-artifact-sharding.md,packages/spec/package.json(files[]);.changeset/16045-spec-declaration-text-snapshots.md.Faithfulness, measured rather than asserted
Of the 31 files #18971 touched, 30 are restored byte-for-byte to the reverted commit's parent
a48496640— compared by blob sha, not by eye.The one path that is deliberately not restored is
.github/workflows/lint.yml, which keeps the later, unrelatedcheck:release-spec-changesself-test step (#18889, landed after #18971). Reverting that step is not this revert's business; the diff against the parent blob is exactly those 12 lines and nothing else.Merges cleanly into
origin/mainat9ee8e3510(git merge-tree --write-tree, no conflict).Why no changeset
skip-changeset: #18971 was never released — its own changeset was still pending onmain. Reverting the code and its pending changeset leaves the next release byte-identical to what it would have been before #18971 landed, so this PR releases nothing. An empty-frontmatter changeset is not a route (#5471).Landing
⛔ Not a seat's landing. Under the maintainer's second ruling of the same exchange (「修改代码量超过某个行数(比如5000)就应该人工审核」), a 238,480-line PR is maintainer-landed. Opened as a draft; review requested from
GOVERNED_APPROVERS.Not in this card
The consumer-compile gate that replaces the snapshot — objectui's half is filed on objectui; cloud's half is outside this session's write scope and was named to the maintainer in chat.
🤖 Generated with Claude Code