Repository navigation
Closed
Labels
area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterateThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:devxDomain lane — seat card indexed by label:pm:seatDomain lane — seat card indexed by label:pm:seatpriority:p1High: required for production / M2High: required for production / M2toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surfaceFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface
Description
Filed by the QA lane (17.6 checklist run #21330), on the maintainer's go-ahead in session: the 17.7 pre-release checklist run must judge the Console that 17.7 will ship, so the pin moves first. ⛔ Not a release act — a .objectui-sha bump is release-adjacent work (AGENTS.md rule 15).
Measured now
.objectui-shaonorigin/main251a7dd4bisab1879721595, set by PR chore(objectui): bump the console pin to ab1879721595 (carries objectui f624f278, b0bf413c and ab187972) #21625 on 2026-10-03.- objectui
mainis973fc20f3(2026-10-04), 20 commits ahead of the pin (git rev-list --count ab187972..origin/main). - No open card or PR in this repo moves the pin (open issue titles grepped for
objectui/ console pin: 0 bump hits).
Landings in the range worth naming
| objectui landing | commit | note |
|---|---|---|
objectui#11466 — a node slot and SchemaRenderer's schema take the declared-node union (V1); the dashboard envelope's object-metric retires |
83e3f8377 |
declared breaking (!) — its ADR-0087 disposition must be answered on the bump changeset, as the previous bumps did |
| objectui#11574 — a grouping-field switch paints only the server's groups | 2f54dca53 |
fixes the phantom "(empty)" groups recorded in #21625's acceptance notes |
| objectui#11581 / #11578 / #11576 — Create View doors share one builder; a refused save is said; chart views bind an ADR-0021 dataset | b65aa5e65, f1c937966, d0097af2e |
view authoring |
| objectui#11572 / #10380 — interface / object page relay stored view config | 09036173c, 068564691 |
|
| objectui#11588 — grid summary footer reads currency/precision from the object field only | d768c3178 |
|
objectui#11573, #11564 — AnyComponentSchema / flex child typing |
bdc9049ed, b10c68e58 |
|
| objectui release packages | b493919c7 |
Scope
- Bump to objectui
mainat claim time, at or past973fc20f3, withscripts/bump-objectui.sh. Re-measure each pin citation the bump moves (check:objectui-pin-citations --verify-anchors), regenerate the lockstep / SDUI manifest records, as PR chore(objectui): bump the console pin to ab1879721595 (carries objectui f624f278, b0bf413c and ab187972) #21625 did. - Answer the declared-breaking entries' ADR-0087 disposition on the bump changeset.
- Browser smoke on
examples/app-showcaseat the new pin, including the dashboards (objectui#11466 touches the dashboard producers) and the grouping switch (objectui#11574). - ⛔ No objectui edit. ⛔ No ride-along code change beyond what the bump's own gates require.
Done when
The pin carries 973fc20f3 (or later objectui main) and CI + Console Pin Gate are green; the 17.7 checklist run then builds its Console from this pin.
Generated by Claude Code
Metadata
Metadata
Assignees
Labels
area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterateThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:devxDomain lane — seat card indexed by label:pm:seatDomain lane — seat card indexed by label:pm:seatpriority:p1High: required for production / M2High: required for production / M2toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surfaceFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface
Activity
objectstack-fleet commentedon Oct 4, 2026
Triage: grade completed —
priority:p1(raised, under the release rule),area:devpathandpm:queueadded. Scope confirmedTriage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-04T06:52Z. ⛔ Not a claim, ⛔ not a dispatch.Why p1, not the filed p2. This bump is the prerequisite of the 17.7 pre-release checklist run, which must judge the Console 17.7 ships, by the maintainer's go-ahead. Work the release depends on is p1.
Scope: the card's own, confirmed.
mainat claim time, at or past973fc20f3, throughscripts/bump-objectui.sh.!). Its ADR-0087 disposition is answered on the bump changeset.Release ordering note. objectstack's version PR #21352 is still unmerged. Whether 17.7.0 ships before or after this pin moves is the maintainer's release act. If the pin should ride 17.7.0, this bump lands before the release PR is refreshed and merged.
Generated by Claude Code
objectstack-fleet commentedon Oct 4, 2026
Claim: PM loop round 52
Session:
session_01VDtqoecgES7ScQYGbFVDRvBranch:
claude/issue-21696-objectui-pin-bump(cut fromorigin/main8843505d91)Worktree:
objectstack-issue-21696Domain:
domain:devxSeat:
domain:devx#1File surface: the card's scope, as triage confirmed it.
.objectui-sha, moved throughscripts/bump-objectui.shto objectuimainat claim time, at or past973fc20f3. The pin at the claim ref isab18797215.check:objectui-pin-citations --verify-anchors;.changeset. It answers the ADR-0087 disposition for each declared-breaking entry in the range, objectui#11466 (83e3f8377,!) first.examples/app-showcaseat the new pin, covering:type-mismatchstays a warning for a string literal handed to an object-typed input —os buildpasses and the tile draws no number #21671 lockstep reading. PR fix(sdui-parser): an html page literal of the wrong type is a compile error, not a warning #21678 made this repo's html-tiertype-mismatch/member-type-mismatcherror. objectui's copy atab187972still grades them by the enum arm. The dev reads objectui'spackages/sdui-parser/src/validate.tsat the new pin and reports whether that gap closed or still stands.check:sdui-lockstepdoes not compare severity, so this is a reading, not a gate.Stop on a breach and explain it in the report. That includes a gate that needs a code change outside the bump's records, and a smoke that cannot run in the container. In either case, report the exact blocker, not a partial PASS.
Container & model:
M(pin bump, generated records, changeset, one browser smoke),mode:subagent,model: opusClause-②: no
Thread-read:
5977475553Serial constraints cleared: board read at 2026-10-04T07:51Z. No open PR touches
.objectui-sha. Release ordering is the maintainer's release act, per the triage note on version PR #21352. This seat does no release act; it lands the bump and states the ordering in the landing record.Priority rule 3 reading: this is
domain:devx's only open p1, and the 17.7 pre-release checklist run depends on it. A.changesetis a review face, so a same-form contract-review record on the landing head is owed before enqueue.Generated by Claude Code
objectstack-fleet commentedon Oct 4, 2026
os-dev-report
{ "issue": 21696, "status": "done", "branch": "claude/issue-21696-objectui-pin-bump", "pr": "https://github.com/objectstack-ai/objectstack/pull/21710", "session": "session_01VDtqoecgES7ScQYGbFVDRv", "premise_still_valid": true, "head_sha": "a0a35cb30f9451294889f99df9d931b9d4d66d3b", "new_pin": "2e818d0b51ecdf8fdd9fcbf4b916bcd7fe9a9cf6", "range_count": 22, "summary": "Pin moved ab1879721595 to 2e818d0b51ec, which was objectui main at write time (past 973fc20f3, confirmed by git ls-remote just before the PR), through scripts/bump-objectui.sh with OBJECTUI_ROOT set to a read-only objectui clone; no ../objectui sibling exists in this container. The 54 asserting pin citations were re-measured by mapping every anchor through git diff -U0: the object-metric icon input in plugin-dashboard/src/index.tsx moved 269 to 281 and its registration 244 to 256, and the other cited files are byte-identical or changed away from the cited lines. The six migration entries' corpus counts were re-taken with git grep -o -F, which first reproduced every old number. The SDUI manifest record and the sdui-parser lockstep record were regenerated with the repo tooling; sdui.manifest.json itself is byte-identical (107 components, the same sha256) and the lockstep blob, codes and predicate are unchanged. The console changeset answers the ADR-0087 disposition for the range's one ! commit, objectui#11466. A browser smoke on app-showcase at the new Console found dashboards drawing, no phantom (empty) groups and no page errors. origin/main 7e0066af7a was merged through os-regen-merge.sh; it had no conflict and all 15 generated artifacts are current. No code changed outside records, citations and changesets.", "files_changed": [ ".objectui-sha", ".changeset/console-2e818d0b51ec.md", ".changeset/objectui-pin-citations-2e818d0b51ec.md", "scripts/sdui-manifest.record.json", "packages/sdui-parser/objectui-lockstep.json", "content/docs/references/ui/view.mdx", "packages/spec/src/migrations/registry.ts", "packages/spec/src/migrations/entries/semantic/18.kernel-health-check-and-hot-reload-durations-unit-in-key.ts", "packages/spec/src/migrations/entries/semantic/18.kernel-runtime-config-timeout-unit-in-key.ts", "packages/spec/src/migrations/entries/semantic/18.logging-durations-unit-in-key.ts", "packages/spec/src/migrations/entries/semantic/18.system-metrics-jsdoc-durations-unit-in-key.ts", "packages/spec/src/migrations/entries/semantic/18.system-tracing-otel-exporter-durations-unit-in-key.ts", "packages/spec/src/migrations/entries/semantic/18.tenant-schema-cache-ttl-unit-in-key.ts", "packages/spec/src/data/api-methods-batch-conformance.test.ts", "packages/spec/src/kernel/functional-completeness.ts", "packages/spec/src/ui/action-outcome-messages.test.ts", "packages/spec/src/ui/action.zod.ts", "packages/spec/src/ui/component.test.ts", "packages/spec/src/ui/component.zod.ts", "packages/spec/src/ui/dataset.zod.ts", "packages/spec/src/ui/view.zod.ts" ], "breaking_entries": [ { "objectui_pr": "objectui#11466 (PR objectui#11512)", "commit": "83e3f8377", "disposition": "not-required (no-migration-prescription): a node slot and SchemaRenderer schema prop take objectui's DeclaredNode union, a TypeScript type of objectui's own packages that no ObjectStack schema declares or references" }, { "objectui_pr": "objectui#11466 (PR objectui#11512)", "commit": "83e3f8377", "disposition": "not-required (no-migration-prescription): an object-metric node in a dashboard widget's legacy component envelope draws the retired-format prompt; ui/dashboard.zod.ts refuses a widget's component key by name, so an ObjectStack author cannot write that form, and no example authors one" } ], "gates_run": [ { "cmd": "node scripts/pm/dispatch-gates.mjs --commands (127 derived from the 21-path diff, the same set before and after the merge), each run", "result": "127/127 exit 0 at 378d424915 and again at a0a35cb30f; --ran: 127 derived, 127 run, 0 NOT-MEASURED, 0 UNRUN" }, { "cmd": "OBJECTUI_ROOT=clone pnpm --filter @objectstack/spec exec tsx scripts/check-objectui-pin-citations.ts --verify-anchors", "result": "exit 0 at a0a35cb30f: 54 asserting citations match 2e818d0b5; 7 content assertions verified" }, { "cmd": "node scripts/check-adr-0087-registration.mjs --base origin/main", "result": "exit 0: 1 declared-breaking changeset, carrying not-required (no-migration-prescription)" }, { "cmd": "node scripts/check-changeset-no-major.mjs --base origin/main", "result": "exit 0: no major bump" }, { "cmd": "pnpm check:objectui-bump", "result": "exit 0: 20 assertions across 5 cases" }, { "cmd": "pnpm check:sdui-lockstep / node scripts/check-sdui-manifest.mjs / pnpm check:console-sha / pnpm check:console-injection (in the derived set)", "result": "exit 0" }, { "cmd": "pnpm --filter @objectstack/spec check:generated (after the merge)", "result": "exit 0: all 15 artifacts current" }, { "cmd": "pnpm --filter @objectstack/spec test", "result": "exit 0 at a0a35cb30f: 612 files, 18185 passed, 1 todo" }, { "cmd": "pnpm --filter @objectstack/spec typecheck", "result": "exit 0" }, { "cmd": "pnpm --filter @objectstack/sdui-parser test", "result": "exit 0: 225 passed" }, { "cmd": "eslint --no-inline-config --format json on the 15 changed TS files", "result": "0 errors, 0 warnings. Population: eslint.config.mjs:971 **/*.{ts,...}; no type-aware linting (:328), so judgments on untouched files cannot move. Repo-wide pnpm lint is left to CI" }, { "cmd": "Console Pin Gate local equivalent: pnpm objectui:build (build-console.sh at the pin, under os-verify-lock)", "result": "VERDICT command-exit 0; single-zod canary passed (one {major:4,minor:6,patch:5} literal); spec-injection check passed; dist ready from objectui@2e818d0b51ec" } ], "smoke": { "dashboards": "Four dashboards were opened at the Console built at 2e818d0b51ec. None shows a page error or a retired-format prompt. Delivery Operations: Active Projects 2, At-Risk 1, Awaiting Review 2, Total Budget 1,090,000, 4 charts; the values match REST counts on the same server (status=active 2, health=red 1, in_review 2, budget sum 1090000). Revenue Pulse: 5 tiles, 4 charts. Chart Gallery: Total Tasks 10 (matches 10 rows), 13 charts. System Overview: 4 tiles, 2 charts. Showcase object-metric page tiles also draw: My Work shows 8 / 2 / 1, Command Center shows 2 / 8 / 2 / 1 / 14 / 1.1M.", "grouping_switch": "Tasks list, Group, Add group field (Title), then Priority, Status, Priority. Painted groups were 10, 4 (High 3, Low 1, Medium 4, Urgent 2), 5 (2 each) and 4. Each count equals the server's groupBy query rows (10/4/5/4, all 200). (empty) groups: 0 at every step. Stuck 'Loading grid': 0. At ab1879721595 the same sequence painted 13/8/8.", "console_errors": "Only browser 'Failed to load resource: 404' lines for /api/v1/usage/storage (already recorded in #21625's smoke) and /favicon.ico; 0 page errors on any page.", "blocker": null }, "sdui_lockstep_reading": "objectui packages/sdui-parser/src/validate.ts at 2e818d0b5 is byte-identical to ab1879721595. checkType (:450-466) and checkMemberTypes (:407-419) still grade type-mismatch / member-type-mismatch as severity arms.includes('enum') ? 'error' : 'warning'. This repo grades both error since PR #21678 (validate.ts :446, :506), so the #21671 gap still stands at the new pin. This repo's Known-lead note (validate.ts:336-340) names objectui's copy 'at the .objectui-sha pin' with no sha, so it stays true and needs no update; the bump route regenerates nothing there, and validate.ts was not edited.", "changeset": { "file": ".changeset/console-2e818d0b51ec.md (+ .changeset/objectui-pin-citations-2e818d0b51ec.md, @objectstack/spec patch)", "bump": "@objectstack/console minor (script auto level); @objectstack/spec patch" }, "tests": "spec test 612 files / 18185 passed / 1 todo; spec typecheck exit 0; sdui-parser 225 passed; 127/127 derived gates exit 0 twice (pre- and post-merge) with --ran reconciliation clean; verify-anchors exit 0. No ablation applies: no gate or code was changed.", "mcp_calls": "0", "api_writes": "2 relay strokes: fleet-write pr_create (POST /repos/objectstack-ai/objectstack/dispatches to run 37190791940 to POST /pulls, #21710, read-back identical) and this os-dev-report comment (POST /repos/objectstack-ai/objectstack/dispatches to POST /issues/21696/comments). git push is not a REST write. No labels, no assignee, no PR body edit.", "open_questions": [], "out_of_scope_findings": [ "carrier: none (承接者:无) - ui/component.zod.ts object-grid columns record (the warning paragraph on plugin-grid/src/useColumnSummary.ts:558-568) records a footer read that objectui#11588 (d768c3178, inside this pin) retires. It uses the historical spelling and stays true of ab1879721595. Noted in the PR's Acceptance notes, not filed.", "carrier: none (承接者:无) - two pin-free anchors, ObjectView.tsx:882 (view.zod.ts [#5074] block plus two view tests) and plugin-dashboard/src/index.tsx:204 (component.test.ts icon-liveness test), already read unrelated lines at ab1879721595 and shift to :936 / :214 here. They are outside the pin-citation gate's population. Unexercised drift, noted only." ], "breaches": [], "deviations": [ "No PR assignee was set: the dispatch's write budget lists only pr_create, one comment and at most one body edit. A seat can mirror the card's assignee.", "Bump script run against a scratchpad read-only clone via OBJECTUI_ROOT (no ../objectui sibling). Lockstep regenerated from .cache/objectui-2e818d0b51ec, as #21625 did." ] }Generated by Claude Code
objectstack-fleet commentedon Oct 4, 2026
Landed: PR #21710 →
100f68b77f, verified onorigin/mainby content at 2026-10-04T10:14Z.mainto the landing heada0a35cb30f..objectui-shaonmainreads2e818d0b51ecdf8fdd9fcbf4b916bcd7fe9a9cf6: objectuimainat write time, 22 commits pastab1879721595, and past973fc20f3.check:objectui-pin-citations --verify-anchorspassed at the new pin.b493919c7consumed 2720 changesets. The contract review confirmed this on a full clone.sdui.manifest.jsonitself is byte-identical.packages/spec/srchunk is comment, describe or description text.@objectstack/consoleminor. It answers the one declared-breaking commit in the range, objectui#11466 (83e3f8377), withnot-required (no-migration-prescription)for both its entries:DeclaredNodeis objectui-internal, anddashboard.zod.tsrefuses a widgetcomponentkey by name.@objectstack/specpatch, for citation text.Contract review (review faces:
.changeset/**, non-testpackages/spec/src/**,content/docs/**): PASS on landing heada0a35cb30f(5978386382)."Done when" is not fully met: Console Pin Gate is red, and the cause is not this PR's.
plugin-ganttregistry description as "the published spec". That is a substring collision opened by feat(spec)!: object-gantt markers, object-timeline mapping and both forms' fields take the shape each block reads; five objectui-held contracts reported as forks (#21464, S-objectui-held) #21699's describe reword, and it fails the same way at the old pin.5978481505on the PR. The merge went through on the required checks.markersdescription as "the published spec", so every merge-queue build since #21699 is red #21709 (domain:spec, p1) owns the gate fix. Once it lands, Console Pin Gate onmainat this pin is the remaining reading for this card's "Done when". This seat will post it here.Lockstep, for objectui's lane (#21671, not acted on): objectui's
packages/sdui-parser/src/validate.tsis byte-identical across this hop. It still gradestype-mismatch/member-type-mismatchby the enum arm, so the severity gap with this repo still stands.Release ordering: version PR #21352 is untouched. Whether 17.7.0 ships with this pin is the maintainer's release act.
pm:dispatchedremoved.Seat
domain:devx#1·session_01VDtqoecgES7ScQYGbFVDRvGenerated by Claude Code
objectstack-fleet commentedon Oct 4, 2026
"Done when" is now met in full. Read at 2026-10-04T11:50Z.
markersdescription as "the published spec", so every merge-queue build since #21699 is red #21709's gate fix) is onmainata2b7328d57. It stops the Console Pin Gate's staleness probe from counting text that objectui's own source carries as "the published spec"..objectui-shaonmainreads2e818d0b51ecdf8fdd9fcbf4b916bcd7fe9a9cf6, the pin chore(objectui): bump the console pin to 2e818d0b51ec (carries objectui#11466, #11574, #11578, #11581 and #11583) #21710 landed.37197093822(PR fix(ci): the Console Pin Gate never counts text objectui's own source carries as the published spec (#21709) #21717's own build);37197746348(PR fix(runtime)!: an app-authored body may not read the stored-metadata tables; it reaches them through the metadata API only (#21594) #21660, on top ofa2b7328d57).This closes the one open item from the landing record above.
Seat
domain:devx#1·session_01VDtqoecgES7ScQYGbFVDRvGenerated by Claude Code
chore(objectui): bump the console pin to 2e818d0 (carries objectui#11…