Repository navigation
test(dogfood): the api-action door's disabled pin reads #27842's sentence, not the ledger table name - #28095
Conversation
…tence, not the ledger table name The door's ACTION_DISABLED refusal now carries the end user's sentence (packages/objectql/src/action-activation.ts describeDisabled), which names Setup > Packaged automation and no system table. The pin asserted the old wording's table name and has been red on main since that sentence landed. It now asserts the ruled sentence and that the table name does not leak; the 409, the code and the not-banned assertions are unchanged. Claude-Session: https://claude.ai/code/session_01QSeKYmTYfaPbLQD4BJfomW Co-Authored-By: Claude <noreply@anthropic.com>
📓 Docs Drift CheckNothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 0 changed package(s)), so this run has no opinion about the docs. What this run could not see
Coarse fallback — 0 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
|
domain:devx#2 · os-justin · session_01QSeKYmTYfaPbLQD4BJfomW 席位核对 — ACCEPT · domain:devx#2 · head
|
Fixes #28082
Clause-②: no
Metadata-protocol: none
维护者速读
api-action-door-forward里「关掉 Ban User 后经动作入口调用」那条用例,原来要求 409 提示里出现系统表名sys_metadata_activation,现在改为要求提示是 meta: GET /meta/object serves which packaged actions are switched off beside the item, and the disabled-action refusal reads as a plain sentence #27842 裁定的白话句子(点名「Setup › Packaged automation」),并且不许出现该表名。ACTION_DISABLED代码和「用户没被封禁」三条断言原样保留。回滚即还原本 PR。packages/qa/dogfood/test/api-action-door-forward.dogfood.test.ts第 176–184 行(唯一改动处)。pnpm --filter @objectstack/dogfood exec vitest run --maxWorkers=2 test/api-action-door-forward.dogfood.test.ts(先建依赖闭包),预期 8/8 全绿;在 main 上同一命令预期第 178 行失败。What changes
packages/qa/dogfood/test/api-action-door-forward.dogfood.test.ts, theban_user OFF answers 409 ACTION_DISABLED through the doorcase. The message assertion that pinned the ledger table name now pins the sentence the engine actually returns (packages/objectql/src/action-activation.ts,describeDisabled, reached throughObjectQL.describeDisabledActionfromdisabledActionRefusalinpackages/runtime/src/action-execution.ts):This action is turned off for this deployment.;An administrator can turn it on again under Setup › Packaged automation;sys_metadata_activation.The 409 status, the
ACTION_DISABLEDcode and the not-banned assertions are unchanged. The shape copies the sibling helperexpectDisabledSentenceinpackaged-action-disabled-dispatch-live.dogfood.test.ts, which #27964 already flipped.This is a deliberate pin flip. Nothing is skipped, marked todo, retried or quarantined.
Tests
The same file, run both ways under the verify lock after building the dogfood dependency closure (
pnpm --workspace-concurrency=2 --filter '@objectstack/dogfood^...' build, VERDICT command-exit 0).Before the flip (origin/main f6adf48): exit 1, fails at L178
After the flip (1b2c59b): exit 0
Typecheck
pnpm --filter @objectstack/dogfood run typecheck: VERDICT command-exit 0.tsc --noEmit --listFilesin the package lists the edited test file (1 hit), so the typecheck covers it.Acceptance notes
packages/qa/dogfoodfor other refusal-message pins onsys_metadata_activationor on the pre-meta: GET /meta/object serves which packaged actions are switched off beside the item, and the disabled-action refusal reads as a plain sentence #27842 wording (is disabled —,activation ledger,Re-enable the packaged action,author your own action): none besides L178. The othersys_metadata_activationhits are ledger-table reads (const LEDGER,ql.find(...), SQL fixtures).packaged-action-disabled-dispatch-livealready pins the new sentence.packaged-activation-ledger-reachandmcp-system-object-action-exposureassert only the code and status.pull_requestormerge_group. This PR's first CI dogfood reading ismain's push battery after the merge. The local before/after readings above are the evidence for this file.Verification
Local subset at
1b2c59be8f(git rev-parse --short HEAD), derived bynode scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack(51 commands, exit 0). Each command's exit code was written to disk before any pipe.pnpm check:dual-build-cjs-loadsexits 3, PREREQUISITE NOT MET. It reads every package's builtdist/, and seven packages outside this diff's closure have none. NOT MEASURED locally, reason: no full workspace build. CI'sLint & Repo Gatesruns it.node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --ran ran.listexits 0 and reconciles:51 derived famil(ies) accounted for — 50 run, 1 NOT-MEASURED (1 DERIVED from a recorded exit 3).No changeset: the diff changes one test file in a private package (
@objectstack/dogfood,"private": true) and publishes nothing, henceskip-changeset. The families CI runs over the whole tree, the type-check lanes andtest:repoare left to this PR's check-runs.Generated by Claude Code