You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit a3d7588
Browse filesBrowse the repository at this point in the historyBrowse files
chore(objectui): bump the console pin to db11afd (carries objectui#11119, the objectui#11105 fix) (#20706)
Fixes#20638
Clause-②: no
Bumps the console pin: `.objectui-sha` `dd3f7e1be356` -> `db11afd4967c`
(objectui `origin/main` HEAD at bump time, on main). The pin ships
`@object-ui/console` 17.6.0 (`apps/console/package.json` at the pin and
`@object-ui/core` workspace version both 17.6.0; `npm view
@object-ui/console@17.6.0 version` answers 17.6.0).
## Containment (objectui `merge-base --is-ancestor C db11afd`, full
clone, not shallow)
| commit | subject | result |
|---|---|---|
| `a5841be351` | flow designer shows a connector action's description
(objectui#11028) | exit 0, contained |
| `99878d8e3a` | validateTree no longer calls a declared bind unknown
(objectui#11008) | exit 0, contained |
| `49f76725aa` | matrix report with columns draws its declared chart
(objectui#10964) | exit 0, contained |
| `ae582b70a` | number field useGrouping (objectui#11026) | exit 0,
contained |
| `5b2ea17570` | Studio previews show authored descriptions and labels
(objectui#11027) | exit 0, contained |
| `3100bef65c` | server-grouped grid selects field names
(objectui#11105, PR #11119) | exit 0, contained |
| control `dd3f7e1be3` (old pin) | | exit 0 |
The target is objectui `origin/main` HEAD (`git branch -r --contains`
lists `origin/main`).
## What changed
- `.objectui-sha`, `sdui.manifest.json`,
`scripts/sdui-manifest.record.json` (via
`scripts/gen-sdui-manifest-node.mjs`, no arguments: the
`--objectui-version` route is retired per that script), and
`.changeset/console-db11afd4967c.md` (written by
`scripts/bump-objectui.sh`, minor).
- `pnpm objectui:build` at the new pin built the console dist (64404 KB)
with no API break against framework code.
## Follow-up (pushed on this branch, two commits, written
2026-09-29T20:01Z)
Requested by the PM seat after the first report: the two gates that sat
outside the first file surface.
- `packages/sdui-parser/objectui-lockstep.json` re-recorded with `pnpm
gen:sdui-lockstep` against `db11afd4967c`; `pnpm check:sdui-lockstep`
now exits 0.
- The 49 spec sources that asserted the old pin were re-measured, not
re-labelled: each anchor mapped through the `dd3f7e1be356..db11afd`
diff and re-read, hashes and counts re-taken with the method each record
names, and only then the pin and the moved numbers updated. Files:
`component.zod.ts`, `component.test.ts`, `view.zod.ts`,
`dataset.zod.ts`, `functional-completeness.ts`,
`api-methods-batch-conformance.test.ts`, six
`migrations/entries/semantic/18.*` files and the regenerated
`migrations/registry.ts`. `pnpm --filter @objectstack/spec run
check:objectui-pin-citations` exits 0 (49 asserting citations match, 7
anchor content assertions verified).
- `content/docs/references/ui/view.mdx` regenerated with `gen:docs`: the
`FormField.span` describe names the pin, so its sha moved. This is the
only non-comment text change; no schema or behaviour moved.
- One claim was falsified, not just moved: objectui#5157 closed
`ObjectMapConfigSchema` with `.strict()`, so the `ListMapConfigSchema`
record in `view.zod.ts` no longer holds when it says the renderer's
schema is a plain `z.object` that parses an undeclared key clean. The
three anchors were re-pointed and the two false sentences were qualified
in the comment. That prose wants a human read.
- These edits ship inside published text, so
`.changeset/objectui-pin-citations-db11afd4967c.md` carries an
`@objectstack/spec` patch (commit `d8bac3877d`).
## Resolved since the first report
- **ADR-0087 disposition, the maintainer's ruling** (takeover claim
`5903537467` on #20638): `.changeset/console-db11afd4967c.md` now
carries `adr-0087: not-required (no-migration-prescription)`, worded as
in #20436.
- The diff moves the pin and what travels with it, and adds, removes or
renames no ObjectStack-authorable key.
- The pin-citation re-measure changes describe and migration-entry text
only.
- The 6 declared-breaking entries are objectui's own surfaces
(`@object-ui/types`, `@object-ui/core`, `@object-ui/plugin-dashboard`).
- `check-adr-0087-registration --base origin/main` exits 0.
- **Base:** `origin/main` `7053333e1e` merged at `ef6276c0e9` through
`scripts/pm/os-regen-merge.sh`. Only
`packages/spec/src/migrations/registry.ts` overlapped; it text-merged,
and `check:migration-registry` reads it current.
- **The two local NOT MEASURED gates now run green:**
`check:dual-build-cjs-loads` and `check:type-check-debt` both exit 0
after a whole-workspace build.
## Boot at the new pin
- `scripts/build-console.sh` at `db11afd4967c`, with this tree's client
and spec injected and the canary present.
`assert-console-spec-injection` passes: 105 of 145 injected-only
descriptions present, all 160 published-only absent. `chunk-membership`
reads `client` in `vendor-objectstack`.
- `examples/app-showcase` booted with `objectstack dev --ui --fresh
--no-seed-admin`; `bootstrap-status` read `hasOwner: false`.
- Headless Chromium opened `/_console/setup` and submitted the owner
form. `bootstrap-status` flipped to `hasOwner: true`, and the session is
the new owner (`platform_admin`, `org_owner`). The wizard landed on
`/_console/home`, with Showcase and Setup listed.
- Signed in again through `/_console/login`: Showcase opens its
Capability Map html page, and Setup opens System Overview. 0 page
errors, 0 `TypeError`, 0 5xx. The only 404 is `GET
/api/v1/usage/storage`, as at the old pin.
## Governed surface
None of the 20 changed paths is a row of `GOVERNED_SURFACES` in
`scripts/pm/check-governed-merges.mjs` (rows: `docs/adr/`, `.claude/`,
`skills/`, `AGENTS.md`, `CLAUDE.md`, `docs/NORTH-STAR.md`). No release
act performed.
Gates at head `ef6276c0e9`: 125 derived, 125 run, 0 NOT-MEASURED, 0
unrun; all 125 exit 0. `packages/spec` tests: 16991 passed (576 files).
`sdui-parser`: 199 passed. Spec and sdui-parser typecheck clean.
---
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01VDtqoecgES7ScQYGbFVDRv
---------
Co-authored-by: Claude <noreply@anthropic.com>
The spec's objectui citations, and the shipped description text that names the `.objectui-sha` pin (the `FormField.span` describe and six migration-entry descriptions), are re-measured against the new console pin, objectui `db11afd4967c`.
6
+
7
+
Clause-②: no
8
+
9
+
One claim was falsified rather than moved: `ObjectMapConfigSchema` is `.strict()` at the new pin (objectui#5157), so the `ListMapConfigSchema` record now says the renderer's schema warns on an undeclared key instead of parsing it clean. No key, default, enum member or export moves.
|**colSpan**|`integer`| optional | Absolute column span (1-4). The renderer clamps it to the form grid's current column count, so the cell starts at a real column boundary at every surface width and never overflows (`colSpan: 4` in a 3-column grid renders as 3); a `colSpan` within the column count renders as authored, and `colSpan: 1` emits no span class at all. |
203
-
|**span**|`Enum<'auto' \| 'full'>`| optional (default: `"auto"`) | Relative field width. 'auto' (default — omit it): the renderer sizes the field from its widget type × the current column count — at the pin this repo builds against (`.objectui-sha` = `dd3f7e1be356`), only textarea, markdown, html, richtext and repeater resolve to the full column count (repeater reaches it through the wide `field:grid` widget it maps to). 'full': resolves to the form grid's full column count. How far down the container-query tiers that span is emitted is the renderer's, not this key's: at that same pin the renderer emits one clamped col-span class per multi-column tier (`@md:col-span-2 @2xl:col-span-3` for a 3-column grid), so the field takes the whole row at every multi-column tier, not just the widest. |
203
+
|**span**|`Enum<'auto' \| 'full'>`| optional (default: `"auto"`) | Relative field width. 'auto' (default — omit it): the renderer sizes the field from its widget type × the current column count — at the pin this repo builds against (`.objectui-sha` = `db11afd4967c`), only textarea, markdown, html, richtext and repeater resolve to the full column count (repeater reaches it through the wide `field:grid` widget it maps to). 'full': resolves to the form grid's full column count. How far down the container-query tiers that span is emitted is the renderer's, not this key's: at that same pin the renderer emits one clamped col-span class per multi-column tier (`@md:col-span-2 @2xl:col-span-3` for a 3-column grid), so the field takes the whole row at every multi-column tier, not just the widest. |
204
204
|**widget**|`string`| optional | Custom widget/component name (overrides type-based inference) |
205
205
|**language**|`string`| optional | Code editor language (for type=code) |
|**colSpan**|`integer`| optional | Absolute column span (1-4). The renderer clamps it to the form grid's current column count, so the cell starts at a real column boundary at every surface width and never overflows (`colSpan: 4` in a 3-column grid renders as 3); a `colSpan` within the column count renders as authored, and `colSpan: 1` emits no span class at all. |
368
-
|**span**|`Enum<'auto' \| 'full'>`| optional (default: `"auto"`) | Relative field width. 'auto' (default — omit it): the renderer sizes the field from its widget type × the current column count — at the pin this repo builds against (`.objectui-sha` = `dd3f7e1be356`), only textarea, markdown, html, richtext and repeater resolve to the full column count (repeater reaches it through the wide `field:grid` widget it maps to). 'full': resolves to the form grid's full column count. How far down the container-query tiers that span is emitted is the renderer's, not this key's: at that same pin the renderer emits one clamped col-span class per multi-column tier (`@md:col-span-2 @2xl:col-span-3` for a 3-column grid), so the field takes the whole row at every multi-column tier, not just the widest. |
368
+
|**span**|`Enum<'auto' \| 'full'>`| optional (default: `"auto"`) | Relative field width. 'auto' (default — omit it): the renderer sizes the field from its widget type × the current column count — at the pin this repo builds against (`.objectui-sha` = `db11afd4967c`), only textarea, markdown, html, richtext and repeater resolve to the full column count (repeater reaches it through the wide `field:grid` widget it maps to). 'full': resolves to the form grid's full column count. How far down the container-query tiers that span is emitted is the renderer's, not this key's: at that same pin the renderer emits one clamped col-span class per multi-column tier (`@md:col-span-2 @2xl:col-span-3` for a 3-column grid), so the field takes the whole row at every multi-column tier, not just the widest. |
369
369
|**widget**|`string`| optional | Custom widget/component name (overrides type-based inference) |
370
370
|**language**|`string`| optional | Code editor language (for type=code) |
Copy file name to clipboardExpand all lines: packages/spec/src/migrations/entries/semantic/18.kernel-health-check-and-hot-reload-durations-unit-in-key.ts
0 commit comments