Skip to content

chore(objectui): move the console pin to f8267df93aba, past the spec deletion of checkPageComponentViewData - #23973

Merged
objectstack-fleet[bot] merged 3 commits into
mainfrom
claude/issue-23908-console-pin-past-23784
Oct 16, 2026
Merged

objectstack-fleet[bot] merged 3 commits into
mainfrom
claude/issue-23908-console-pin-past-23784

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #23908
Clause-②: no

This PR moves the console pin from daeb77fc84dd to f8267df93aba, objectui main at f8267df93aba8fb09cc1cc0692eadc0c8c5a5e56. That commit carries 15d8ca6da (objectstack-ai/objectui#12678, card objectstack-ai/objectui#12666), which drops objectui's import of checkPageComponentViewData. #23784 (a35f7a6764) deleted that export from the spec. With the new pin, pnpm objectui:build on main builds 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

Gate (a): Console Pin Gate, local equivalent

  1. Client closure: turbo run build --concurrency=2 --filter=@objectstack/client --filter=@objectstack/sdui-parser --filter=@objectstack/spec. 34/34 tasks passed.
  2. scripts/build-console.sh at the new pin, with OBJECTUI_ROOT pointing at a blobless objectui clone, under the verify lock. It ended with VERDICT command-exit 0:
    • bundle canary import/jobs present;
    • exactly one zod version literal, {major:4,minor:6,patch:7}, across 2253 assets/*.js;
    • "Console bundle carries THIS tree's @objectstack/spec, and only it";
    • "dist ready (64708 KB) from objectui@f8267df93aba".
  3. packages/console/dist/.objectui-sha reads f8267df93aba8fb09cc1cc0692eadc0c8c5a5e56. pnpm check:console-sha reads "Console dist matches the objectui pin (objectui@f8267df93aba)". pnpm check:console-injection reads "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 passed vite build.

The second half: manifest and lockstep record

  • node scripts/gen-sdui-manifest-node.mjs read .cache/objectui-f8267df93aba/apps/console and wrote 107 components (sha256 beba7d3fe260…). It also re-recorded scripts/sdui-manifest.record.json at the pin.
  • sdui.manifest.json moves in two places, both from objectui changes in the range:
  • OBJECTUI_ROOT=.cache/objectui-f8267df93aba pnpm gen:sdui-lockstep re-recorded packages/sdui-parser/objectui-lockstep.json at the pin. The grammar blob 0131f27cf86d and the predicate blob 76c18fb95d1f are unchanged, and check:sdui-lockstep passes (214 grammar lines, 25 codes). No parser port is owed.
  • node scripts/check-sdui-manifest.mjs exits 0. With OBJECTUI_ROOT set and --require-objectui, it also confirms that @object-ui 17.7.0 is 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 pack of this tree's built spec;
  • a separate objectui worktree at main = f8267df93aba, with pnpm 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."
objectui file line code reading
packages/types/src/__tests__/select-option-tier1-convergence-7014.test.ts 130, 138, 150, 157 TS2344 known (registered: objectstack-ai/objectui#12711), this PR's entry
packages/react/src/SchemaRenderer.tsx 1945 (x2: build and type-check) TS2345 known (registered: objectstack-ai/objectui#12654), seat 1's F4 entry
  • layout.zod.ts:25 (TS2305) is gone, and so is imported-defaults-8317.test.ts:145: grep -c 'layout.zod\|checkPageComponentViewData' over the log reads 0. The types package's tsc --noEmit and tsconfig.examples.json passed, and its chained tsconfig.test.json produced only the four rows above.
  • The blind spot, closed. @object-ui/react's chained tsconfig.test.json never runs under type-check, because its first tsc is red on the F4 row. It was run on its own (tsc -p tsconfig.test.json --noEmit in packages/react). It reports exactly two rows, SchemaRenderer.tsx:1945 TS2345 and SchemaRenderer.expressions.test.tsx:171 TS2322. Both are covered by seat 1's existing F4 entry.
  • No other red row. Nothing needed git log -S attribution, and nothing belongs to another seat.

The registry entry

scripts/ci/spec-shape-retirements.json gains one entry: objectstack_pr 23846, objectstack_commit adad73f71483abf84b470e90367fe8080c44a4e0, downstream_card objectstack-ai/objectui#12711, registered_at 2026-10-16.

  • It has one pattern: file packages/types/src/__tests__/select-option-tier1-convergence-7014.test.ts, code TS2344, message Type 'false' does not satisfy the constraint 'true'. (the full first line). The pattern carries no line number, so it covers all four rows.
  • retired says 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.
  • Where the measurement comes from. Seat 1 measured it first (6215839271 on [PM seat] domain:spec · seat 2 — 🟢 os-bill · session_01LFqdRsuM5nkqoJdHd5ztVk · p1/p2 only (maintainer) #18549: objectui f78efdd1e3 against objectstack 570f01d270, the same four lines). This PR re-measured it against objectui f8267df93aba and this branch's spec, in the table above.
  • parseRegistry accepts the real file (2 entries). pnpm check:spec-shape-gate (the self-test) passes 60/60. This PR edits the registry, so the workflow's pull_request trigger runs the real gate here.

objectui commits daeb77fc..f8267df9 that touch the spec consumption surface

The range has 40 non-merge commits. The 14 below change a line naming @objectstack/spec (git show excluding Markdown):

  • 15d8ca6da fix(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.
  • f8267df93 objectui#12486: the page renderer drops its kind: 'jsx' arm. The spec already refuses jsx at parse. Breaking for PageNodeSchema.kind, answered in the changeset's ADR-0087 note.
  • f62b6ff4e deps(v18): objectui resolves @objectstack/* 18.0.0-next.2. No effect on the console build, which injects this tree's spec through OBJECTSTACK_SPEC_DIST. The single-zod canary passes.
  • 608033b82 page:header stops reading showStar. This is the manifest's one input removal, above.
  • a98a23c78 Studio 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).
  • 3eb3ec138 objectui#12504: DataSource.updateViewConfig and its capability gate are retired. Breaking for @object-ui/types; nothing in this tree calls it.
  • 023087f63 resolveRecordPointer reads referenceDeletedWhen.
  • c6a42be39 objectui deletes its copy of the spec shape gate. The gate now runs only here.
  • Imports or type references only: 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.md was written by scripts/bump-objectui.sh --no-commit f8267df93aba…, following docs/releases-maintenance.md step 3.

  • @objectstack/console minor: 46 releasing changesets across 40 non-merge commits, 3 annotated breaking, 3 commits without a changeset.
  • The script's ADR-0087 placeholder is answered 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/main and check-empty-changeset --base origin/main all exit 0.
  • Because the pin's changeset is a real declaring changeset, skip-changeset is not applied.
  • File-surface note: the claim allowed a .changeset/23908-*.md only if a gate asked for one. The pin's own changeset is named console-SHA12.md by the bump script, as on every earlier hop. No other changeset is added.

Verification, at 0136ab25c

  • node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack (no paths, merge base 161aee104) derived 71 commands. Each was run, with its exit code captured before any pipe. --ran with exit codes reads "71 derived, 71 run, 0 NOT-MEASURED, 0 UNRUN (a DERIVED zero)".
  • Two commands first exited 3 (prerequisite not met). Both were re-run green at the same head:
    • check-plugin-teardown-shape --self-test: its fixture commit 621a48760 was outside the shallow clone. After git fetch origin 621a48760… it passed 48 cases.
    • check:dual-build-cjs-loads: it needed a full build. turbo run build --concurrency=2 --filter=!@objectstack/docs passed 75/75, and the gate then read 110 entries across 68 packages.
  • This PR changes no package source, so no package test / typecheck is owed.

Acceptance notes

  • hourly full run: red on main (CI) #23885 remains open: it is the hourly full-battery card, and it goes with the next green run, not with this PR.
  • objectui#12711 remains open. Its registry entry here is deleted when it closes.

Generated by Claude Code

🤖 Generated with Claude Code

https://claude.ai/code/session_01FQ8CFdsfm5FTPhm4HHxGN8

…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
@github-actions github-actions Bot added size/m documentation Improvements or additions to documentation tooling labels Oct 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

⚠️ 1 changed file(s) yielded no anchor (packages/sdui-parser/objectui-lockstep.json), so the pages documenting them are NOT COVERED by this run — this is not a clean bill of health for those files. Nothing else in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 1 changed package(s)).

What this run could not see
  • 1 changed file(s) yielded no anchor (packages/sdui-parser/objectui-lockstep.json) — pages documenting those are invisible to this run
  • a page that states a rule by its inputs shares no identifier with the emitter that implements the rule, so an emitter-only diff cannot list it — not on this run and not on any run. Measured on fix(driver-sql): emit varchar(maxLength) for a text field a declared index keys on #11430: content/docs/protocol/objectql/types.mdx documents the text-family column mapping by the ObjectQL type names it maps FROM (text / textarea / html) while the diff changed createColumn; it went unlisted, and it was the page that diff falsified, in four places. No shared token exists to detect this on, so a rule your change carries has to be re-read by hand in the pages that restate it.
  • a key NAME is not a key, so the hand re-read the line above prescribes can land on the wrong schema. The same spelling is authorable on one governed type and a [REMOVED] tombstone on another for each of active, aria, joins, objects, template, tools and version (censused on [finding] tools is a key on BOTH AgentSchema (tombstoned, dead) and SkillSchema (live, cloud-attested), so a name-based search attributes skill examples to the agent key — it produced a false stop-the-line alarm on PR #19059 #19093 over the liveness ledger's governed types, top-level keys); nothing in a search result distinguishes the two, so a grep hit on a LIVE example reads as evidence about the DEAD key. Measured on fix(spec): the agent.tools liveness row says dead — it claimed live on a key the schema tombstoned #19059: content/docs/ai/agents.mdx was reported as contradicting the agent.tools tombstone over its tools: example at :161, which is inside the defineSkill({ block opened at :155 — the page was already correct. Settle ownership by PARSING the value against both schemas, never by the name: that literal PASSES SkillSchema, and as an AgentSchema it FAILS at tools with the tombstone prescription. ⛔ These names are not the whole class — a key retired through a .strict() guidance map leaves no tombstone in the walked shape and none of them here (tool.category, live as AIToolDefinition.category).

Coarse fallback — 3 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): node scripts/docs-audit/affected-docs.mjs --json 68ffa5dc1af1abeb012cd1ed7dfa18be4c07a8c4 → packageMentionDocs.

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Review: ACCEPT · #23908 · PR #23973 @ 0136ab25c8b78c15922351d0e15ccb1964aa2294 · domain:spec seat 2 (#18549) · 2026-10-16T15:48Z

Session session_01LFqdRsuM5nkqoJdHd5ztVk · os-bill. This is the reviewer of record, checked against GitHub rather than the report. The chain: claim 6217575004, then report 6218521835.


Generated by Claude Code

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 16, 2026 15:49
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge October 16, 2026 15:49
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 16, 2026
Merged via the queue into main with commit e66f13c Oct 16, 2026
42 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-23908-console-pin-past-23784 branch October 16, 2026 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Console pin does not build on main: objectui daeb77fc imports checkPageComponentViewData, deleted from spec by #23784

2 participants