You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
spec/engine: ragPipelines is listed in PLURAL_TO_SINGULAR, METADATA_ARRAY_KEYS and two runtime maps, yet no stack can declare it — retire the listings (or implement the collection) #31380
domain:server#3 · os-project-manager · session_01FEkQ5pXkgNXVpCn2GZDjyy
Filing gate: ① a declared-but-unreachable collection (declared ≠ enforced), carried from contract review 6717571232 on PR #31375 (out-of-scope finding, escalated to the seat).
Reach: measured by that review on PR #31375's head: defineStack({ ragPipelines: … }) is refused (the stack schema declares no ragPipelines key), while four registries list it. The gate scripts/check-stack-collection-maps.mjs waives it as "DRIFT, recorded not blessed (#6242 row 2)" — and #6242 is closed, so the drift has no open carrier.
Dedupe (open AND closed): ragPipelines → 10 hits, rag_pipeline → 7 hits; the only open hit is #30803 (bare-name phase 1, unrelated). #6242 (closed) and #2657 (closed, kinds B/C) are the history.
Reader: the lane triage assigns (the listings sit in packages/spec and packages/objectql, so the spec red line applies); dispatched from pm:queue.
Today (origin/maind0512c2f+, measured by git grep -n ragPipelines)
packages/spec/src/meta-spelling/manifest-collection-spelling.ts:93 — ragPipelines: 'rag_pipeline' in PLURAL_TO_SINGULAR (a published spec export), and its generated copy meta-url-data.generated.ts:40.
packages/objectql/src/engine-top-level.ts:4078 — 'ragPipelines' in METADATA_ARRAY_KEYS.
packages/spec/src/kernel/metadata-type-schemas.ts:232 — "rag_pipeline is deliberately NOT bound: it has no stack collection to take a schema from".
Task (retire route, the default under zero pull)
Remove ragPipelines from every listing above (and regenerate the generated spelling file); drop the four waiver rows so the gate holds the maps to the schema with no exception for it.
Measure first that nothing reads rag_pipeline as a live kind (a /meta/rag_pipeline read, a stored item, the URL-spelling contract); if anything does, stop and report — that becomes a decision card (implement vs retire), not this card.
Changeset per published package touched; removing a key from a published spec export is a narrowing, so the PR owes a contract-review-tier review before the queue.
Clause-②: no (narrowing) · Metadata-protocol: narrowed (only if the dev's measurement shows a reachable reader; otherwise none, since no stack can carry the key today).
Suggested-grade: p3 · inert today (no stack reaches it), costs only a misleading declaration.
p2: no user is harmed today, but an agent reading the registries believes the platform has a RAG-pipeline collection. Lane domain:spec, because the listings start in packages/spec; the engine and runtime rows move in the same PR. The default is retirement (zero pull ⇒ retire), via the spec-property-retirement playbook. Implementing it as a real collection is a new capability and goes on its own decision card. finding removed, pm:queue.
Claim: PM loop round 4 · 2026-11-08T06:49Z
Session: session_017ihL2c5JNbvoGqve83Ydbk (card thread; dispatched by seat session session_017ihL2eAG5J8aqAyPZif4BJ)
Account: marchtian
Branch: claude/project-thread-xl3k2d
Worktree: the card thread's own container checkout
Domain: domain:spec
Seat: domain:spec#4
Ruling-ref: triage 6717949516 ("The default is retirement (zero pull ⇒ retire), via the spec-property-retirement playbook.")
File surface: packages/spec/src/meta-spelling/manifest-collection-spelling.ts (+ generated meta-url-data.generated.ts) and the two spec tests naming it; packages/objectql/src/engine-top-level.ts (METADATA_ARRAY_KEYS) + two objectql tests; packages/metadata/src/plugin.ts; packages/runtime/src/app-plugin.ts (probe list); scripts/check-stack-collection-maps.mjs (waiver rows); changesets per the playbook. The objectql/metadata/runtime rows are domain:server files carried by this spec-lane PR as triage routed.
Container & model: S, mode:thread, model: default tier, effort: default; Fable review of the spec diff before ACCEPT (the maintainer's standing spec rule)
Clause-②: no (narrowing)
Metadata-protocol: none
Responsibility: n/a — declared ≠ enforced listing, zero pull
Thread-read: 6717949516
Premise: holds (git grep ragPipelines origin/main lists the four registries; defineStack declares no such key); the dev re-measures
Serial constraints cleared: none (disjoint from #31344 and #31367)
{
"issue": 31380,
"status": "done",
"branch": "claude/project-thread-xl3k2d",
"pr": "https://github.com/objectstack-ai/objectstack/pull/31456",
"session": "session_017ihL2c5JNbvoGqve83Ydbk",
"premise_still_valid": true,
"summary": "Retired ragPipelines from PLURAL_TO_SINGULAR (+ regenerated META_URL_TO_SINGULAR), objectql METADATA_ARRAY_KEYS, metadata ARTIFACT_FIELD_TO_TYPE and runtime APP_CATEGORY_KEYS, and dropped the four waiver rows of check-stack-collection-maps (green with no waiver; re-adding the probe row turns it red). Per the seat's ruling rag_pipeline also leaves the /meta URL-spelling contract like theme: writes get the unrecognised-type refusal (400 INVALID_REQUEST), /meta/types stops advertising it; D3 semantic entry meta-type-rag-pipeline-retired + step-18 rationale fragment (order 122); stack guidance prescription for ragPipelines. Specimens moved to connector (no-static-entry control) and rag_pipeline joins theme on the refused/withdrawn side; the dogfood unserved-export case now injects a vocabulary omission for connector because the showcase has no other exportable-but-unlisted type.",
"tests": "head 0f4f7ccc (merged origin/main ae816c40b, full pnpm build exit 0): spec test exit 0 (822 files / 25980 tests), metadata-protocol exit 0 (326 / 22562), objectql exit 0 (569 / 11547), metadata exit 0 (70 / 972), runtime exit 0 (555 / 8957); typecheck exit 0 for all five; eslint --no-inline-config on touched files exit 0. Reverse verification of the gate: APP_CATEGORY_KEYS with ragPipelines re-added -> check-stack-collection-maps exit 1 naming it; restored by byte copy (grep count 0). ea83f528 only adds '!' to the changeset summary line; adr-0087-registration, changeset-no-major and empty-changeset re-run on it, exit 0.",
"gates": "node scripts/pm/dispatch-gates.mjs --commands on 0f4f7ccc: 118 families, each recorded CMD :: exit N before any pipe; 117 exit 0; node scripts/check-plugin-teardown-shape.mjs --self-test exit 3 = NOT MEASURED (its pinned positive-control commit is unreachable from this shallow clone; CI runs it). --ran: '118 derived famil(ies) accounted for — 117 run, 1 NOT-MEASURED'. First pass on the pre-merge head also caught check:test-source-alias exit 1 on the two edited metadata-protocol suites -> fixed with the module-top lint preload, then exit 0. CI check-runs: in_progress at report time.",
"dogfood_battery": "0f4f7ccc · os-verify-lock VERDICT command-exit 0 · Test Files 438 passed / 3 skipped (441) · Tests 3622 passed / 41 skipped (3663) · no failures",
"fable_review": "PASS — PR comment 6719468582; round 1 two should-fixes (export-door prose, stack guidance entry) fixed in 5dc7a5e9, incremental round 2 PASS",
"line_budget": "25 files, +298 / -91 vs merge base ae816c40b (well under 3000)",
"files_changed": [".changeset/31380-rag-pipelines-listings-retired.md", "packages/spec/src/meta-spelling/manifest-collection-spelling.ts", "packages/spec/src/meta-spelling/meta-url-data.generated.ts", "packages/spec/src/meta-spelling/metadata-url-spelling.ts", "packages/spec/src/kernel/metadata-type-schemas.ts", "packages/spec/src/kernel/metadata-type-schemas.test.ts", "packages/spec/src/stack.zod.ts", "packages/spec/src/stack-top-level-strict.test.ts", "packages/spec/src/migrations/entries/semantic/18.meta-type-rag-pipeline-retired.ts", "packages/spec/src/migrations/registry.ts.template", "packages/spec/src/shared/metadata-collection.test.ts", "packages/spec/src/shared/metadata-url-spelling.test.ts", "packages/metadata-protocol/src/protocol-discovery-and-bases.ts", "packages/metadata-protocol/src/protocol.meta-types-mint-door-agreement.test.ts", "packages/metadata-protocol/src/protocol.unrecognised-meta-type.test.ts", "packages/objectql/src/engine-top-level.ts", "packages/objectql/src/engine-nested-plugin-collections.test.ts", "packages/objectql/src/manifest-service-residual-objects.test.ts", "packages/objectql/src/metadata-validation-sweep.test.ts", "packages/objectql/src/protocol-meta.test.ts", "packages/metadata/src/plugin.ts", "packages/runtime/src/app-plugin.ts", "packages/qa/dogfood/test/package-export-type-read-failure.dogfood.test.ts", "scripts/check-stack-collection-maps.mjs", "scripts/check-platform-checklist.mjs"],
"deviations": [
"PR title and changeset summary carry '!' (refactor(spec)!:) where the order suggested none: the change is a declared (narrowing), i.e. BREAKING.",
"Declaration lines differ from the order's starting point: Metadata-protocol narrowed (not none), per the seat's ruling after the measurement that /meta accepted rag_pipeline.",
"Added a stack guidance entry for ragPipelines (Fable S2) beyond the card's listed surface.",
"Cloud producer census NOT MEASURED (repo not readable from this session); named in the PR body for the seat."
],
"open_questions": [],
"out_of_scope_findings": [
"carrier: none · noted, not filed — .changeset/30803-bare-name-ai-family.md:20 (another card's changeset) uses rag_pipeline as an example type and will read stale after this lands; a one-word swap for that card's owner.",
"carrier: none · noted, not filed — check-plugin-teardown-shape --self-test cannot run on a shallow clone (pinned positive-control commit); known, CI-covered."
],
"mcp_calls": "3 — mcp__github__issue_read x2 (card body, comments), mcp__github__pull_request_read x1 (get_comments read-back); no write tool",
"api_writes": "3 — relay pr_create (POST /repos/objectstack-ai/objectstack/pulls + POST issues/31456/assignees), post-stamped comment POST issues/31456/comments (Fable verdict), post-stamped comment POST issues/31380/comments (this report)",
"cross_lane": "objectql/metadata/runtime rows are domain:server files moved in this spec-lane PR per triage; the merge with origin/main (15 commits) had no conflict in engine-top-level.ts, app-plugin.ts or plugin.ts"
}
Contract review at CONTRACT_REVIEW_TIER (narrowing face, whole diff outside prose): round 1 PASS at ea83f528 (6719545627) with two should-fixes: the refusal was stated unconditionally although the write door's legacy-namespace exemption keeps a deployment that already holds rag_pipeline rows writable until they are deleted, and the "no producer" claim was stated as fact while cloud was not measured. Both were fixed in prose at b108998e; delta PASS 6719630053, 0 open findings.
Declared Clause-②: no (narrowing), Metadata-protocol: narrowed, four packages minor, refactor(spec)! with the BREAKING banner and one ADR-0087 registration line: confirmed. This supersedes the claim line's Metadata-protocol: none, which was written before the dev measured that the /meta URL contract served the type; the seat ruling retired that contract entry with the listings (theme precedent 35ad101).
Changeset prose checked sentence by sentence against the diff: the Clause-② line; the @objectstack/spec bullet (400 refusal, /meta/types, "the refusal is not unconditional"); the objectql, metadata and runtime bullets; the package export bullet (export keyed on PLURAL_TO_SINGULAR, residue readable and deletable, last delete closes the namespace, pair install refuses a non-empty ragPipelines); and the remedy. All hold.
The PR body's "改了什么", "风险与回滚" and the spec paragraph were brought into line with the exemption by the seat (body edit, signed trailer).
Path face: 25 files, 401 lines, NOT governed (check-governed-merges exit 0), so Tier S. It lands on green CI through the merge queue.
Cloud rag_pipeline producers: NOT MEASURED, because the cloud repository is outside this session's reach. Accepted for landing for three reasons: (a) no stack could ever declare the key, so a producer could only be a raw PUT /meta/rag_pipeline client; (b) a deployment that already holds rows keeps write acceptance through the legacy-namespace exemption, so an existing cloud writer is not cut off by this change; (c) the prose now limits the census to the measured repos. Any cloud follow-up is the cloud seat's to file.
Not a contract face: no schema, no declaration line and no prose moved, so contract review records 6719545627 + 6719630053 stand for this head without a new round.
Dev swept the other tests that import the collection tables for hard-coded count floors, found none, and ran the uncovered importers (client, rest, spec script pin, ui app-access probe) green.
merged 2026-11-08T10:38:46Z through the queue, merge commit 39aa3f64db2694db7de5968634b21aeba11eef34, landed head 36e622b38 (contract review PASS 6719545627 + delta PASS 6719630053 at b108998e3; ACCEPT 6719636287, carried to 36e622b38 by the test-floor note)
queue
first queue build (run 42469827719) red at check:eager-closure: the i18n-locale-en chunk was over by 0.0 KB because of the en strings of #31465, which was grouped ahead of this PR and was itself dequeued at 10:07Z. This PR moves no ui bytes, so it was re-queued once and merged
card
closed completed by Fixes
State: pm:dispatched removed. Residue, recorded only: the #30803 changeset uses rag_pipeline as an example and now reads as stale. Cloud rag_pipeline producers are still NOT MEASURED. Through the write door's legacy-namespace exemption, an existing writer keeps working until its rows are deleted.
Activity
objectstack-fleet commentedon Nov 8, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: audit · p2 ·
domain:spec· 2026-11-08T05:54Z⛔ Not a claim.
ragPipelinesis listed in four registries: specPLURAL_TO_SINGULAR, engineMETADATA_ARRAY_KEYS, the metadata plugin and runtime. ButdefineStackrefuses the key, and the collection-map gate waives it as drift. Declared, never enforceable. Measured on PR feat(objectql)!: an agent and a skill hold one name per package (bare-name phase 1, 4/4) #31375's head.domain:spec, because the listings start inpackages/spec; the engine and runtime rows move in the same PR. The default is retirement (zero pull ⇒ retire), via thespec-property-retirementplaybook. Implementing it as a real collection is a new capability and goes on its own decision card.findingremoved,pm:queue.Generated by Claude Code
objectstack-fleet commentedon Nov 8, 2026
domain:spec#4 · marchtian · session_017ihL2eAG5J8aqAyPZif4BJ
Claim: PM loop round 4 · 2026-11-08T06:49Z
Session:
session_017ihL2c5JNbvoGqve83Ydbk(card thread; dispatched by seat sessionsession_017ihL2eAG5J8aqAyPZif4BJ)Account:
marchtianBranch:
claude/project-thread-xl3k2dWorktree: the card thread's own container checkout
Domain:
domain:specSeat:
domain:spec#4Ruling-ref: triage 6717949516 ("The default is retirement (zero pull ⇒ retire), via the
spec-property-retirementplaybook.")File surface:
packages/spec/src/meta-spelling/manifest-collection-spelling.ts(+ generatedmeta-url-data.generated.ts) and the two spec tests naming it;packages/objectql/src/engine-top-level.ts(METADATA_ARRAY_KEYS) + two objectql tests;packages/metadata/src/plugin.ts;packages/runtime/src/app-plugin.ts(probe list);scripts/check-stack-collection-maps.mjs(waiver rows); changesets per the playbook. The objectql/metadata/runtime rows aredomain:serverfiles carried by this spec-lane PR as triage routed.Container & model:
S,mode:thread,model: default tier,effort: default; Fable review of the spec diff before ACCEPT (the maintainer's standing spec rule)Clause-②: no (narrowing)
Metadata-protocol: none
Responsibility: n/a — declared ≠ enforced listing, zero pull
Thread-read: 6717949516
Premise: holds (
git grep ragPipelines origin/mainlists the four registries;defineStackdeclares no such key); the dev re-measuresSerial constraints cleared: none (disjoint from #31344 and #31367)
objectstack-fleet commentedon Nov 8, 2026
domain:spec#4 · marchtian · session_017ihL2c5JNbvoGqve83Ydbk
os-dev-report
{ "issue": 31380, "status": "done", "branch": "claude/project-thread-xl3k2d", "pr": "https://github.com/objectstack-ai/objectstack/pull/31456", "session": "session_017ihL2c5JNbvoGqve83Ydbk", "premise_still_valid": true, "summary": "Retired ragPipelines from PLURAL_TO_SINGULAR (+ regenerated META_URL_TO_SINGULAR), objectql METADATA_ARRAY_KEYS, metadata ARTIFACT_FIELD_TO_TYPE and runtime APP_CATEGORY_KEYS, and dropped the four waiver rows of check-stack-collection-maps (green with no waiver; re-adding the probe row turns it red). Per the seat's ruling rag_pipeline also leaves the /meta URL-spelling contract like theme: writes get the unrecognised-type refusal (400 INVALID_REQUEST), /meta/types stops advertising it; D3 semantic entry meta-type-rag-pipeline-retired + step-18 rationale fragment (order 122); stack guidance prescription for ragPipelines. Specimens moved to connector (no-static-entry control) and rag_pipeline joins theme on the refused/withdrawn side; the dogfood unserved-export case now injects a vocabulary omission for connector because the showcase has no other exportable-but-unlisted type.", "tests": "head 0f4f7ccc (merged origin/main ae816c40b, full pnpm build exit 0): spec test exit 0 (822 files / 25980 tests), metadata-protocol exit 0 (326 / 22562), objectql exit 0 (569 / 11547), metadata exit 0 (70 / 972), runtime exit 0 (555 / 8957); typecheck exit 0 for all five; eslint --no-inline-config on touched files exit 0. Reverse verification of the gate: APP_CATEGORY_KEYS with ragPipelines re-added -> check-stack-collection-maps exit 1 naming it; restored by byte copy (grep count 0). ea83f528 only adds '!' to the changeset summary line; adr-0087-registration, changeset-no-major and empty-changeset re-run on it, exit 0.", "gates": "node scripts/pm/dispatch-gates.mjs --commands on 0f4f7ccc: 118 families, each recorded CMD :: exit N before any pipe; 117 exit 0; node scripts/check-plugin-teardown-shape.mjs --self-test exit 3 = NOT MEASURED (its pinned positive-control commit is unreachable from this shallow clone; CI runs it). --ran: '118 derived famil(ies) accounted for — 117 run, 1 NOT-MEASURED'. First pass on the pre-merge head also caught check:test-source-alias exit 1 on the two edited metadata-protocol suites -> fixed with the module-top lint preload, then exit 0. CI check-runs: in_progress at report time.", "dogfood_battery": "0f4f7ccc · os-verify-lock VERDICT command-exit 0 · Test Files 438 passed / 3 skipped (441) · Tests 3622 passed / 41 skipped (3663) · no failures", "fable_review": "PASS — PR comment 6719468582; round 1 two should-fixes (export-door prose, stack guidance entry) fixed in 5dc7a5e9, incremental round 2 PASS", "line_budget": "25 files, +298 / -91 vs merge base ae816c40b (well under 3000)", "files_changed": [".changeset/31380-rag-pipelines-listings-retired.md", "packages/spec/src/meta-spelling/manifest-collection-spelling.ts", "packages/spec/src/meta-spelling/meta-url-data.generated.ts", "packages/spec/src/meta-spelling/metadata-url-spelling.ts", "packages/spec/src/kernel/metadata-type-schemas.ts", "packages/spec/src/kernel/metadata-type-schemas.test.ts", "packages/spec/src/stack.zod.ts", "packages/spec/src/stack-top-level-strict.test.ts", "packages/spec/src/migrations/entries/semantic/18.meta-type-rag-pipeline-retired.ts", "packages/spec/src/migrations/registry.ts.template", "packages/spec/src/shared/metadata-collection.test.ts", "packages/spec/src/shared/metadata-url-spelling.test.ts", "packages/metadata-protocol/src/protocol-discovery-and-bases.ts", "packages/metadata-protocol/src/protocol.meta-types-mint-door-agreement.test.ts", "packages/metadata-protocol/src/protocol.unrecognised-meta-type.test.ts", "packages/objectql/src/engine-top-level.ts", "packages/objectql/src/engine-nested-plugin-collections.test.ts", "packages/objectql/src/manifest-service-residual-objects.test.ts", "packages/objectql/src/metadata-validation-sweep.test.ts", "packages/objectql/src/protocol-meta.test.ts", "packages/metadata/src/plugin.ts", "packages/runtime/src/app-plugin.ts", "packages/qa/dogfood/test/package-export-type-read-failure.dogfood.test.ts", "scripts/check-stack-collection-maps.mjs", "scripts/check-platform-checklist.mjs"], "deviations": [ "PR title and changeset summary carry '!' (refactor(spec)!:) where the order suggested none: the change is a declared (narrowing), i.e. BREAKING.", "Declaration lines differ from the order's starting point: Metadata-protocol narrowed (not none), per the seat's ruling after the measurement that /meta accepted rag_pipeline.", "Added a stack guidance entry for ragPipelines (Fable S2) beyond the card's listed surface.", "Cloud producer census NOT MEASURED (repo not readable from this session); named in the PR body for the seat." ], "open_questions": [], "out_of_scope_findings": [ "carrier: none · noted, not filed — .changeset/30803-bare-name-ai-family.md:20 (another card's changeset) uses rag_pipeline as an example type and will read stale after this lands; a one-word swap for that card's owner.", "carrier: none · noted, not filed — check-plugin-teardown-shape --self-test cannot run on a shallow clone (pinned positive-control commit); known, CI-covered." ], "mcp_calls": "3 — mcp__github__issue_read x2 (card body, comments), mcp__github__pull_request_read x1 (get_comments read-back); no write tool", "api_writes": "3 — relay pr_create (POST /repos/objectstack-ai/objectstack/pulls + POST issues/31456/assignees), post-stamped comment POST issues/31456/comments (Fable verdict), post-stamped comment POST issues/31380/comments (this report)", "cross_lane": "objectql/metadata/runtime rows are domain:server files moved in this spec-lane PR per triage; the merge with origin/main (15 commits) had no conflict in engine-top-level.ts, app-plugin.ts or plugin.ts" }objectstack-fleet commentedon Nov 8, 2026
domain:spec#4 · marchtian · session_017ihL2eAG5J8aqAyPZif4BJ
ACCEPT → PR #31456 comment 6719630053 · head
b108998e3· 2026-11-08T09:08ZCONTRACT_REVIEW_TIER(narrowing face, whole diff outside prose): round 1 PASS atea83f528(6719545627) with two should-fixes: the refusal was stated unconditionally although the write door's legacy-namespace exemption keeps a deployment that already holdsrag_pipelinerows writable until they are deleted, and the "no producer" claim was stated as fact while cloud was not measured. Both were fixed in prose atb108998e; delta PASS 6719630053, 0 open findings.Clause-②: no (narrowing),Metadata-protocol: narrowed, four packagesminor,refactor(spec)!with the BREAKING banner and one ADR-0087 registration line: confirmed. This supersedes the claim line'sMetadata-protocol: none, which was written before the dev measured that the/metaURL contract served the type; the seat ruling retired that contract entry with the listings (theme precedent 35ad101).@objectstack/specbullet (400 refusal,/meta/types, "the refusal is not unconditional"); the objectql, metadata and runtime bullets; the package export bullet (export keyed onPLURAL_TO_SINGULAR, residue readable and deletable, last delete closes the namespace, pair install refuses a non-emptyragPipelines); and the remedy. All hold.check-governed-mergesexit 0), so Tier S. It lands on green CI through the merge queue.rag_pipelineproducers: NOT MEASURED, because the cloud repository is outside this session's reach. Accepted for landing for three reasons: (a) no stack could ever declare the key, so a producer could only be a rawPUT /meta/rag_pipelineclient; (b) a deployment that already holds rows keeps write acceptance through the legacy-namespace exemption, so an existing cloud writer is not cut off by this change; (c) the prose now limits the census to the measured repos. Any cloud follow-up is the cloud seat's to file.RAGPipelineSchemamention inpackages/spec/scripts/check-llms-txt.ts:30(a historical census); absence pins scoped to files rather than the tree (the 8-site gate guards it). Recorded only: Bare-name phase 1: refuse a second package holding a non-object name whose consumers resolve without package context (ruling C on #30798) #30803's changeset usesrag_pipelineas an example and will read as stale after this lands.objectstack-fleet commentedon Nov 8, 2026
domain:spec#4 · marchtian · session_017ihL2eAG5J8aqAyPZif4BJ
ACCEPT → PR #31456 · head
36e622b38· 2026-11-08T09:35Z (carries ACCEPT 6719636287 atb108998e3)b108998e3..36e622b38is one test file:packages/cli/test/lint-namespace-prefix.test.tslowers the judged-collection floor 28 → 27 with a one-line comment naming spec/engine:ragPipelinesis listed in PLURAL_TO_SINGULAR, METADATA_ARRAY_KEYS and two runtime maps, yet no stack can declare it — retire the listings (or implement the collection) #31380. That is the direct consequence ofragPipelinesleavingPLURAL_TO_SINGULAR(Test Core (1/8) was red atb108998e3:expected 27 to be ≥ 28). The namedarrayContaininglist never carriedragPipelines.objectstack-fleet commentedon Nov 8, 2026
domain:spec#4 · marchtian · session_017ihL2eAG5J8aqAyPZif4BJ
Landed ·
domain:spec#4· 2026-11-08T10:39Z39aa3f64db2694db7de5968634b21aeba11eef34, landed head36e622b38(contract review PASS 6719545627 + delta PASS 6719630053 atb108998e3; ACCEPT 6719636287, carried to36e622b38by the test-floor note)check:eager-closure: thei18n-locale-enchunk was over by 0.0 KB because of the en strings of #31465, which was grouped ahead of this PR and was itself dequeued at 10:07Z. This PR moves no ui bytes, so it was re-queued once and mergedFixesState:
pm:dispatchedremoved. Residue, recorded only: the #30803 changeset usesrag_pipelineas an example and now reads as stale. Cloudrag_pipelineproducers are still NOT MEASURED. Through the write door's legacy-namespace exemption, an existing writer keeps working until its rows are deleted.