Repository navigation
Commit f5e98a3
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
- **The green reading** was taken by the dispatching seat (`domain:devx`
seat 1, `session_01VwoC2RxFfgzY2eXuC7Xo6g`) over REST on
`repos/objectstack-ai/objectui/commits/SHA/check-runs`, at
**2026-10-18T10:22Z**:
- `eee54ed79ea8` (the tip by then): 18 checks still in progress.
- `3da39ae4298e`: 7 in progress and 1 cancelled.
- `0707b4ae3712`: 100 success, 3 skipped, 0 failure. **Completed green,
and the newest such commit.**
- This dev session could not read objectui's API from its container (the
request was refused for an unattached repository), so the seat took the
reading. The blocked report and the hand-off are on the card.
- **The bump** ran at **2026-10-18T10:24:57Z**:
`scripts/bump-objectui.sh --no-commit
0707b4a`. It answered "5e15928b4631 →
0707b4a (on origin/main)".
- **Ancestors.** I checked these with `git merge-base --is-ancestor X
0707b4a` in a fresh objectui clone. Every one exits 0, and an exit
0 proves itself even in a partial clone. The seat's REST `compare`
agrees, with `eee54ed79ea8` reading `behind 2` as its control.
| objectui commit | what it ships | waiting here |
|:--|:--|:--|
| `d637be321` (objectui PR #12921) | a print record page draws the
record's header actions beside Print | #8346 |
| `8523e81db` (objectui PR #12923) | the read-only line-items table
prints display text | #8346 |
| `32b492b67` (objectui PR #12937) | boolean and file line cells print
in the session language | #8346 |
| `54e79f989` (objectui PR #12914, objectui#12854) | `record:line_items`
hydrates an untyped column from the child field | #24190 |
| `fb501bc89` (objectui PR #12944, objectui#12941) | an `operation:
'update'` action posts only its collected params | #24268 |
| `044f23193` (objectui PR #12901) | a slotted page template draws only
the regions it places | (in the range) |
| `5e15928b4631` | the previous pin | n/a |
- **Spec floor.** objectui `03f1d6528` (PR #12948) and `641dad4b3` (PR
#12945) raise `@object-ui/plugin-detail`'s and `@object-ui/app-shell`'s
`@objectstack/spec` floor to `^18.0.0-next.3`. This tree's workspace
`packages/spec` is `18.0.0-next.3`, which satisfies the floor. The
console build below compiled against it.
- **Range** `5e15928b4631..0707b4a`: 67 non-merge commits.
## 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 #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 #24144:
- `check-plugin-teardown-shape --self-test`: its fixture commit
`621a48760` was outside the shallow clone. After `git fetch --depth=1
origin 621a487…` 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
- **#8346** (PDF / print chain): the three print fixes `d637be321`,
`8523e81db` and `32b492b67` reach an installable console once this
lands.
- **#24190**: `54e79f989` (objectui#12854) is in the pin.
- **#24268**: its objectui half, `fb501bc89` (objectui#12941), is in the
pin.
- #8346, #24190 and #24268 remain open. Each is re-read after this
lands.
## Acceptance notes
- objectui
`apps/console/src/__tests__/registry-inputs-spec-parity.test.ts` still
ledgers `marketplace:installed-list` as `EMPTY SPEC SHAPE` at this pin.
The spec here already retires the type by name (#24230), and that
entry's own note says the spec retiring it makes the entry RETIRED
UPSTREAM. Moving it is an objectui-side change, so it is not part of
this pin move. The fix belongs to an objectui PR that the next pin hop
will carry.
- objectui `main` has moved on (`3da39ae4298e`, `eee54ed79ea8`), and
those commits were still running CI when the seat read them. They go
with the next hop.
- The red `Showcase Smoke` (#24288) is not this card's.
`examples/app-showcase/e2e/**` is not touched.
---
_Generated by [Claude
Code](https://claude.ai/code/session_01RChr2Ub8xhe5nUkMjHePtk)_
---------
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 83048c6 commit f5e98a3
5 files changed
Lines changed: 129 additions & 9 deletions
File tree
- .changeset
- packages/sdui-parser
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| |||
0 commit comments