Repository navigation
chore(console): move the objectui pin to b41ed7f68956 so Console Pin Gate builds again - #25735
Conversation
Moves .objectui-sha from 2958f17 to objectui main b41ed7f, the merge that makes the translation preview draw the positions and permissions groups. At the old pin, objectui's app-shell fails tsc (TS1360 at TranslationPreview.tsx:99) against this tree's spec, which declares those two groups, so Console Pin Gate is red on main. Written by scripts/bump-objectui.sh, which also wrote the @objectstack/console changeset from the changesets objectui declared over the range. Claude-Session: https://claude.ai/code/session_01BvMXmT8umCQPhoBPsBjqCA Co-authored-by: Claude <noreply@anthropic.com>
Ran scripts/gen-sdui-manifest-node.mjs over the tree that scripts/build-console.sh built at the new pin. sdui.manifest.json is byte-identical (sha256 d1fde278ffd6, 107 components): objectui's public component registry did not change over the range. Only the provenance record moves: the pin, the modules root, and the @object-ui workspace version (18.0.0 to 18.1.0, objectui's own release inside the range). Claude-Session: https://claude.ai/code/session_01BvMXmT8umCQPhoBPsBjqCA Co-authored-by: Claude <noreply@anthropic.com>
check:sdui-lockstep reds on a pin move ([pin-moved]): its record of objectui's sdui-parser was taken at 2958f17. Re-recorded with pnpm gen:sdui-lockstep against a checkout at b41ed7f. objectui's packages/sdui-parser/src did not change over the range, so only the revision, its date and recordedAgainstPin move; the grammar region blob (0131f27cf86d), the 25 diagnostic codes and the containment predicate (76c18fb95d1f) are unchanged, and the gate is green. Claude-Session: https://claude.ai/code/session_01BvMXmT8umCQPhoBPsBjqCA 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): |
|
Seat review (domain:devx, #6023): ACCEPT at Read against dispatch order
The thread reproduced Console Pin Gate locally with the job's own steps: red at the old pin (TS1360, Serial: #25711 (ui-merge 4a) deletes Generated by Claude Code |
…1, WIP) main moved .objectui-sha (#25735) and the root build script (#25738); the pin stays deleted and the build keeps main's site exclusion. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0149BHSXfCdQywGaLdpRAtWe
Requested by Elon · project thread
Fixes #25713
Clause-②: no
Metadata-protocol: none
What this does
Moves
.objectui-shafrom2958f17e9c6ato objectuimainb41ed7f68956c8cfda21bc790548361af81b09ac, the merge of objectstack-ai/objectui#13485 (the change behind objectstack-ai/objectui#13478: the translation preview draws thepositionsandpermissionsgroups). This is the pin target the devx seat chose on the card (comment 6392376241), not objectuimainHEAD.main;git merge-base --is-ancestorexits 0)..objectui-shaand.changeset/console-b41ed7f68956.mdwere written byscripts/bump-objectui.sh b41ed7f68956c8cfda21bc790548361af81b09ac --no-commit. Neither was hand-edited. The digest walked the range completely: 9 releasing changesets, 1 release-nothing, 6 commits with no changeset; objectui declaredminor, recorded aspatch.scripts/sdui-manifest.record.jsonwas re-recorded bynode scripts/gen-sdui-manifest-node.mjsover the treescripts/build-console.shbuilt at the new pin.sdui.manifest.jsonitself is byte-identical (sha256d1fde278ffd6…, 107 components), so objectui's public component registry did not change over the range.packages/sdui-parser/objectui-lockstep.jsonwas re-recorded bypnpm gen:sdui-lockstep(see "In-place addition" below).Why
At the old pin, objectui's
@object-ui/app-shellfailstscagainst this tree's spec, which declares thepositions/permissionstranslation groups. SoConsole Pin Gateis red onmain(scheduleCIrun 40136758584), and the release gate refuses a cut while it stays red. Version Packages #25640 is open.Reproduction (local, the Console Pin Gate job's own steps)
Console Pin Gateruns only onpushandschedule(itsif:inci.ymlexcludespull_requestandmerge_group), so this PR's checks cannot show it. Instead, every step of the job was run locally on this branch:pnpm exec turbo run build --filter=@objectstack/client..., thenbash scripts/build-console.sh, then the dist presence assertion,pnpm check:console-shaandpnpm check:console-injection --require-stamp. Heap wasNODE_OPTIONS=--max-old-space-size=6144, because a 4-CPU / 15 GB cloud container OOMsapp-shell'stscat Node's default heap.2958f17e9c6a(old)f3fea0a03dbuild-console.shexit 2:@object-ui/app-shell:build: src/views/metadata-admin/previews/TranslationPreview.tsx(99,3): error TS1360: Type '{ objects: …; … 7 more …; settingsCommon: … }' does not satisfy the expected type(aRecordkeyed by the spec's translation groups,positionsandpermissionsamong them). Same failure as run 40136758584.b41ed7f68956(new)8b7fcf45build-console.shexit 0 (34/34 objectui tasks): bundle canary present; single-zod canary finds one literal{major:4,minor:6,patch:7}over 2291 assets; spec injection carries this tree's spec only (1 of 1 injected-only description present, all 3 pin-only absent, reference is objectui's own build of objectstack47af3dde42bb);dist ready (66308 KB) from objectui@b41ed7f68956. Thenpnpm check:console-shaexit 0 andpnpm check:console-injection --require-stampexit 0.The build at the new pin ran before the manifest re-record, so it printed the expected warning that the record still named
2958f17e9c6a. After the re-record,node scripts/check-sdui-manifest.mjsexits 0 at pinb41ed7f68956.Acceptance after merge: the next schedule
CIonmainreadsConsole Pin Gatesuccess. That run id will be reported on #25713.Contract changes the range brings
None on what a metadata author writes. Every objectui changeset in the range declares
Metadata-protocol: none. In detail:packages/sdui-parser/srcdid not change over the range. The grammar region blob0131f27cf86d, the 25 diagnostic codes and thenot-a-containerpredicate blob76c18fb95d1fall agree..objectstack-sha:915e94049922→47af3dde42bb, by way ofe649c2d91e(objectstack 18.1.0, objectui0984c77e1).scripts/objectstack-pin.mjsaccepted this tree standing in for it, with no dependency-name refusal.a3c0da922(chore: release packages (#13289)): the@object-uiworkspace version recorded in the manifest record moves from18.0.0to18.1.0.cd70b7818, objectstack#25723 /c85408f): react and@types/reactare pinned to 19.3.0, andzodis declared^4.6.5, the range this monorepo declares. Workspace-root readers resolve one level up when the tree sits underui/. Tooling only, no published behaviour changes. The console bundle still carries a single zod.b41ed7f68(Clause-②: yesin objectui):isSpecTranslationDatanow also recognises a served translation document by thepositions/permissionsgroups. That is the consumer catching up with the spec this repo already declares; this repo's contract does not change.readonlyWhen,html/richtextvalues are sanitized withrehype-sanitize, settings evaluatevisiblethrough the expression interpreter and fail closed, and the chat UI leaves the first page load. All of it is listed in the changeset.In-place addition (outside the claimed file surface)
pnpm check:sdui-lockstepreds on any pin move ([pin-moved]: its record was taken at2958f17e9c6a), so the required lint job would be red without a re-record. Recorded withOBJECTUI_ROOT=.cache/objectui-b41ed7f68956 pnpm gen:sdui-lockstep, a clean detached checkout at the pin. Onlyobjectui.rev,objectui.revDateandrecordedAgainstPinmove. The gate is then green: "this copy is byte-identical to objectui@b41ed7f68956 … agrees on all 25 diagnostic code(s) and on thenot-a-containerpredicate". The four bounded-fix conditions hold: it is the same class as the manifest re-record (a pin-derived record); it is mechanical and generator-written; no in-flight claim holdspackages/sdui-parser/**(#25711 and #25712 surfaces read); and the gate family was already in this diff's derived set. The file is not in@objectstack/sdui-parser'sfiles[], so nothing it publishes changes and no extra changeset is needed.Serial note
#25711 (ui-merge 4a) lists
.objectui-shain its claimed surface, because it deletes the pin files at cutover. This PR modifies that file. Whichever of the two lands second resolves a delete/modify conflict on it. No other ui-merge child surface is touched.origin/mainwas merged before each push (no new commits sincef3fea0a03d).Gates
node scripts/pm/dispatch-gates.mjs --commandsat heada2ad39d3: 75 families derived. 73 exit 0. 2 are NOT MEASURED locally, both exit 3 PREREQUISITE NOT MET:pnpm check:dual-build-cjs-loadsneeds a fullpnpm build, andnode scripts/check-plugin-teardown-shape.mjs --self-testneeds an unshallow clone. CI runs both.--ranreconciliation: "75 derived famil(ies) accounted for — 73 run, 2 NOT-MEASURED".check-sdui-manifest,check:sdui-lockstep,check:console-sha,check:console-injection,check:objectui-changeset,check-changeset-no-major --base origin/main,check-empty-changeset --base origin/main,check-adr-0087-registration --base origin/main,check:nul-bytes,check:merge-driver.node scripts/pm/check-governed-merges.mjs --branch HEAD: 0 of 4 paths hit the register, so this PR is NOT governed. Size is +38 / -8.node scripts/check-commit-card-trailers.mjs --range origin/main..HEAD: 3 commits clean.Acceptance notes
**patch** — Clause-②: yes Metadata-protocol: none (objectui b41ed7f68)and twoClause-②: no Metadata-protocol: nonelines forcd70b7818. The same shape has already shipped inpackages/console/CHANGELOG.md(for example, lines 256, 514 and 543). objectui's changesets now open withClause-②:/Metadata-protocol:lines, so the first paragraphparseChangesettakes assummaryis the declaration block, not the description. The changeset here is left exactly as generated.scripts/objectui-changeset-digest.mjsis in release(ui-merge): one release lane for both scopes — 39 @object-ui packages join the @objectstack fixed group,packages/consolebuilds fromui/apps/console, both repos' pin scripts and sha files are deleted (parent #25677, 4a/6) #25711's claimed surface. Reported to the seat for filing; dedupe words: objectui-changeset-digest summary declaration lines Clause-② first paragraph.Generated by Claude Code