Repository navigation
chore(objectui): move the console pin from 5e15928b4631 to 0707b4ae3712, the newest green objectui main - #24311
Conversation
Claude-Session: https://claude.ai/code/session_01RChr2Ub8xhe5nUkMjHePtk Co-authored-by: Claude <noreply@anthropic.com>
…kstep record at 0707b4ae3712 Claude-Session: https://claude.ai/code/session_01RChr2Ub8xhe5nUkMjHePtk Co-authored-by: Claude <noreply@anthropic.com>
📓 Docs Drift Check
What this run could not see
Coarse fallback — 3 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
席位核对 · ACCEPT: PR #24311 at
|
Fixes #24283
Clause-②: no
This PR moves the console pin from
5e15928b4631to0707b4ae3712. That is objectuimainat0707b4ae37120d45d6401170666a0b76cb7a3546(objectstack-ai/objectui#12950), the newest objectuimaincommit that was green at the move. The maintainer ruled 「要升级就升最新」 (6247729493), so the target is the newest green commit, and the card's32b492b67is a floor, not the target.This PR is not a release act. The Version Packages PR #24168 is not touched, and no release workflow is dispatched.
Tier: not governed. All 5 paths are outside the governed register (
.changeset/,.objectui-sha,packages/sdui-parser/,scripts/sdui-manifest.record.json,sdui.manifest.json). Size: 5 files, +129 / -9.Choosing the pin
The green reading was taken by the dispatching seat (
domain:devxseat 1,session_01VwoC2RxFfgzY2eXuC7Xo6g) over REST onrepos/objectstack-ai/objectui/commits/SHA/check-runs, at 2026-10-18T10:22Z:eee54ed79ea8(the tip by then): 18 checks still in progress.3da39ae4298e: 7 in progress and 1 cancelled.0707b4ae3712: 100 success, 3 skipped, 0 failure. Completed green, and the newest such commit.The bump ran at 2026-10-18T10:24:57Z:
scripts/bump-objectui.sh --no-commit 0707b4ae37120d45d6401170666a0b76cb7a3546. It answered "5e15928b4631 → 0707b4ae3712 (on origin/main)".Ancestors. I checked these with
git merge-base --is-ancestor X 0707b4ae3712in a fresh objectui clone. Every one exits 0, and an exit 0 proves itself even in a partial clone. The seat's RESTcompareagrees, witheee54ed79ea8readingbehind 2as its control.d637be321(objectui PR docs(scripts): correct the type-source-resolution prose that #11490 falsified, and pin it #12921)8523e81db(objectui PR fix(security): RBAC catalog seeder swallows unique-violation write failures — 'seeded 0' reported as success while a legacy index vetoes every row #12923)32b492b67(objectui PR fix(spec): narrow StrategyContext.executeAggregate aggregations[].method to AggregationFunction #12937)54e79f989(objectui PR Four morecurrent_userbinding-text sites are stale — including the form SECTION slot, whose verdict flipped when objectui#6110 / #6111 landed #12914, objectui#12854)record:line_itemshydrates an untyped column from the child fieldcollectHydratedInlineColumnErrors) does not walkrecord:line_items, so once its columns hydrate, a currency column withscalepublishes there and is refused on the master-detail carriers #24190fb501bc89(objectui PR ci(lint): run os-regen-merge's --self-test, mirroring the verify-lock step #12944, objectui#12941)operation: 'update'action posts only its collected params044f23193(objectui PR docs(pm): an entry-.d.ts byte-identity claim needs a positive control in the same block #12901)5e15928b4631Spec floor. objectui
03f1d6528(PR [finding] One route emitsdeclaredCodeby hand instead of through the shared rule — harmless today (it is a 4xx), but it makes "every emission goes through one rule" literally false #12948) and641dad4b3(PR pm-ratchet: pay down the 8 residual Han+ASCII-punct soft breaks in os-dev.md #12945) raise@object-ui/plugin-detail's and@object-ui/app-shell's@objectstack/specfloor to^18.0.0-next.3. This tree's workspacepackages/specis18.0.0-next.3, which satisfies the floor. The console build below compiled against it.Range
5e15928b4631..0707b4ae3712: 67 non-merge commits.Gate (a): Console Pin Gate, local equivalent
I ran the same procedure as PR #24144:
turbo run build --concurrency=2 --filter=@objectstack/client --filter=@objectstack/sdui-parser --filter=@objectstack/spec. 34/34 tasks passed,VERDICT command-exit 0under the verify lock.pnpm objectui:build(scripts/build-console.sh) at the new pin, under the verify lock, ended withVERDICT command-exit 0:import/jobspresent;{major:4,minor:6,patch:7};packages/console/dist/.objectui-shareads0707b4ae37120d45d6401170666a0b76cb7a3546.pnpm check:console-shareads "Console dist matches the objectui pin (objectui@0707b4ae3712)".pnpm check:console-injectionpasses.That build ran before the manifest was regenerated, so it warned that the shipped copy of
sdui.manifest.jsonnamed5e15928b4631. The tracked file is now regenerated (below).packages/console/dist/is untracked, and CI builds it fresh.The second half: manifest and lockstep record
node scripts/gen-sdui-manifest-node.mjsread.cache/objectui-0707b4ae3712/apps/consoleand wrote 107 components (sha256c75bf93c6c71…). It also re-recordedscripts/sdui-manifest.record.jsonat the pin, with@object-ui/core17.7.0.sdui.manifest.jsonchanges in one component.element:definition-list'sitemsdescription now says an empty list draws the active language's "No data" (common.noData), not "No details". This comes from objectui2cfdc99df(objectui PR [finding] Nobody has characterised what /tmp does across a container reset here — the verify-lock ledger has now outlived a reported boot on two separate boxes, and the persistence decision has no measurement to stand on #12919), which is in the range. No component is added or removed.OBJECTUI_ROOT=.cache/objectui-0707b4ae3712 pnpm gen:sdui-lockstepre-recordedpackages/sdui-parser/objectui-lockstep.jsonat the pin.check:sdui-lockstepreported onepin-movedfinding (exit 1).0131f27cf86dand the predicate blob76c18fb95d1fare unchanged (214 grammar lines, 25 codes, 7 sources), so no parser port is owed.node scripts/check-sdui-manifest.mjsexits 0. It confirms@object-ui 17.7.0from the objectui checkout. Its--self-testpasses 13 cases.Spec Shape Gate and pin citations
No gate asked for either. The Spec Shape Gate compiles objectui
main, not.objectui-sha, and its trigger does not match these paths. No spec docblock citation is edited, and no registry row is added.The console changeset
.changeset/24283-console-pin-0707b4ae3712.mdwas written byscripts/bump-objectui.sh --no-commitand renamed to this card's prefix.@objectstack/consoleminor: 84 releasing changesets across 67 non-merge commits, 2 annotated breaking, 1 release-nothing, and 1 commit without a changeset (5ec2175fd, docs only).not-required (no-migration-prescription). Each breaking entry is answered against this tree:32b492b67(@object-ui/plugin-form): the exportedderiveDetail/deriveColumnsnow require abooleanLabelargument. These are objectui functions, no package in this tree imports@object-ui/plugin-form, and the stored boolean values are unchanged.c999d4c01(@object-ui/types): a form select option carryingkindordefaultis refused.FormSelectOptionSchemainpackages/spec/src/ui/view.zod.tsalready leaves out both keys and refuses them by name.Clause-②: no, as the precedent pin changeset does.check-adr-0087-registration --base origin/main,check-changeset-no-major --base origin/mainandcheck-empty-changeset --base origin/mainall exit 0.Verification, at
435946d3node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands(no paths, merge based537a318b) derived 72 commands. I ran each one and captured its exit code before any pipe. 70 exited 0 on the first run.check-plugin-teardown-shape --self-test: its fixture commit621a48760was outside the shallow clone. Aftergit fetch --depth=1 origin 621a48760…it passed 48 cases (exit 0).check:dual-build-cjs-loads: it needs a full build.turbo run build --concurrency=2 --filter=!@objectstack/docspassed 76/76, and the gate then passed (111 entries, 69 packages, exit 0).--ranwith exit codes reads "72 derived famil(ies) accounted for — 72 run, 0 NOT-MEASURED (a DERIVED zero)".test/typecheckis owed.What this pin unblocks
d637be321,8523e81dband32b492b67reach an installable console once this lands.collectHydratedInlineColumnErrors) does not walkrecord:line_items, so once its columns hydrate, a currency column withscalepublishes there and is refused on the master-detail carriers #24190:54e79f989(objectui#12854) is in the pin.fb501bc89(objectui#12941), is in the pin.collectHydratedInlineColumnErrors) does not walkrecord:line_items, so once its columns hydrate, a currency column withscalepublishes there and is refused on the master-detail carriers #24190 and runtime: an operation: 'update' action with no declared params writes any wire key into the row — the ledger says an undeclared param is refused (ADR-0104 D2); the console posts the patch as params, so both halves change together #24268 remain open. Each is re-read after this lands.Acceptance notes
apps/console/src/__tests__/registry-inputs-spec-parity.test.tsstill ledgersmarketplace:installed-listasEMPTY SPEC SHAPEat this pin. The spec here already retires the type by name (spec(ui): retiremarketplace:installed-listonce objectui#12733 lands: no renderer draws it, yet the page vocabulary and the page lint still accept it #24230), and that entry's own note says the spec retiring it makes the entry RETIRED UPSTREAM. Moving it is an objectui-side change, so it is not part of this pin move. The fix belongs to an objectui PR that the next pin hop will carry.mainhas moved on (3da39ae4298e,eee54ed79ea8), and those commits were still running CI when the seat read them. They go with the next hop.Showcase Smoke(showcase smoke is red on main two days running since the console pin moved to 5e15928b4631: detail-shapes.spec.ts finds no icon svg in the grouped fieldGroup Money header #24288) is not this card's.examples/app-showcase/e2e/**is not touched.Generated by Claude Code