Repository navigation
chore(objectui): move the console pin from 0707b4ae3712 to 4016370af3c9, the newest green objectui main and the first pin past objectui#12957 - #24476
Merged
objectstack-fleet[bot] merged 4 commits intoOct 19, 2026
Conversation
scripts/bump-objectui.sh --no-commit 4016370af3c9c9dafec2bc5299afd8e8079701b8, the newest objectui main commit green at the move (104 check-runs completed, 101 success, 3 skipped, 0 failure). It carries objectui 749ed760, the merge that makes objectui consume @objectstack/* by commit. The generated console changeset is renamed to this card's prefix and its ADR-0087 placeholder is answered against this tree. Claude-Session: https://claude.ai/code/session_0188TsgPV8kQXfuRuKmkj2ks Co-authored-by: Claude <noreply@anthropic.com>
…kstep record at 4016370af3c9 node scripts/gen-sdui-manifest-node.mjs over the console built at the new pin (107 components; record:related_list and record:quick_actions descriptions moved), and OBJECTUI_ROOT=.cache/objectui-4016370af3c9 pnpm gen:sdui-lockstep (grammar blob 0131f27cf86d and predicate blob 76c18fb95d1f unchanged). Claude-Session: https://claude.ai/code/session_0188TsgPV8kQXfuRuKmkj2ks Co-authored-by: Claude <noreply@anthropic.com>
…jectui-pin-past-12957
…jectui-pin-past-12957
Contributor
📓 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): |
Contributor
Author
席位核对 — ACCEPT · objectui
|
This was referenced Oct 19, 2026
objectstack-fleet
Bot
deleted the
claude/issue-24457-objectui-pin-past-12957
branch
October 19, 2026 07:37
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #24457
Clause-②: no
This PR moves the console pin from
0707b4ae3712to4016370af3c9. That is objectuimainat4016370af3c9c9dafec2bc5299afd8e8079701b8(objectui PR #13018), the newest objectuimaincommit that was green at the move. It is the first pin that carries objectui749ed760(objectstack-ai/objectui#12957's merge), so it is the first console build that takesscripts/build-console.sh's.objectstack-shabranch (#24306, PR #24440). The maintainer's order, verbatim: 「你继续负责验证。.objectui-sha 可以升级到最新」. This PR is the end-to-end verification of ruling B on objectstack-ai/objectui#12955, so its evidence below is the deliverable.This PR is not a release act. The Version Packages PR is not touched, and no release workflow is dispatched.
Tier: not governed.
node scripts/pm/check-governed-merges.mjs --teston the five paths: "0 of 5 path(s) hit the register ... NOT governed". Size: 5 files, +80 / -10.Choosing the pin
Green, read at the move. REST
repos/objectstack-ai/objectui/commits/SHA/check-runs, every page, read by this session:maincommit4016370af3c9(tip; read 2026-10-19T05:06:51Z)46dbf32bf57fRepo Gates,Bundle Analysis)09eadf4e1c14d0934b919d64Snapshot the board to the archive branch), 3 skippedAt 04:48Z the tip still had 20 runs in progress. The session waited in the foreground until the last one (
Test (coverage)) completed at 05:06:51Z, readgit ls-remote(still4016370af3c9), and bumped at 05:06:59Z.The bump.
OBJECTUI_ROOT=SCRATCH_CLONE bash scripts/bump-objectui.sh --no-commit 4016370af3c9c9dafec2bc5299afd8e8079701b8, exit 0: "objectui pin: 0707b4ae3712 → 4016370af3c9 (on origin/main)". The range walked completely in a full (non-shallow) scratch clone. ⛔ The shared../objectuicheckout was never written: every objectui read and every build tree came from a scratch clone named byOBJECTUI_ROOT.Ancestry, in that clone (
--is-shallow-repositoryfalse):git merge-base --is-ancestor 749ed7607614 4016370af3c9…: exit 0. objectui#12957's merge is in the pin; an exit 0 proves itself in any checkout.0707b4ae3712is an ancestor: exit 0.4016370af3c9an ancestor of749ed760): exit 1.0707b4ae3712..4016370af3c9: 33 non-merge commits.objectui's own objectstack pin at
4016370af3c9:.objectstack-sha=2c9bf9430a1198bfaa5c0de9ff4a811838c6869c, unchanged since749ed760.The dispatch's mechanism assumptions, measured
All four are measured at this PR's head
4289f447b1: the branch merged withorigin/mainec951e29e4, which carries #24427 (26501ae24f) and the spec retirement #24442 (69f342b924,feat(spec)!).build-console.shlog at4289f447b1, in order:→ objectui@4016370af3c9 installs @objectstack/client @objectstack/core @objectstack/formula @objectstack/lint @objectstack/sdui-parser @objectstack/spec @objectstack/types by commit — building them here..., then the closure build (turbo, with declarations): 36/36 tasks;→ OBJECTSTACK_ROOT is set: packing @objectstack/* from /home/user/objectstack-issue-24457, standing in for the pin 2c9bf9430a11.,pack 7 package(s): 15.8s, and✓ node_modules/.cache/objectstack now holds ... from /home/user/objectstack-issue-24457 (4289f447b122);Lockfile is up to date, resolution step is skipped,Done in 6.5s;@object-ui/console^...build: 34/34 tasks, 0 cached. 12 of those packages build withtscfirst, and the console's own build istsc && vite build, so objectui's sources type-check against this tree's packed declarations. Then the console bundle:✓ 8956 modules transformed..objectstack-shais still2c9bf9430a, as the PM measured). Re-measured anyway: thedependencies,optionalDependenciesandpeerDependenciesNAMES of all seven packages are identical between objectstack2c9bf9430aand this tree (versions moved18.0.0-next.3→18.0.0-next.4with the Version Packages merge725a5b1311; names did not). The pin script's own lockfile check passed: it refuses on a difference, and it exited 0 before the install.4289f447b1:node_modules/.cache/objectstack/.stamp.json:source: external,root= this worktree,sha=4289f447b122…,dirty: false.node_modules/.pnpm: 7@objectstackentries, all 7 in the@objectstack+NAME@file+node_modules+.cache+objectstack+NAME…form.dist/againstpackages/NAME/dist/:diff -rqexit 0 for all seven (spec, core, types, client, formula, sdui-parser, lint). Control: the installed spec'sdistagainstpackages/core/dist: exit 1.pnpm-lock.yaml(byte-identical to the one committed at4016370af3c9,cmpexit 0): 0 registry-resolved@objectstack/*keys, 14file:keys. Control for the pattern: the same grep over objectui's lockfile at the old pin0707b4ae3712counts 14 registry-resolved keys ('@objectstack/client@18.0.0-next.3'and the rest).Console Pin Gate, local equivalent
Run step by step as
ci.yml'sconsole-pinjob runs it. Each exit code was captured before any pipe; heavy steps ran underscripts/pm/os-verify-lock.sh. Shared 4-core box, so wall-clock figures are shared-box readings. Deviations from the CI job:--concurrency=2instead of 4 (the container's resource rule), andOBJECTUI_ROOTnames a full scratch clone where CI shallow-clones (with noOBJECTUI_ROOT, this checkout's sibling../objectui, a shared checkout, would have been used).Run 3, at this PR's head
4289f447b1. The build tree and the dist were deleted first, so the objectui worktree, the install and both builds were fresh.pnpm install --frozen-lockfilepnpm exec turbo run build --filter=@objectstack/client... --concurrency=2(36/36; lock VERDICTcommand-exit 0)OBJECTUI_ROOT=SCRATCH_CLONE bash scripts/build-console.sh(lock VERDICTcommand-exit 0, held 481 s)CACHE_HITempty:✓ Console dist present (65352 KB, via scripts/build-console.sh) from objectui@4016370af3c9pnpm check:console-sha:✓ Console dist matches the objectui pin (objectui@4016370af3c9).pnpm check:console-injection --require-stamp(self-test 67 assertions; the stamp records no observable skew)node scripts/gen-sdui-manifest-node.mjs: 107 components, sha256c6b03966dae9…; byte-identical to the committed pair (git status --porcelain: 0 lines)Inside the build:
✓ Bundle canary 'import/jobs' present;✓ Single-zod canary: exactly one zod version literal {major:4,minor:6,patch:7}(2258assets/*.jsread);✓ Injected and vendored @objectstack/spec declare the same descriptions — no observable skew(the vendored spec IS this tree's packed spec now);✓ Shipped the tracked sdui.manifest.json (recorded at objectui@4016370af3c9, this pin);✓ @objectstack/console dist ready (65352 KB) from objectui@4016370af3c9.The bundled spec is this tree's, two ways:
@objectstack/spec@18.0.0-next.3tarball (the spec objectui's own pin was released as):node scripts/assert-console-spec-injection.mjs --injected packages/spec --vendored NPM_NEXT3 --objectui BUILD_TREE --assets COPY/assets, exit 0: "Console bundle carries THIS tree's @objectstack/spec, and only it", 16 of 16 injected-only descriptions present, the 1 published-only description absent.69f342b924): the page action row's rewritten describes ("The row runs the declared action its ...", "the route writes them only where the acti..."); 0 inpackages/spec/srcat26501ae24f, the commit before it.26501ae24f): the navigation item'svisibledescribe (BaseNavItemSchema, "no console renders ..."); 0 inpackages/spec/srcat the base725a5b1311.So the console bundles this tree as of the PR head, not an earlier build.
Two earlier runs of the same sequence, each all exit 0, with the same item 1 to 3 readings (seven
diff -rqexit 0, control exit 1, 0 registry-resolved keys) and the same two-sided probe (16/16 present, 1/1 absent):b0899060c5(merged with26501ae24f), fresh tree:build-console.shheld the lock 478 s,dist ready (65336 KB); the generator's re-run there was byte-identical too.4dd6c40d4d(before any merge; base725a5b1311):build-console.shheld 472 s,pack 7 package(s): 18.3s, frozen installDone in 8.4s,dist ready (65332 KB); this run produced the committed manifest pair.The second half: manifest and lockstep record
node scripts/gen-sdui-manifest-node.mjs, exit 0: 107 components, sha256c6b03966dae9…, re-recordedscripts/sdui-manifest.record.jsonat the pin (built-tree,@object-ui/core17.7.0). Re-run atb0899060c5and at4289f447b1: exit 0 and byte-identical both times.sdui.manifest.jsonchanges in two components, no component added or removed (107 → 107):record:related_list'srelationshipValueFielddescription no longer namessys_user_position/sys_position(objectui78b07f468, objectui#7611);record:quick_actions'sactionNamesdescription says the empty placeholder shows on a design / preview surface and nothing at runtime (objectui1d3da6c1e, objectui#12995).packages/sdui-parser/objectui-lockstep.json:node scripts/check-sdui-lockstep.mjsexit 1 before ([pin-moved]),OBJECTUI_ROOT=.cache/objectui-4016370af3c9 pnpm gen:sdui-lockstepexit 0, thenpnpm check:sdui-lockstepexit 0: byte-identical to objectui@4016370af3c9 over 214 grammar lines (blob0131f27cf86d), all 25 diagnostic codes, and thenot-a-containerpredicate (blob76c18fb95d1f). Both blobs are unchanged, so no parser port is owed.OBJECTUI_ROOT=.cache/objectui-4016370af3c9 node scripts/check-sdui-manifest.mjs, exit 0: present, intact, recorded at the live pin, and@object-ui 17.7.0is what the pin declares.The console changeset
.changeset/24457-console-pin-4016370af3c9.mdwas written byscripts/bump-objectui.sh --no-commitand renamed to this card's prefix, as PR #24311 did. Its list is the generator's, untouched.@objectstack/consoleminor: 32 releasing changesets across 33 non-merge commits, 1 annotated breaking, 0 release-nothing, and 1 commit without a changeset (749ed7607, objectui#12957's tooling merge).ADR_0087_SCAFFOLD, objectstack#6494). It is answerednot-required (no-migration-prescription)against this tree, withClause-②: nobeside it, as in PR chore(objectui): move the console pin from 5e15928b4631 to 0707b4ae3712, the newest green objectui main #24311:78b07f468(objectui#7611) narrows four objectui faces:@object-ui/core'srecordDelete.confirmText, theperm.facet.*/objectActions.resetPackageSet*pack keys of@object-ui/i18n, thefield:permission-facet-linkregistry key of@object-ui/plugin-detail, andobjectui check's known types in@object-ui/cli.@object-ui/*package (git grepover sources and manifests: 0). No file in this tree authorswidget: 'permission-facet-link'(0). Thesys_permission_setobject whose facets that widget drew is no longer served here (ADR-0131 stage 8).Gates
All at this PR's head
4289f447b1, each exit code captured before any pipe. The same 72 were also run, with the same result, atb0899060c5.node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands(no paths: the change set comes from git, 5 paths vs merge baseec951e29ethree-dot, 90 changed lines) derived 72 commands. Every one was run.pnpm check:dual-build-cjs-loadsexited 3,PREREQUISITE NOT MET("Runpnpm buildfirst ... nothing was measured"): it needs a whole-tree build, and this diff changes no package's source ordist. NOT MEASURED locally; CI'sLint & Repo Gatesreading stands.--ranreconciliation: "72 derived famil(ies) accounted for — 71 run, 1 NOT-MEASURED (1 DERIVED from a recorded exit 3)", exit 0.origin/main31ce45c071and that one gate script changed in that range (scripts/check-skills-token-ratchet.mjs, an artifact-roster family outside the 72). This PR does not mergemainagain for that; the queue rebuilds on the currentmain.check-adr-0087-registration --base origin/main0 (the exemption notice names this changeset),check-empty-changeset --base origin/main0,check-changeset-no-major --base origin/main0,check-sdui-manifest.mjs0 and--self-test0,pnpm check:sdui-lockstep0,pnpm check:console-sha0,pnpm check:console-injection0,pnpm check:objectui-changeset0,pnpm check:nul-bytes0.pnpm check:objectui-bump0 ("20 assertions across 5 cases") andpnpm check:objectui-changeset0 (also in the derived list).test/typecheckis owed.CI
ci.yml(THE TWO SPEEDS, lines 93-98) and theconsole-pinjob'sif:excludepull_requestandmerge_group. The fleet-write relay cannot dispatchci.ymleither:WORKFLOW_DISPATCH_ALLOWLISTinscripts/pm/fleet-write/ops.mjsholds onlyshard-timings-refresh.ymlandrelease.yml. So the pre-merge full battery is NOT MEASURED, and the local equivalent above is the pre-merge reading.main's first full-battery run after the merge (apushrun, or the hourlyschedulerun if that push run is cancelled first). This PR changes.objectui-sha, so the console-dist cache key misses and that run builds the console fresh at4016370af3c9. The dispatching seat reads it and links it on chore(objectui): move the console pin from 0707b4ae3712 to the newest green objectui main — the first pin past objectui#12957 (749ed760), the end-to-end verification of #24306 and of ruling B on objectui#12955 #24457; if it is red, it is amain-red this card owns.Acceptance notes
Observations, not filed:
scripts/build-console.sh(andbump-objectui.sh) default to the sibling../objectuiwhenOBJECTUI_ROOTis unset. In the multi-agent worktree layout that sibling is a shared checkout, and the build adds a git worktree to it and may fetch into it (its working tree and HEAD are not touched). This run named a scratch clone every time. Documented sibling layout, not a defect.node scripts/check-sdui-manifest.mjswithoutOBJECTUI_ROOTreads that sibling too (read-only); there it prints NOT CHECKED for the version leg, because the sibling does not carry the pin. WithOBJECTUI_ROOTnamed it checks the leg and passes.46dbf32bf57fwas passed over because two of its check-runs endedcancelled(its CI was cancelled when the next commit landed), so they never reached a verdict..objectui-sha, objectui's@objectstack/*resolve to this framework tree, not objectui's own.objectstack-shabuild (ruling B on objectstack-ai/objectui#12955, step 3) #24306's report and not repeated as findings here: the console-dist cache key's coverage of the six non-spec manifests, andcheck-console-injection's "injected and published spec" wording for a no-skew stamp.Generated by Claude Code