Repository navigation
chore(objectui): move the console pin to f8267df93aba, past the spec deletion of checkPageComponentViewData - #23973
Conversation
…s checkPageComponentViewData deletion Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FQ8CFdsfm5FTPhm4HHxGN8
… at pin f8267df93aba Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FQ8CFdsfm5FTPhm4HHxGN8
…ectui#12711 Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FQ8CFdsfm5FTPhm4HHxGN8
📓 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): |
Review: ACCEPT · #23908 · PR #23973 @
|
Fixes #23908
Clause-②: no
This PR moves the console pin from
daeb77fc84ddtof8267df93aba, objectuimainatf8267df93aba8fb09cc1cc0692eadc0c8c5a5e56. That commit carries15d8ca6da(objectstack-ai/objectui#12678, card objectstack-ai/objectui#12666), which drops objectui's import ofcheckPageComponentViewData. #23784 (a35f7a6764) deleted that export from the spec. With the new pin,pnpm objectui:buildonmainbuilds again.It also carries one Spec Shape Gate registry entry for #23846 (
adad73f714,SelectOptionSchema.kind) against objectstack-ai/objectui#12711. The claim declared this extra.The deprecated re-export is not restored.
packages/spec/src/**is untouched, and the deletion stands.Tier: not governed.
check-governed-merges.mjs --branch claude/issue-23908-console-pin-past-23784: 0 of 6 paths hit the register. Size: 6 files, +113 / −12.Choosing the pin
maincommits at or after15d8ca6da. When this was read, there were two:15d8ca6daandf8267df93(the tip; feat(components): the page renderer no longer compiles kind jsx as html (objectui#12486) objectui#12679, card objectui#12486).git merge-base --is-ancestor 15d8ca6da… origin/mainexits 0. The objectui clone is not shallow.Gate (a): Console Pin Gate, local equivalent
turbo run build --concurrency=2 --filter=@objectstack/client --filter=@objectstack/sdui-parser --filter=@objectstack/spec. 34/34 tasks passed.scripts/build-console.shat the new pin, withOBJECTUI_ROOTpointing at a blobless objectui clone, under the verify lock. It ended withVERDICT command-exit 0:import/jobspresent;{major:4,minor:6,patch:7}, across 2253assets/*.js;packages/console/dist/.objectui-shareadsf8267df93aba8fb09cc1cc0692eadc0c8c5a5e56.pnpm check:console-shareads "Console dist matches the objectui pin (objectui@f8267df93aba)".pnpm check:console-injectionreads "the dist carries this tree's copy, and not the published one". Both exited 0.The
[MISSING_EXPORT] "checkPageComponentViewData"from the card does not appear: the console build passedvite build.The second half: manifest and lockstep record
node scripts/gen-sdui-manifest-node.mjsread.cache/objectui-f8267df93aba/apps/consoleand wrote 107 components (sha256beba7d3fe260…). It also re-recordedscripts/sdui-manifest.record.jsonat the pin.sdui.manifest.jsonmoves in two places, both from objectui changes in the range:page:headerno longer publishes theshowStarinput. This comes from objectui608033b82(card objectui#12627), which follows the spec's retirement of the key (spec(ui):page:headershowStaris declared but no longer reaches a user in the reference console: since objectui#12427 the star draws only where a host wires a favorites toggle, and no host does #23650).page:header.maxVisible's description gains two sentences, about the host's own buttons and the primary button (objectuief71a09f9).Clause-②: noholds.OBJECTUI_ROOT=.cache/objectui-f8267df93aba pnpm gen:sdui-lockstepre-recordedpackages/sdui-parser/objectui-lockstep.jsonat the pin. The grammar blob0131f27cf86dand the predicate blob76c18fb95d1fare unchanged, andcheck:sdui-locksteppasses (214 grammar lines, 25 codes). No parser port is owed.node scripts/check-sdui-manifest.mjsexits 0. WithOBJECTUI_ROOTset and--require-objectui, it also confirms that@object-ui 17.7.0is the version the pin declares.packages/console/dist/is not tracked. Nothing in it was edited by hand.Gate (b): Spec Shape Gate, local equivalent
The steps are the workflow's own:
npm packof this tree's built spec;main=f8267df93aba, withpnpm install --frozen-lockfile;spec-shape-gate.mjs inject;TURBO_FORCE=true pnpm type-check --continue, which ran 81 turbo tasks (78 passed, 3 failed:@object-ui/react#build,@object-ui/react#type-check,@object-ui/types#type-check);spec-shape-gate.mjs report, which exited 0: "5 diagnostic(s), all registered retirements -- known, not red."packages/types/src/__tests__/select-option-tier1-convergence-7014.test.tspackages/react/src/SchemaRenderer.tsxlayout.zod.ts:25(TS2305) is gone, and so isimported-defaults-8317.test.ts:145:grep -c 'layout.zod\|checkPageComponentViewData'over the log reads 0. Thetypespackage'stsc --noEmitandtsconfig.examples.jsonpassed, and its chainedtsconfig.test.jsonproduced only the four rows above.@object-ui/react's chainedtsconfig.test.jsonnever runs undertype-check, because its firsttscis red on the F4 row. It was run on its own (tsc -p tsconfig.test.json --noEmitinpackages/react). It reports exactly two rows,SchemaRenderer.tsx:1945TS2345 andSchemaRenderer.expressions.test.tsx:171TS2322. Both are covered by seat 1's existing F4 entry.git log -Sattribution, and nothing belongs to another seat.The registry entry
scripts/ci/spec-shape-retirements.jsongains one entry:objectstack_pr23846,objectstack_commitadad73f71483abf84b470e90367fe8080c44a4e0,downstream_cardobjectstack-ai/objectui#12711,registered_at2026-10-16.filepackages/types/src/__tests__/select-option-tier1-convergence-7014.test.ts,codeTS2344,messageType 'false' does not satisfy the constraint 'true'.(the full first line). The pattern carries no line number, so it covers all four rows.retiredsays what happened. Nothing was retired: the spec ADDED an optional key, and objectui's convergence pins red on a new key by design. The entry is deleted when objectui#12711 closes.6215839271on [PM seat] domain:spec · seat 2 — 🟢 os-bill · session_01LFqdRsuM5nkqoJdHd5ztVk · p1/p2 only (maintainer) #18549: objectuif78efdd1e3against objectstack570f01d270, the same four lines). This PR re-measured it against objectuif8267df93abaand this branch's spec, in the table above.parseRegistryaccepts the real file (2 entries).pnpm check:spec-shape-gate(the self-test) passes 60/60. This PR edits the registry, so the workflow'spull_requesttrigger runs the real gate here.objectui commits
daeb77fc..f8267df9that touch the spec consumption surfaceThe range has 40 non-merge commits. The 14 below change a line naming
@objectstack/spec(git showexcluding Markdown):15d8ca6dafix(types): drop the page view-data check objectstack main deleted (objectui#12666). This is why the pin moves. Without it the console does not build against this tree.f8267df93objectui#12486: the page renderer drops itskind: 'jsx'arm. The spec already refusesjsxat parse. Breaking forPageNodeSchema.kind, answered in the changeset's ADR-0087 note.f62b6ff4edeps(v18): objectui resolves@objectstack/*18.0.0-next.2. No effect on the console build, which injects this tree's spec throughOBJECTSTACK_SPEC_DIST. The single-zod canary passes.608033b82page:headerstops readingshowStar. This is the manifest's one input removal, above.a98a23c78Studio retires the two delegated-admin switches the spec retired ([finding] AdminScope.manageBindings and authorEnvironmentSets are honoured by no write path after C3; the ADR-0090 D9/D12 junction gates are unmeasured; permissions docs describe removed gates #23488's objectui half).3eb3ec138objectui#12504:DataSource.updateViewConfigand its capability gate are retired. Breaking for@object-ui/types; nothing in this tree calls it.023087f63resolveRecordPointerreadsreferenceDeletedWhen.c6a42be39objectui deletes its copy of the spec shape gate. The gate now runs only here.f78efdd1e,db8ce2f41,8614705c1,ef71a09f9,33fbc861d,7b5e55893.None of these blocks the pin: the console builds and the shape compile reads only registered rows.
The console changeset
.changeset/console-f8267df93aba.mdwas written byscripts/bump-objectui.sh --no-commit f8267df93aba…, followingdocs/releases-maintenance.mdstep 3.@objectstack/consoleminor: 46 releasing changesets across 40 non-merge commits, 3 annotated breaking, 3 commits without a changeset.not-required (no-migration-prescription). Each of the three breaking entries is answered against this tree.check-adr-0087-registration --base origin/main,check-changeset-no-major --base origin/mainandcheck-empty-changeset --base origin/mainall exit 0.skip-changesetis not applied..changeset/23908-*.mdonly if a gate asked for one. The pin's own changeset is namedconsole-SHA12.mdby the bump script, as on every earlier hop. No other changeset is added.Verification, at
0136ab25cnode scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack(no paths, merge base161aee104) derived 71 commands. Each was run, with its exit code captured before any pipe.--ranwith exit codes reads "71 derived, 71 run, 0 NOT-MEASURED, 0 UNRUN (a DERIVED zero)".check-plugin-teardown-shape --self-test: its fixture commit621a48760was outside the shallow clone. Aftergit fetch origin 621a48760…it passed 48 cases.check:dual-build-cjs-loads: it needed a full build.turbo run build --concurrency=2 --filter=!@objectstack/docspassed 75/75, and the gate then read 110 entries across 68 packages.test/typecheckis owed.Acceptance notes
Generated by Claude Code
🤖 Generated with Claude Code
https://claude.ai/code/session_01FQ8CFdsfm5FTPhm4HHxGN8