Skip to content

chore(objectui): move the console pin from 5e15928b4631 to 0707b4ae3712, the newest green objectui main - #24311

Merged
objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-24283-console-pin-latest
Oct 18, 2026
Merged

objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-24283-console-pin-latest

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #24283
Clause-②: no

This PR moves the console pin from 5e15928b4631 to 0707b4ae3712. That is objectui main at 0707b4ae37120d45d6401170666a0b76cb7a3546 (objectstack-ai/objectui#12950), the newest objectui main commit that was green at the move. The maintainer ruled 「要升级就升最新」 (6247729493), so the target is the newest green commit, and the card's 32b492b67 is 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

Gate (a): Console Pin Gate, local equivalent

I ran the same procedure as PR #24144:

  1. Client closure: turbo run build --concurrency=2 --filter=@objectstack/client --filter=@objectstack/sdui-parser --filter=@objectstack/spec. 34/34 tasks passed, VERDICT command-exit 0 under the verify lock.
  2. pnpm objectui:build (scripts/build-console.sh) at the new pin, under the verify lock, ended with VERDICT command-exit 0:
    • bundle canary import/jobs present;
    • exactly one zod version literal, {major:4,minor:6,patch:7};
    • "Console bundle carries THIS tree's @objectstack/spec, and only it" (7 of 7 injected-only descriptions present, 1 of 1 published-only absent);
    • "@objectstack/console dist ready (65172 KB) from objectui@0707b4ae3712".
  3. packages/console/dist/.objectui-sha reads 0707b4ae37120d45d6401170666a0b76cb7a3546.
    • pnpm check:console-sha reads "Console dist matches the objectui pin (objectui@0707b4ae3712)".
    • pnpm check:console-injection passes.
    • Both exit 0.

That build ran before the manifest was regenerated, so it warned that the shipped copy of sdui.manifest.json named 5e15928b4631. 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.mjs read .cache/objectui-0707b4ae3712/apps/console and wrote 107 components (sha256 c75bf93c6c71…). It also re-recorded scripts/sdui-manifest.record.json at the pin, with @object-ui/core 17.7.0.
  • sdui.manifest.json changes in one component. element:definition-list's items description now says an empty list draws the active language's "No data" (common.noData), not "No details". This comes from objectui 2cfdc99df (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-lockstep re-recorded packages/sdui-parser/objectui-lockstep.json at the pin.
    • Before the re-record, check:sdui-lockstep reported one pin-moved finding (exit 1).
    • After it, the gate passes (exit 0). The grammar blob 0131f27cf86d and the predicate blob 76c18fb95d1f are unchanged (214 grammar lines, 25 codes, 7 sources), so no parser port is owed.
  • node scripts/check-sdui-manifest.mjs exits 0. It confirms @object-ui 17.7.0 from the objectui checkout. Its --self-test passes 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.md was written by scripts/bump-objectui.sh --no-commit and renamed to this card's prefix.

  • @objectstack/console minor: 84 releasing changesets across 67 non-merge commits, 2 annotated breaking, 1 release-nothing, and 1 commit without a changeset (5ec2175fd, docs only).
  • The script's ADR-0087 placeholder is answered not-required (no-migration-prescription). Each breaking entry is answered against this tree:
    • 32b492b67 (@object-ui/plugin-form): the exported deriveDetail / deriveColumns now require a booleanLabel argument. 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 carrying kind or default is refused. FormSelectOptionSchema in packages/spec/src/ui/view.zod.ts already leaves out both keys and refuses them by name.
  • The body carries Clause-②: no, as the precedent pin changeset does.
  • check-adr-0087-registration --base origin/main, check-changeset-no-major --base origin/main and check-empty-changeset --base origin/main all exit 0.

Verification, at 435946d3

  • node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands (no paths, merge base d537a318b) derived 72 commands. I ran each one and captured its exit code before any pipe. 70 exited 0 on the first run.
  • Two exited 3 (prerequisite not met), the same two as on PR chore(objectui): move the console pin from f8267df93aba to 5e15928b4631 before 18.0.0-next.3 #24144:
    • check-plugin-teardown-shape --self-test: its fixture commit 621a48760 was outside the shallow clone. After git 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/docs passed 76/76, and the gate then passed (111 entries, 69 packages, exit 0).
  • --ran with exit codes reads "72 derived famil(ies) accounted for — 72 run, 0 NOT-MEASURED (a DERIVED zero)".
  • This PR changes no package source, so no package test / typecheck is owed.

What this pin unblocks

Acceptance notes


Generated by Claude Code

@github-actions github-actions Bot added size/m documentation Improvements or additions to documentation tooling labels Oct 18, 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 30da04f8e01758805121ff7a734a1b3472fc6192 → packageMentionDocs.

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对 · ACCEPT: PR #24311 at 435946d37c (#24283)

domain:devx seat 1 (#6023) · sunhaolin · session_01VwoC2RxFfgzY2eXuC7Xo6g · review of record, written 2026-10-18T11:28Z

Checked against GitHub and origin/main, not against the report.

Checklist:

  • Shape: draft, base main. The first line is Fixes #24283, then a line-initial Clause-②: no. A scan of the body finds exactly one closing keyword, and it names this card.
  • Scope: 5 files, +129 / −9, the claim 6248314078 surface exactly, and the same five-file shape as PR chore(objectui): move the console pin from f8267df93aba to 5e15928b4631 before 18.0.0-next.3 #24144: .objectui-sha, packages/sdui-parser/objectui-lockstep.json, scripts/sdui-manifest.record.json, sdui.manifest.json, and .changeset/24283-console-pin-0707b4ae3712.md. check-governed-merges --pr 24311: NOT governed.
  • The target is the ruling's: .objectui-sha reads 0707b4ae37120d45d6401170666a0b76cb7a3546, the newest green objectui main commit at the seat's 10:22Z reading (6248720842), per 「要升级就升最新」. All four body commits, fb501bc89 and the old pin are ancestors: REST compare at the seat's reading, and merge-base --is-ancestor exit 0 in the dev's clone. tooling(build-console): when the console build installs objectui at .objectui-sha, objectui's @objectstack/* resolve to this framework tree, not objectui's own .objectstack-sha build (ruling B on objectstack-ai/objectui#12955, step 3) #24306's ordering holds: tooling: objectui consumes @objectstack/* by commit — .objectstack-sha, a bump script, and dev and CI built from that commit's source, cached by the pin (ruling B on objectui#12955, step 1) objectui#12957 is unmerged.
  • The second half: objectui-lockstep.json and sdui-manifest.record.json carry the new rev, date and pin, with grammar and predicate blobs unchanged. sdui.manifest.json has one description change (element:definition-list items, from objectui 2cfdc99df), 107 components.
  • The changeset, read sentence by sentence where it makes a claim about this tree:
    • frontmatter "@objectstack/console": minor and a line-initial Clause-②: no;
    • the digest is scripts/bump-objectui.sh's output over 5e15928b4631...0707b4ae3712;
    • the ADR-0087 answer's two claims are true on origin/main:
      • (1) nothing imports @object-ui/plugin-form. Import-form hits: 0; the two textual hits are doc comments in packages/spec/src/ui/. Control: 170 from '@objectstack/spec' imports under packages/cli/src;
      • (2) FormSelectOptionSchema (packages/spec/src/ui/view.zod.ts) is built by dropping default and kind from SelectOptionSchema.shape into a strictObject, so neither key is accepted.
  • Console Pin Gate: ci.yml runs the job only off pull_request and merge_group (github.event_name != 'pull_request' && github.event_name != 'merge_group'), so skipped on this head is by design. The precedent PR chore(objectui): move the console pin from f8267df93aba to 5e15928b4631 before 18.0.0-next.3 #24144 read skipped at its head and success on its merge commit 265ef64ba7. The card's local equivalent is in the PR body, section "Gate (a)": pnpm objectui:build VERDICT 0 at the new pin, check:console-sha and check:console-injection pass. The real gate is read on this PR's merge commit, and that reading is part of the landing record.
  • Gates at head 435946d37c, read at this write: 31 success, 6 skipped (all rostered), 0 red; Test Core (3/6) and (4/6) still in progress. Lint & Repo Gates, TypeScript Type Check and Check Changeset are all success. Local: 72 derived, 72 run, 0 NOT-MEASURED.

Accepted deviations: the green reading was taken by the seat, because the cloud container cannot read objectui. This is recorded on the card (6248720842).

Out of scope: objectui's registry-inputs-spec-parity ledger still lists marketplace:installed-list as EMPTY SPEC SHAPE. This is Acceptance notes, carrier: none. objectui still resolves the npm 18.0.0-next.3 spec, which predates the retirement (#24255), so the entry is true of what objectui installs, and its own note flips it to RETIRED UPSTREAM when objectui consumes a spec that carries the retirement. It reports itself; no card.

Landing: once every check on this head is green, pr_ready + automerge_enable through the relay. After the merge: the Console Pin Gate run on the merge commit, then the landing record on #24283.


Generated by Claude Code

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 18, 2026 11:32
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge October 18, 2026 11:32
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 18, 2026
Merged via the queue into main with commit f5e98a3 Oct 18, 2026
41 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-24283-console-pin-latest branch October 18, 2026 12:03
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

2 participants