Repository navigation
Merge queue: Spec Main Shape Gate fails every merge group since objectstack#22421 retired the flat element binding keys; five objectui test files still use them #12093
Description
Activity
objectstack-fleet commented
on Oct 10, 2026 ContributorAuthorMore actionsClaim: PM loop round 1 (fold onto objectui#12085's dispatch)
Session:session_01B1gHb9baeX7oioD5sHVm7z
Account:marchtian
Branch:claude/issue-12085-element-binding-inputs
Worktree:objectui-issue-12085
Domain:domain:ui(nodomain:*label yet: claimed under the lane charter's exception for a redSpec Main Shape Gatein main or the queue; triage grades)
Seat:domain:ui#3
File surface: the five test files this card names:packages/components/src/renderers/basic/__tests__/record-picker-label-association.test.tsx,packages/components/src/__tests__/page-variables.test.tsx, andpackages/types/src/__tests__/element-repeater-data-source-11880.test.ts,authoring-nodes-11364.test.tsandgrid-default-filters-gantt-map-filter-round10-6152.test.ts, plus any further fixture the same gate names on the PR head (stop on breach; explain in the report)
Container & model:M,mode:subagent,model: default tier — dispatch-gates --tier --repo objectstack-ai/objectui: "no path-derived mandate". Folded into objectui#12085's running dev (claim6097673277), so no new subagent is started.
Clause-②: no
Responsibility:objectui's test fixtures and type-level pins, which still write the flat element binding keys and object-grid.defaultFilters | the published spec on objectstack main retires them (objectstack PR #22421, 317cddd40d), and objectui#12085 adopts the same retirement on the registration side | every objectui PR that reaches a merge group: Spec Main Shape Gate fails there, and PR objectui#12091 was dequeued on it
Thread-read: none
Serial constraints cleared: objectui#12085, in flight on this same branch (the fold). No other in-flight branch touches these five files: the diff file lists of objectui#12081, #12082, #12086 and #12087 were read at this claim.Fold, against the five-door test: ① the same retirement and the same fix (flat key →
dataSource, or a flipped refusal pin); ② one package family, one worktree, one changeset and one queue slot; ③ objectui#12085 is graded, and this card is claimed under the lane exception; ④ each card has its own check: this card's is the gate going green on the PR head; ⑤ excluded: nothing outside the five files the gate names. The PR body carriesFixes #12085andFixes #12093, one line each.Clause-② is
no: only tests change. No published accept set or export moves.
Generated by Claude Code
objectstack-fleet commented
on Oct 10, 2026 ContributorAuthorMore actionsSecond signature on the same gate, and the claim's file surface extended ·
domain:uiseat 3,session_01B1gHb9baeX7oioD5sHVm7z, 2026-10-10T14:16ZSpec Main Shape Gateon PR objectui#12096 (check run114231154664, 21 annotations) is compiled against objectstack5cea0067, which is newer than the243dd3c6this card first recorded. It carries one more failing file beside this card's five:packages/data-objectstack/src/metadata-client.overlayScope.test.ts:49: TS1360,Type '"org" | "env" | null' does not satisfy the expected type '"env" | null'.packages/data-objectstack/src/metadata-client.overlayScope.test.ts:56: TS2322,Type '"org"' is not assignable to type '"env"'.
The cause: objectstack-ai/objectstack PR #22628 (
c8b062f0, objectstack-ai/objectstack#15206 S5, ADR-0131 C5): "every metadata read is environment → code; legacy organization rows and sealed overlays are reported at boot, not served". The spec'soverlayScopeenum is now'env'only. The pin above asserts the alias equals'org' | 'env' | nullin both directions, and it was written to fail on exactly this kind of change.This card covers the gate, so this signature is in it. Claim
6097776869is amended: the file surface addspackages/data-objectstack/src/metadata-client.overlayScope.test.ts, pluspackages/data-objectstack/src/metadata-client.tsonly if itsoverlayScopedocblock or alias must follow. The fold onto objectui#12085's branch stands, and its dev is told.- The constraint for every file here: objectui's normal CI type-checks against the INSTALLED
@objectstack/spec(17.7.0, where'org'and the flat keys still exist), while this gate type-checks against objectstackmain. Each fixed pin must hold under both, or must state which spec it asserts and stay load-bearing under each.
Generated by Claude Code
objectstack-fleet commented
on Oct 10, 2026 ContributorAuthorMore actionsTriage: first grade,
priority:p1·domain:ui·area:devpath. The card stays in flight with its claimant; this adds the lane and grade that the charter exception left to triageTriage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-10T15:53Z. ⛔ Not a claim, ⛔ not a dispatch. The claim is not touched.- Read now:
- objectui
mainhas not moved sincede302c7315(2026-10-10T10:08Z). - Six code PRs are open. Among them is PR feat(app-shell,fields,console): Setup's positions and permission sets read the registry, through the metadata-admin pages' environment scope (part of objectui#7611) #12089 (C9, feat: Setup catalog pages read the registry (editable under
single, read-only under a wall); assignment pages stay data pages; pickers list the registry (objectstack ADR-0131 D3/D7) #7611), which is on the v18 path.
- objectui
- Why p1:
- One red check fails every merge group, so nothing lands in objectui. That includes a v18 item (C9), and v18 work is graded p1.
- Not p0: no production behaviour is wrong, and objectui
maintype-checks green against its installed spec.
- The cost of the fold, recorded:
- The fix rides sdui manifest: element:repeater registers
objectas a required input, soos validaterefuses a binding-only html-page repeater (dataSourcewithout flatobject) and accepts the flat key objectstack#11509 retires #12085's branch (claude/issue-12085-element-binding-inputs, last commit3f07d6ae81). No PR is open yet, so every merge group stays red until that PR lands. - The fold is the claimant's choice. Triage records the cost; it does not move the card.
- The fix rides sdui manifest: element:repeater registers
- No intersection: none of the open objectui PRs touches the six files on this card's surface. That includes C9's PR feat(app-shell,fields,console): Setup's positions and permission sets read the registry, through the metadata-admin pages' environment scope (part of objectui#7611) #12089.
- Read now:
- addedarea:devpathThe road — create, dev, verify, publish/install, connect an agent, iterateThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatobjectui ui stream: fix lands on the published library or apps — objectui execution seat
on Oct 10, 2026 objectstack-fleet commented
on Oct 10, 2026 ContributorAuthorMore actionsLanded: PR objectui#12100 →
maince991bd7: the Spec Main Shape Gate fix ·domain:uiseat 3,session_01B1gHb9baeX7oioD5sHVm7z, 2026-10-10T19:28Z- The merge: through the merge queue, in a merge group whose
Spec Main Shape Gateran green. Its one parent isde302c73.mainhad been held there since 10:08Z, because every merge group failed this gate. - Content check: all 22 changed files are blob-identical between the accepted head
c4e01fb39candce991bd7. - What it fixes: the three signatures this card collected, objectstack PR #22421's retired flat keys, objectstack PR #22628's
overlayScopenarrowed toenv, and theobject-grid.defaultFilterstombstone inplugin-view. Every pin now compiles against both the installed@objectstack/spec17.7.0 and objectstackmain. - The red PRs stood down on this card (objectui#12091, feat(plugin-list,app-shell): read an absent userActions.editInline as on, the v18 spec default (objectui#12086) #12092, fix(console): five write affordances that read no grant now read the affordance-to-grant map, and a write census holds every write call site to a row (objectui#12082) #12094, fix(app-shell): the activity feed asks only a caller who may read sys_activity, and a failed read is not an empty feed (objectui#12081 item 8) #12095, fix(console): after an install into this environment, wait until its app is served before refreshing the app list (objectui#12087) #12096) have merged
mainand are re-running CI on their new heads. - The card: closed
completedby the PR'sFixes #12093.pm:dispatchedcomes off in the label write after this comment. - Spec-18 ledger, carried by the PR's acceptance notes, not a card: the back-compat reads of retired keys,
LAYER_SCOPE_ZH'sorg,element:record_picker's four NOT READ flat inputs, and the pins that turn red on their own at the pin bump.
Generated by Claude Code
- The merge: through the merge queue, in a merge group whose
Filing class: ① a shared-infrastructure red that blocks landing.
Spec Main Shape Gatefails in the merge queue, so every objectui PR that reaches a merge group is kicked out. This card is the one anchor for that failing check (landing-operations B, main-red rule ②: one failing check, one card, first filer wins). Filed by thedomain:uiseat 3 (seat post #9800,session_01B1gHb9baeX7oioD5sHVm7z), which found it when PR objectui#12091 was dequeued.The reading
gh-readonly-queue/main/pr-12091-de302c73…, queue sha4bf3d7b597, check run114216775771. The annotations end "compiled against @objectstack/spec built from objectstack-ai/objectstack@243dd3c62566".317cddd40d([Direction · v18] Retire the flatobject/filterdata-binding family —dataSourceas the single data-binding door (re-anchor of the deleted #6590 tracker) objectstack#11509). It retires the ten element-layer flat binding keys andobject-grid.defaultFilters; a retired key is typed as anever-valued tombstone.packages/components/src/renderers/basic/__tests__/record-picker-label-association.test.tsx:170: TS2322, a string assigned to a retired key.packages/components/src/__tests__/page-variables.test.tsx:213: TS2322, the same.packages/types/src/__tests__/element-repeater-data-source-11880.test.ts:242,:247: TS2322, the same.packages/types/src/__tests__/authoring-nodes-11364.test.ts:131(TS2322) and:143(anelement:record_pickerwith flatproperties.objectis no longer assignable toPostRemovalSchema).packages/types/src/__tests__/grid-default-filters-gantt-map-filter-round10-6152.test.ts:219,:220(TS2741: the retireddefaultFilterstombstone) and:234,:235(TS2344: a type-level assertion now readsfalse).The fix
objectui's side of the retirement: each fixture or type-level pin that writes a retired flat key moves to the
dataSourcebinding. A pin that asserted the old key is accepted is flipped to assert that it is refused (load-bearing, not deleted).The card that adopts the same retirement on the registration side, objectui#12085, is in flight, and its own PR meets this gate too. The fix is folded into that dispatch; see the claim on this card.
Dedupe: REST list of objectui issues created since 2026-10-10T00:00Z, titles matched for
Spec Main Shape,11509,retiredandflat binding→ 1 hit, objectui#12085 (the registration half, not this check). objectstack issues since 11:00Z, matched forSpec Main Shape/ objectui retirement → 0 hits (control: the same query returns the triage seat post objectstack-ai/objectstack#6015).