Repository navigation
chore(objectui): bump the console pin past objectui 5bc55c0c5a1e — it carries objectstack-ai/objectui#11880, which #11509's v18 retirement must ship with #22385
Description
Activity
objectstack-fleet commented
on Oct 9, 2026 ContributorAuthorMore actionsTriage: first grade,
priority:p3·domain:devx·target:v18·area:devpath·pm:queue(findingremoved). Unblocks #11509: the console pin moves past objectui5bc55c0c5a1eTriage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-09T01:52Z. ⛔ Not a claim, ⛔ not a dispatch.Triage: lands in this repo's
.objectui-shaand the build it derives ⇒domain:devx, the lane of the earlier bumps (#21996, #21807). It uses the repo's own procedure, as PR #22015 did.- Why it queues: it is the ordering that ruling
6051498447sets on [Direction · v18] Retire the flatobject/filterdata-binding family —dataSourceas the single data-binding door (re-anchor of the deleted #6590 tracker) #11509 ("the spec retirement ships with the pin bump that carries it"). It is a product change, since the bundled Console ships, so it is not a tooling card. It unblocks [Direction · v18] Retire the flatobject/filterdata-binding family —dataSourceas the single data-binding door (re-anchor of the deleted #6590 tracker) #11509, which is open and dispatched; that PR stays a held draft until this lands. - Why p3 and v18: the same grade as the card it unblocks.
- What it carries: objectui
5bc55c0c5a1e(objectui#11880's closing merge) and everything between that and today's pin, about 160 objectui commits. The PR lists the user-visible changes the bump brings into the Console from that range, and any gate it moves. - ⛔ Not a release act. The Version Packages PR chore: version packages #21988 is untouched.
- Cloud is separate. Cloud pins objectui itself (
.objectui-shaf1781be3). Its move past objectui#11880 is the row [Direction · v18] Retire the flatobject/filterdata-binding family —dataSourceas the single data-binding door (re-anchor of the deleted #6590 tracker) #11509's landing adds to objectstack-ai/cloud#2709 (my unlock note6071460039).
- Why it queues: it is the ordering that ruling
- addedarea:devpathThe road — create, dev, verify, publish/install, connect an agent, iterateThe road — create, dev, verify, publish/install, connect an agent, iterateand removed
on Oct 9, 2026 objectstack-fleet commented
on Oct 9, 2026 ContributorAuthorMore actionsClaim: PM loop round 4
Session:session_0115N1oNnQS5WqofZ2DzaT3q
Account:os-sales(the seat's linked user asGET /useranswers it; the card's assignee)
Branch:claude/issue-22385-objectui-pin-bump
Worktree:objectstack-issue-22385
Domain:domain:devx
Seat:domain:devx#1
File surface: one console pin bump, by the repo's own procedure (scripts/bump-objectui.sh, thenpnpm objectui:build, thennode scripts/gen-sdui-manifest-node.mjs). It lands.objectui-shaat objectuimainas read at the run's start, and that pin must contain5bc55c0c5a1e. It also writes the script's@objectstack/consolechangeset;sdui.manifest.jsonandscripts/sdui-manifest.record.json; andpackages/sdui-parser/objectui-lockstep.json. Underpackages/spec/src/**it touches only the citation sites thatcheck:objectui-pin-citationsandcheck:sdui-lockstepname, as comment and describe text with no schema shape change, plus a pin-citation changeset if those sites ship. It regeneratespackages/spec/src/migrations/registry.tsthroughgen:migration-registry, and anycontent/docs/references/**pagecheck:generated --fixrewrites. (Stop on breach; explain in the report.)
Container & model:M,mode:subagent,model: opus — the default tier; dispatch-gates --tier: "no path-derived mandate"
Clause-②: no
Responsibility:n/a — not a defect card
Ruling-ref:6051498447(on #11509, sub-question 2: "objectui first (…), and the spec retirement ships with the pin bump that carries it")
Thread-read: 6072636718
Serial constraints cleared:.objectui-shais a single-claim path, and no open PR writes it (14 open PRs' file lists read). No open PR touchescomponent.zod.ts,view.zod.ts,sdui.manifest.jsonor the lockstep file.packages/spec/src/migrations/registry.tsis also written by PR #22380 and PR #22315 (bothdomain:specdrafts); it is generated, so whichever lands later regenerates it. #11509 (domain:specseat 2) edits the element-layer records incomponent.zod.tsafter this lands, in the ruling's order. Seat 2'sarea:devpathclaims #22014 and #22085 are file-disjoint from this surface. Contract review: the diff will reachpackages/spec/src/**(non-test), so an at-tier review is owed before enqueue — read at 2026-10-09T02:17Z
Generated by Claude Code
objectstack-fleet commented
on Oct 9, 2026 ContributorAuthorMore actionsos-dev-report
{ "issue": 22385, "status": "done", "branch": "claude/issue-22385-objectui-pin-bump", "pr": "https://github.com/objectstack-ai/objectstack/pull/22412", "session": "session_0115N1oNnQS5WqofZ2DzaT3q", "premise_still_valid": true, "summary": "Moved the console's objectui pin from a58626c88dc8 to f0268ad784854568aa58a2aa791f6a7502259186 (objectui main at run start), which contains 5bc55c0c5a1e (REST compare: ahead 8, behind 0). I used the repo's own procedure: bump-objectui.sh, then objectui:build, then gen-sdui-manifest-node.mjs, then re-recording the lockstep and regenerating the migration registry. The 55 asserting pin citations in 15 spec files were re-measured through the objectui diff. Three records had become false at the new pin, and only their false sentences were rewritten: element:repeater now reads dataSource first (objectui aaba8655a), action:button publishes undoable (f0496bdf1), and action:icon reads label six times (cef0eeec0). The repeater's required object can follow the renderer only by a schema change, so the text names #11509 for it. No schema, key, default, enum or export changed: a TypeScript AST token comparison shows only comment and string-fragment changes. The draft PR #22412 is open, assigned to os-sales, with every one of the 127 derived gates green at head 21da749e30.", "tests": "All at head 21da749e30 (the merge of origin/main fdfdd7e76d), after a full workspace build at that head (72 turbo tasks, exit 0). Results: @objectstack/spec vitest, both projects: 680 files, 19658 passed, 1 todo, VERDICT command-exit 0, lock held 19m27s. spec typecheck: exit 0 (check:test-typecheck OK). sdui-parser: 14 files, 225 passed; its typecheck exit 0. lint validate-jsx-pages.production-witness: 5 passed. metadata-protocol protocol.runtime-authoring-gate: 119 passed. cli unit tier (sdui-manifest, console.sha-drift, validate-build-gate-parity, console-resolve): 4 files, 102 passed. CLI integration tier declared to CI (no integration-tier file and no spawn entry touched). Console build: pnpm objectui:build exit 0, with the canaries 'import/jobs' present, single zod 4.6.5, and the bundle carrying THIS tree's spec; dist 64028 KB from objectui@f0268ad78485. ESLint narrowed to the 15 changed spec files: 0 errors and 0 warnings by the --format json count. The population is eslint.config.mjs line 971 (all ts files). Type-aware linting is never enabled (line 328), so this diff cannot move any untouched file's verdict. The repo-wide pnpm lint is CI's. No ablation or reverse verification: the diff changes comments, describe strings and data files only. Proof of that: a TypeScript AST token comparison (comments dropped, literals collapsed) at 11d119ab18 against head finds 13 of 15 spec files identical, and two migration entries (plus registry.ts mirroring them) each gaining one '+' that joins a new string fragment.", "mcp_calls": "0 — none", "api_writes": "3 REST writes, all through scripts/pm relays. (1) fleet-write/dispatch.mjs pr_create: POST /repos/objectstack-ai/objectstack/dispatches (HTTP 204, run 37881709971 success) executing POST /repos/objectstack-ai/objectstack/pulls with draft forced, giving #22412. Read back: 27331 bytes sent, 27331 stored, identical. (2) label-write.mjs --issue 22412 --assign os-sales: POST /repos/objectstack-ai/objectstack/dispatches (run 37881761236 success) executing POST /repos/objectstack-ai/objectstack/issues/22412/assignees. Read back: assignees os-sales, no label written. (3) post-stamped.mjs --comment=22385: POST /repos/objectstack-ai/objectstack/issues/22385/comments for this report, via the route post-stamped selects. Separately, git push (not REST) moved the branch to 21da749e30.", "open_questions": [], "out_of_scope_findings": [ "carrier: #11509 (the record_picker/number flat-key retirement) · packages/spec/src/ui/component.zod.ts ElementRecordPickerPropsSchema and ElementNumberPropsSchema docblocks still describe the flat object/filter/sort/limit as read. Examples: the record_picker filter docblock's 'ds.filter ?? props.filter', and sort/limit 'ds.sort ?? props.sort'. That is false at objectui f0268ad78485 (74add0c12, dataSource only). They cite no .objectui-sha value, so no pin gate reads them, and they are outside this dispatch's file surface. Noted, not filed.", "carrier: #11509 · the repeater row still requires object, while at the new pin the renderer renders a node that names its object only through dataSource (data-list.tsx :192-195). The docblock now says so. Relaxing the requirement and any lint waiver is a schema change (#11509 sub-questions 3-4). Noted, not filed.", "carrier: #11509 · Studio's repeater inspector (objectui packages/app-shell previews/block-config.ts:338-345) still writes the flat object key. The renderer reads it as the fallback, so nothing breaks at this pin. It matters once #11509 retires the key. Noted, not filed.", "carrier: none (承接者:无) · scripts/build-console.sh:162 accepts OBJECTUI_ROOT only if '$OBJECTUI_ROOT/.git' is a directory (-d). A linked objectui worktree has a .git FILE, so the script silently falls back to the sibling ../objectui (the shared checkout in a fleet container) and registers its build worktree there. bump-objectui.sh:162 checks with -e and accepts it. Internal tooling with no public-door reach and no named producer, so it goes in Acceptance notes only. Dedupe words: build-console OBJECTUI_ROOT linked worktree, -d .git fallback, sibling objectui." ], "old_pin": "a58626c88dc85954bd0af24f16ebb69454c03eee", "new_pin": "f0268ad784854568aa58a2aa791f6a7502259186", "assumption_evidence": { "1": "Confirmed. .objectui-sha read a58626c88dc85954bd0af24f16ebb69454c03eee at origin/main 00bee2724d and at BASE 11d119ab18. REST compare 5bc55c0c5a1e...a58626c88dc8 is 'behind', behind_by 162, so the old pin lacks objectui#11880's closing merge.", "2": "Confirmed. objectui git ls-remote refs/heads/main read f0268ad784854568aa58a2aa791f6a7502259186 at 2026-10-09T02:23:09Z, the same as the dispatch's 01:49Z reading. REST compare reads: 5bc55c0c5a1e...f0268ad78485 status ahead, ahead_by 8, behind_by 0, merge base 5bc55c0c5a1e4202a55a45c092cce3880a09b27a; 74add0c12a70...f0268ad78485 ahead 27, behind 0; aaba8655aec5...f0268ad78485 ahead 17, behind 0; a58626c88dc8...f0268ad78485 ahead 170, behind 0 (170 commits, 0 merges, 1061 paths: 482 A, 2 D, 577 M). git merge-base --is-ancestor 5bc55c0c5a1e f0268ad78485 exits 0, which is self-proving.", "3": "Confirmed and widened. The element:repeater record is false at the pin: data-list.tsx reads dataSource first (aaba8655a, +99/-16). The record_picker/number docblocks are not asserting citations, so they stay out of the surface (finding 1). Two more asserting records turned false: action:button (undoable now published, f0496bdf1) and action:icon (a sixth label read, cef0eeec0). Both were rewritten under the same rule, and each is listed in the PR body under 'Records that turned false at the new pin' with old text, new text, the cited diff and rollback.", "4": "Refined. check:objectui-pin-citations counts 55 asserting citations (the dispatch hint was 54) in 15 files (hint 12): 14 hand-edited plus the generated registry.ts. 144 historical citations are recorded and not checked. --verify-anchors verifies 13 anchor content assertions against objectui at f0268ad78.", "5": "Confirmed, with timing. #22380 (ac8f2c560) merged 2026-10-09T03:27:49Z, after my single merge of origin/main (21da749e30, merge parent fdfdd7e76d). Its registry.ts hunks (old lines 5659, 6403, 13522, 13550, 20651) do not overlap mine (15141-20302), and git merge-tree --write-tree HEAD 83e7ae93ad exits 0 with no conflict. #22315 (open draft) also touches registry.ts. Per the dispatch, there is no second merge. origin/main is now 83e7ae93ad (#22380, #22395, #22392, #22393, #22403 since the merge parent), and of my 22 files only registry.ts changed there." }, "gates": { "head": "21da749e30", "derive": "node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack: 127 commands from 22 paths against merge base fdfdd7e76, tree objectstack-ai/objectstack at 21da749e30", "run": "127 of 127 ran, 127 exit 0, 0 non-zero, each exit captured before any pipe (cmd > log 2>&1; ec=$?)", "reconciliation": "dispatch-gates --ran: '127 derived, 127 run, 0 NOT-MEASURED, 0 UNRUN' — a derived zero", "named": { "check-changeset-no-major --base origin/main": "exit 0 — 'This diff introduces no `major` bump.'", "check-adr-0087-registration --base origin/main": "exit 0 — 1 declared-breaking changeset (.changeset/console-f0268ad78485.md), disposition not-required (no-migration-prescription)", "check:objectui-pin-citations": "exit 0 — '55 asserting objectui pin citation(s) match .objectui-sha (f0268ad78), 144 historical citation(s) recorded and not checked, across 1922 spec source(s).' With --verify-anchors: '13 anchor content assertion(s) verified against objectui at f0268ad78'", "check:sdui-lockstep": "exit 0 — byte-identical to objectui@f0268ad78485 over 214 grammar lines [blob 0131f27cf86d], 25 diagnostic codes, predicate [blob 76c18fb95d1f]", "check-sdui-manifest.mjs": "exit 0 — sha256 097ae3cbcf95…, 107 components, recorded at live pin f0268ad78485", "check:console-sha": "exit 0 — 'Console dist matches the objectui pin (objectui@f0268ad78485).'", "check:console-injection": "exit 0 — 'the dist carries this tree's copy, and not the published one'", "check:generated": "exit 0 — 'All 15 generated artifacts are up to date' (measured against the dist built at head)", "check:migration-registry": "exit 0 — current (402 semantic, 247 retired-key, 222 retired-def)", "check:nul-bytes": "exit 0 — no raw ASCII control bytes in 10383 files" }, "ci": "in_progress at report time (one read of head 21da749e30's check runs: 11 success, 1 skipped, 20 in_progress). Not waited on, per the role file." }, "line_budget": "n/a — no skills/** and no ratcheted line ledger touched", "deviations": [ "bump-objectui.sh ran with OBJECTUI_ROOT at a detached objectui worktree of my own (/home/user/objectui-issue-22385, registered in the shared /home/user/objectui .git) and with --no-commit. I committed its output myself with model-free trailers rather than the script's own commit. The objectui store was shallow, so the script ran its own git fetch --unshallow, which added objects and tags to the shared objectui object store. The shared checkout's working tree, branch and index were not touched. The worktree registration has been removed.", "pnpm objectui:build ran with OBJECTUI_ROOT at a scratch repository (alternates pointing at /home/user/objectui/.git/objects) instead of the linked worktree. build-console.sh rejects a linked worktree with -d and would have fallen back to the shared sibling checkout (finding 4). The scratch repo and its build worktree are removed.", "The merge of origin/main used git's default merge message (no trailers).", "The full @objectstack/spec vitest run held the shared verify lock for 19m27s. The lock printed its holder-side starvation warning. That is the normal cost of the whole spec suite, run because the diff touches 15 spec source files. It is not filed.", "origin/main moved after the single merge (now 83e7ae93ad). As dispatched, there was no second merge: merge-tree is clean, and the only overlapping file, registry.ts, has non-overlapping hunks. CI judges the merge ref.", "Cleanup: the objectui worktree, scratch repo and console build worktree are removed. The objectstack worktree's node_modules is removed, and git worktree remove runs right after this comment." ], "files_changed": [ ".changeset/console-f0268ad78485.md (+154/-0)", ".changeset/objectui-pin-citations-f0268ad78485.md (+19/-0)", ".objectui-sha (+1/-1)", "content/docs/references/ui/view.mdx (+2/-2)", "packages/sdui-parser/objectui-lockstep.json (+3/-3)", "packages/spec/src/data/api-methods-batch-conformance.test.ts (+13/-1)", "packages/spec/src/kernel/functional-completeness.ts (+34/-4)", "packages/spec/src/migrations/entries/semantic/18.kernel-health-check-and-hot-reload-durations-unit-in-key.ts (+3/-3)", "packages/spec/src/migrations/entries/semantic/18.kernel-runtime-config-timeout-unit-in-key.ts (+3/-3)", "packages/spec/src/migrations/entries/semantic/18.logging-durations-unit-in-key.ts (+3/-3)", "packages/spec/src/migrations/entries/semantic/18.system-metrics-jsdoc-durations-unit-in-key.ts (+5/-4)", "packages/spec/src/migrations/entries/semantic/18.system-tracing-otel-exporter-durations-unit-in-key.ts (+6/-5)", "packages/spec/src/migrations/entries/semantic/18.tenant-schema-cache-ttl-unit-in-key.ts (+3/-3)", "packages/spec/src/migrations/registry.ts (+23/-21)", "packages/spec/src/ui/action-outcome-messages.test.ts (+5/-1)", "packages/spec/src/ui/action.zod.ts (+6/-2)", "packages/spec/src/ui/component.test.ts (+41/-7)", "packages/spec/src/ui/component.zod.ts (+411/-183)", "packages/spec/src/ui/dataset.zod.ts (+12/-2)", "packages/spec/src/ui/view.zod.ts (+33/-10)", "scripts/sdui-manifest.record.json (+4/-4)", "sdui.manifest.json (+25/-16)", "22 files, +809/-278 against merge parent fdfdd7e76d" ] }
Generated by Claude Code
objectstack-fleet commented
on Oct 9, 2026 ContributorAuthorMore actionsACCEPT — PR #22412 (head
eb7b6c35eb) · 2026-10-09T06:15ZReviewed by
domain:devxseat 1 ·session_0115N1oNnQS5WqofZ2DzaT3q, against GitHub andorigin/main, not the report.Checklist:
- Draft, base
main. The first line isFixes #22385and the second isClause-②: no. A full body scan finds that one closing keyword and no other. - 22 files, +809/−278, inside the claim surface (
6072902794). - Not governed (
check-governed-merges --pr 22412: 0 of 22 paths). content/docs/releases/is untouched. Version Packages PR chore: version packages #21988 is untouched:packages/console/package.jsonandCHANGELOG.mdare not in the diff.- The head is the
update-branchmerge ofmain27a8b33dec(PR test(dogfood): the cold-boot catalog file takes its database roots under tmpdir() and removes them itself #22416's fix). Of this PR's files, that merge changed only the generatedpackages/spec/src/migrations/registry.ts, on disjoint hunks.
Contract review: PASS on this head,
6075438386(Served-tier: CONTRACT_REVIEW_TIER,Local-runs: none).Changeset sentences checked against the diff and the head tree:
.changeset/objectui-pin-citations-f0268ad78485.md(@objectstack/specpatch):- "the
FormField.spandescribe and six migration-entry descriptions": the diff changes exactly six18.*-unit-in-key.tsentries, and thespandescribe changes its pin sha only (a58626c88→f0268ad78). - The three rewritten records (
element:repeater,action:button,action:icon) cite objectuiaaba8655a,f0496bdf1andcef0eeec0in the added docblock lines. - "The corpus is now 8234 tracked files" and "
Span/SpanSchema, which read 517 / 57" match the addedreasontext.
- "the
.changeset/console-f0268ad78485.md(@objectstack/consoleminor) is the bump script's digest. Its hand-written ADR-0087 answer was checked on the tree:- "this repo's
sdui-parsercopy already dropsdescriptionfromCONSUMED_WIDGET_OPTION_KEYS": the list atpackages/sdui-parser/src/dashboard-widget-options.ts:128isdateGranularity,limit,sortBy,sortOrder,stageOrder. - "the conversion
translation-widget-sub-caption-removedand the semantic entrytranslation-widget-sub-caption-retired" both exist on the head, inconversions/registry.tsand inmigrations/entries/semantic/18.translation-widget-sub-caption-retired.ts.
- "this repo's
Docs Drift advisory (
6073980028): no hand-written page restates the repeater's old "does not readdataSource" record. A grep ofcontent/docsoutsidereleases/finds none, andlayout-dsl.mdxnames no repeater, record picker or number element.CI, read by the seat at
eb7b6c35eb:- All 35 check runs are complete: 34
successand 1 skipped (check-expected-skips --pr 22412: OK). Lint & Repo Gates(113683033450),TypeScript Type Check(113685840773),Test Core(113692592797),Console Pin GateandCheck Changesetaresuccess.
Out of scope:
- The
element:record_picker/element:numberdocblocks, the repeater's requiredobject, and Studio's repeater inspector are carried by [Direction · v18] Retire the flatobject/filterdata-binding family —dataSourceas the single data-binding door (re-anchor of the deleted #6590 tracker) #11509. - The
scripts/build-console.sh:162-d .gitfallback, escalated by the contract review, is filed as tooling(console): build-console.sh tests OBJECTUI_ROOT with-d .git, so a linked objectui worktree is ignored and the build silently uses the shared sibling checkout #22429.
Landing: ready + auto-merge now.
Generated by Claude Code
- Draft, base
Filing gate: ③ a maintainer-directed task. It is the ordering the ruling
6051498447sets on #11509, in sub-question 2: "objectui first (…), and the spec retirement ships with the pin bump that carries it. The reverse order would convert a working repeater's query into a position it does not read and blank it." Filed by thedomain:specseat 2 (seat post #18549,session_01DhTqaEHqPVSVnAkjG3jywn), which claims #11509 in the same act. ⛔ Not graded or routed here; ⛔ not a claim.What was measured (REST, at
origin/mainbb4f5cc00).objectui-shareadsa58626c88dc85954bd0af24f16ebb69454c03eee(PR chore(objectui): bump the console pin to a58626c88dc8 (carries objectui#11670 and #11669) #22015, 2026-10-06).completedat 2026-10-08T23:28:57Z. Three objectui PRs name it in their title or first line:74add0c12a70;aaba8655aec5;ConnectionEngineLike) carries five members no spec contract declares #12010, merge5bc55c0c5a1e, the closing merge.GET /repos/objectstack-ai/objectui/compare/{merge}...a58626c88dc8readsbehindfor all three, by 143, 153 and 162 commits. The bundled Console therefore still carries the repeater that reads the flat keys, and the?? props.*fallbacks that feat(tooling): ban the whole-set label PUT in every spelling #11880 removed.What this card asks
Move the Console's objectui pin past
5bc55c0c5a1ewith the repo's own procedure, as PR #22015 did:scripts/bump-objectui.sh;pnpm objectui:build;node scripts/gen-sdui-manifest-node.mjs;Why it is owed now
#11509's spec retirement is being built in parallel (claim on #11509, this act). Its PR stays a held draft until a compare of
5bc55c0c5a1eagainst.objectui-shareadsaheadoridentical. Without this bump, a release carrying the retirement would ship a Console that blanks a converted repeater.⛔ Not a release act. The Version Packages PR #21988 is untouched.
Dedupe: REST search over open issues and PRs for "console pin" (0 open hits) and for "11880" (only #11509). The previous bump cards were #21996 and #21807, both closed and both
domain:devx.Generated by Claude Code