Skip to content

chore(objectui): bump the console pin to 9dfaca654311 (carries objectui#11611, #11614 and #11619) - #21800

Merged
objectstack-fleet[bot] merged 8 commits into
mainfrom
claude/issue-21772-objectui-pin-bump
Oct 5, 2026
Merged

objectstack-fleet[bot] merged 8 commits into
mainfrom
claude/issue-21772-objectui-pin-bump

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #21772
Clause-②: no

This moves the bundled Console's objectui pin from 2e818d0b51ec (#21710) to objectui main as of the write time, 9dfaca654311cddd81714153c4f82c241d7cdc54, which is past c096f03. The Console now carries objectui#11611 (the ref:dataset spec-form widget), objectui#11614 (the grid widget's camelCase keys) and objectui#11619 (the record chrome's picture). Those are the three merges #21714, #21768 and #21765 wait on.

⛔ This is not a release act. Version PR #21352 is untouched, and no tag, publish or Release was made. The card's "release first" hold is lifted by the maintainer's order recorded in the claim: 「浏览器测试已经在运行,还有很多问题在处理,服务端开发不应该被阻塞」.

Range

  • objectui git ls-remote origin refs/heads/main read 9dfaca654311cddd81714153c4f82c241d7cdc54 at 2026-10-05T00:51:29Z, just before the bump, and the same sha again before this PR was opened.
  • git merge-base --is-ancestor exits 0 against 9dfaca654311 for all three carried merges: b508ac50d9 (objectui#11611), 2abec3a96c (objectui#11614) and c096f03279 (objectui#11619). The objectui clone is shallow, but exit 0 proves itself there.
  • 2e818d0b51ec..9dfaca654311 has 17 commits and 0 merges.
  • objectui declared 24 changesets over the range, and all 24 release. There are 0 release-nothing changesets and 0 commits without a changeset. None declares major. Four carry the author's breaking annotation, and the highest declared level is minor, so the console changeset is minor. These counts come from scripts/objectui-range.mjs --from 2e818d0b51ec --to 9dfaca654311 --json and from the bump's own digest. They were measured, not copied from the card.
  • Four commit subjects carry !. git log --format='%h %s' 2e818d0b5..9dfaca654 | grep -E '^[0-9a-f]+ [a-z]+(\([^)]*\))?!:' gives 9db9ff3f9, 8b14aecbd, 2abec3a96 and b403bb36f.
objectui commit landing changesets declared disposition
9dfaca654 objectui#11615: the default simple form draws a self-describing inline section entry; ObjectFormSection.fields gains the form view's { field } arm 1, minor, BREAKING (for TypeScript readers) releasing; declared breaking, answered below
15f67025b objectui#11345: the inline grid's default columns derive through the spec rule deriveInlineGridColumns 1, patch releasing
4c127cdef objectui#11613: record:related_list stops requiring columns 1, minor releasing; moves the manifest
c096f0327 objectui#11383 (PR objectui#11619): the record chrome draws the record's picture from the object's imageField 1, minor releasing; smoke below; unlocks #21765
6e9090c26 objectui#11336: an object document's served listViews count as served views 1, patch releasing
9db9ff3f9 ! objectui#11266: a form view's subforms[].columns entry is the spec's InlineGridColumnSchema, by reference 1, minor, BREAKING releasing; declared breaking, answered below
7c9a6b194 objectui#11340: the docs portal renders the book resolver's answer 1, patch releasing
8b14aecbd ! objectui#11608: PartialSchema is retired from @object-ui/types 1, minor, BREAKING releasing; declared breaking, answered below
2abec3a96 ! objectui#11610 (PR objectui#11614): the grid widget's eight field-level keys are camelCase; the snake_case spellings are refused by name 1, minor, BREAKING releasing; declared breaking, answered below; unlocks #21768
b403bb36f ! objectui#8347: BaseSchema loses its index signature 1, minor (Clause-②: yes (narrowing), no BREAKING word) releasing; declared breaking by its !, answered below
fd060f076 objectui#11605: bound registrations stop requiring objectName, and a node with neither shows a no-object hint 8, minor releasing; moves the manifest
b508ac50d objectui#11601 (PR objectui#11611): the ref:dataset spec-form widget, fed by the report inspector's dataset catalog 1, minor releasing; unlocks #21714
d2e859936 objectui#11002: the console asks GET /usage/storage only when the runtime serves features.storageUsage 1, minor releasing; smoke below
b92329c89 objectui#11591: the Organization flows page copy 1, patch releasing
902ebab63 objectui#11569: record:line_items stops requiring childObject 1, minor releasing; moves the manifest
278d2444e objectui#11546: a node click on a read-only flow canvas opens the inspector read-only 1, patch releasing
b61c116b2 objectui#11577: record:details read mode keeps a textarea's line breaks 1, patch releasing

Declared-breaking changes, and how this repo answers each

The ADR-0087 disposition is not-required (no-migration-prescription). It replaces the bump's adr-0087: TODO placeholder in .changeset/console-9dfaca654311.md, and it covers all five entries below. check-adr-0087-registration --base origin/main gives "1 declared-breaking changeset(s), each carrying an ADR-0087 disposition". check-changeset-no-major --base origin/main gives "This diff introduces no major bump".

  1. objectui#11610 / PR objectui#11614 (2abec3a96): the grid widget's eight keys. min_rows, max_rows, allow_add, allow_delete, allow_reorder, total_field, add_label and sort_field become minRows … sortField. objectui has no dual read: its zod faces refuse a snake_case key by name, and its GridField draws an inline alert instead of the grid.
  2. objectui#11615 (9dfaca654): the simple form's inline section entries. For TypeScript readers of ObjectFormSection.fields, the type gains the spec's FormFieldInput arm. No code in this repo imports @object-ui/types; the only @object-ui/* import is scripts/gen-sdui-manifest-node.mjs reading @object-ui/core from the built tree. The behaviour change is that the default simple form now draws an inline { name, … } entry, as the other five form types already did. The showcase's object-form nodes are wizard, drawer and modal forms whose sections list field names, so none of them draws differently.
  3. objectui#11266 (9db9ff3f9): subforms[].columns. objectui's validator now judges a column by @objectstack/spec's own InlineGridColumnSchema. This repo has enforced that closed shape since feat(spec)!: a form view's subform columns are the inline grid column contract, and an identity-only column is judged as the type it renders (#20901) #20927. objectui's verdict now matches os validate, and the ObjectStack accept set does not move.
  4. objectui#11608 (8b14aecbd): PartialSchema. It leaves @object-ui/types. Nothing in this repo names it (git grep PartialSchema: 0).
  5. objectui#8347 (b403bb36f): BaseSchema loses its index signature. This narrows the TypeScript face of objectui's node types, and nothing here compiles against them. objectui's zod faces keep their accept sets for every key except visibleWhen. That key widens to the { dialect, source } envelope this repo's own parse writes.

The three cards this unblocks

What changed here

  • .objectui-sha and .changeset/console-9dfaca654311.md. scripts/bump-objectui.sh 9dfaca654311cddd81714153c4f82c241d7cdc54 --no-commit wrote both, with OBJECTUI_ROOT set to the container's objectui clone after git fetch origin main. The range walked completely without a deepen, and the level was auto-set to minor.
  • sdui.manifest.json and scripts/sdui-manifest.record.json. node scripts/gen-sdui-manifest-node.mjs regenerated them over the tree that pnpm objectui:build built at the pin. There are 107 components at both pins, and the sha256 moves from 0ead67c1111d… to 6f921896ffac…. This time the manifest moves:
    • Eleven inputs lose required: true and gain a description. Nine are objectName, on object-grid, list-view, object-form, embeddable-form, object-master-detail-form, object-kanban, object-metric, object-chart and object-pivot (objectui#11605). The other two are record:related_list columns (objectui#11613) and record:line_items childObject (objectui#11569).
    • object-master-detail-form's fields description is rewritten for objectui#11615's inline entries.
    • Where the spec has a ComponentPropsMap row, these inputs are already optional there. Measured on the built spec: object-grid, object-form, object-kanban, object-metric and object-master-detail-form objectName, record:related_list columns and record:line_items childObject. So the manifest now agrees with the spec rows. The JSX page compile reads the manifest, and it stops refusing a node whose dataSource binding names the object.
    • The record moves its pin and modulesRoot. objectui's workspace version stays 17.7.0.
  • packages/sdui-parser/objectui-lockstep.json. pnpm gen:sdui-lockstep re-recorded it against OBJECTUI_ROOT=.cache/objectui-9dfaca654311. It records 214 grammar lines (blob 0131f27cf86d), 25 codes and containment predicate 76c18fb95d1f. All are unchanged, and objectui's packages/sdui-parser has no diff over the range, so no port is owed.
  • The 54 asserting pin citations in packages/spec/src. They were re-measured at the new pin, not restamped:
    • Each asserting record's anchors were resolved in objectui at 2e818d0b5, mapped through git diff -U0 2e818d0b5 9dfaca654, and re-read at the new pin. Each record gains a dated 2026-10-05 hop sentence and keeps its earlier history.
    • In every cited file that changed, the cited lines moved with their text byte-identical:
      • objectui#8347 re-worded docblocks in ObjectGrid.tsx, ObjectTree.tsx, ObjectGantt.tsx, ObjectCalendar.tsx, SchemaRenderer.tsx, plugin-view/src/ObjectView.tsx, plugin-map/src/index.tsx and plugin-gantt/src/index.tsx.
      • In ObjectKanban.tsx, objectui#8347 added a private GateBoundKanbanSchema read type, so its fetch, navigation reads and spread moved +30.
      • objectui#11605 touched plugin-kanban/src/index.tsx, plugin-dashboard/src/index.tsx and ElementDataSourceGate.tsx. The object-metric icon input moved 281 → 299 and is still { name: 'icon', type: 'string' }.
      • objectui#11619 moved the page:tabs and page:accordion icon anchors in containers.tsx by +3.
      • objectui#11615, objectui#11266 and objectui#8347 moved ObjectKanbanSchema.limit, ObjectMapConfigSchema and LIST_VIEW_LOCAL_OVERRIDES in objectql.ts and objectql.zod.ts.
      • objectui#11605 added view.noObject to the en, zh and de locale packs. Their cited calendar.configRequired strings did not change or move.
    • One cited line changed content. ObjectKanban.tsx:10, the type import, gained SortConfig beside the ObjectKanbanSchema the record cites.
    • Two counts were re-taken by their records' own methods, and both read the same: the keyboardNavigation hit lines (15, against the schema.editable control's 3) and the ElementDataSourceGate occurrences in five src/index.tsx shells (0, 3, 3, 3 and 4).
    • The three quoted anchors in ui/view.zod.ts's map record redded at this pin, and each was re-read and re-pointed: case 'map': moved 2299 → 2300, ObjectMapConfigSchema 2370 → 2388, and LIST_VIEW_LOCAL_OVERRIDES 1419 → 1437.
  • The six migration entries' corpus counts were re-taken with git grep -o -F. That method first reproduced every 2e818d0b5 number: 7579 files, objectstack 17227, @objectstack/spec 7134, timeout 1351, useState 2477, TTL 182, tenant 1317 and Span 505.
    • The new numbers are 7632 files, 17313, 7186, 1360, 2477, 182, 1318 and 508. The other controls read RuntimeConfig 276 → 293, resourceLimits 2 → 2, window 4175 → 4193, period 238, interval 195 and metrics 374 → 401.
    • Every zero is still zero: 98 tokens were checked, the export lists of the three cited spec files plus every named key. The only non-zero tokens are the expected Span (508) and SpanSchema (57). The three new Span hits are colSpan in objectui's object-form-section-field-entry-11615.test.ts. Both resourceLimits hits are still prose in packages/app-shell.
    • packages/spec/src/migrations/registry.ts was regenerated with gen:migration-registry.
  • .changeset/objectui-pin-citations-9dfaca654311.md is a @objectstack/spec patch, because the FormField.span describe and six migration descriptions name the pin. content/docs/references/ui/view.mdx was regenerated by check:generated --fix.

No example, test or gate needed adapting, and no code changed outside generated records, citations and changesets.

Console build and canaries

build-console.sh ran locally under the verify lock, after turbo run build --filter=@objectstack/client..., the same two steps the Console Pin Gate job runs. Exit 0, 9m02s on a shared four-core box. The build log reports:

  • "Bundle canary 'import/jobs' present".
  • "Single-zod canary: exactly one zod version literal {major:4,minor:6,patch:5}".
  • "Console bundle carries THIS tree's @objectstack/spec, and only it".
  • "@objectstack/console dist ready (64192 KB) from objectui@9dfaca654311".

check:console-sha and check:console-injection exit 0 against that dist.

Browser smoke: examples/app-showcase with the Console built at 9dfaca654311

The server ran pnpm dev -- --fresh --ui --no-watch --compile -p 41877 with OS_PORT=41877, on its own ephemeral DB with the seeded admin. Headless Chromium (/opt/pw-browsers/chromium) drove it, signing in through the console's own login form, with console messages, page errors and every 4xx/5xx response captured. Only the PIDs this run started were stopped.

No showcase object declares imageField, so the record picture needs one to exist. git grep imageField examples gives 0 hits. To exercise objectui#11619's read, the smoke made a temporary local edit:

  • It added imageField: 'f_image' to showcase_field_zoo, through node scripts/ablation-replace.mjs --hold.
  • It compiled and booted the server.
  • It restored the file at once with --restore. The tool reports the blob back to HEAD's 4130858b8f8b and git diff HEAD empty, and git status --porcelain is empty.
  • After the run, the showcase dist/ was restored from turbo's cache for the clean source: sha256 cc1034dd9d23…, as before the smoke. The stray runtime bundle of the edited compile was deleted.

Nothing of the edit is in this diff. A real sys_file was uploaded through /api/v1/storage/upload/presigned → PUT → /upload/complete (a 64×64 red PNG) and written to "Specimen — Full"'s f_image.

record page [data-record-picture] image
Field Zoo "Specimen — Full" (f_image set) 1, beside the title in the record header, rounded-md (an image field, not avatar) src="/api/v1/storage/files/b1f4e384-…", alt="", loaded, naturalWidth 64
Field Zoo "Specimen — Minimal" (f_image empty) 0 none, as objectui#11619 specifies for an empty value

Verdict: at this pin the record header draws the record's picture from the object's imageField, drawing the stored file through /api/v1/storage/files/:id, and draws nothing when the value is empty. showcase_task's record page is the custom task-detail page, which has no page:header, so it draws no record chrome to put a picture in. That page was smoked too: it renders its path bar, highlights and sections with 0 page errors.

Console messages across the run: 0 page errors. The only failed loads are a 401 on GET /api/v1/auth/get-session (the pre-login probe) and a 404 for /favicon.ico. There is no /api/v1/usage/storage 404. #21625's and #21710's smokes both recorded one, and objectui#11002 (d2e859936) stopped the request on a runtime that does not serve it.

Gates and tests (head 4b9519ea23)

  • node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands derived 127 commands from the 22-path diff, and all were run at 4b9519ea23. --ran reports "127 derived, 127 run, 0 NOT-MEASURED, 0 UNRUN", with every exit code recorded.
    • Two exited 3 (PREREQUISITE NOT MET) on the first pass: check:skill-examples (no client-react dist) and check:dual-build-cjs-loads (no dist for 34 packages).
    • Both exited 0 after turbo run build --filter=!@objectstack/docs (71 of 72 tasks were cache hits), and those are the codes recorded.
  • Also exit 0:
    • check:objectui-pin-citations --verify-anchors with objectui at the pin: 54 asserting citations match 9dfaca654, and 7 anchor content assertions are verified.
    • check:objectui-bump (20 assertions across 5 cases), check:sdui-lockstep, check-sdui-manifest, check:console-sha, check:console-injection, check:migration-registry.
    • @objectstack/spec check:generated: all 15 artifacts current after the --fix.
  • pnpm --filter @objectstack/spec exec vitest run (both projects, local and repo): 668 files, 19259 passed, 1 todo. pnpm --filter @objectstack/spec typecheck: exit 0.
  • @objectstack/sdui-parser test (14 files, 225 passed) and typecheck: exit 0.
  • These suites read the regenerated manifest:
    • @objectstack/lint test: 119 files, 5627 passed. It declares sdui.manifest.json as a test input.
    • @objectstack/metadata-protocol src/protocol.runtime-authoring-gate.test.ts: 70 passed.
    • @objectstack/cli unit tier src/utils/sdui-manifest.test.ts and test/validate-build-gate-parity.test.ts: 2 files, 79 passed.
    • test/jsx-gate-manifest-notice.e2e.test.ts belongs to neither CLI tier; it runs nightly, so it is NOT MEASURED here and is left to CI.
  • eslint --no-inline-config --format json on the 15 changed TS files: 15 files, 0 errors and 0 warnings. The lint population is **/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs} (eslint.config.mjs:971). The config enables no type-aware linting (:327-328), so this diff cannot move a verdict on an untouched file. Repo-wide pnpm lint is left to CI.

Acceptance notes


Generated by Claude Code

claude added 8 commits October 5, 2026 00:53
Written by scripts/bump-objectui.sh 9dfaca654311cddd81714153c4f82c241d7cdc54 --no-commit.
objectui@9dfaca654311cddd81714153c4f82c241d7cdc54

Claude-Session: https://claude.ai/code/session_016tKoy8NJa35Yih1FdzrVmn
Co-authored-by: Claude <noreply@anthropic.com>
…at pin 9dfaca654311

Claude-Session: https://claude.ai/code/session_016tKoy8NJa35Yih1FdzrVmn
Co-authored-by: Claude <noreply@anthropic.com>
… re-measure pin citations (part)

Claude-Session: https://claude.ai/code/session_016tKoy8NJa35Yih1FdzrVmn
Co-authored-by: Claude <noreply@anthropic.com>
…54311

Every anchor in each asserting record was mapped through the objectui diff
2e818d0b51ec..9dfaca654311 and re-read; moved anchors are re-pointed with
their text byte-identical, and each record gains a dated hop sentence.

Claude-Session: https://claude.ai/code/session_016tKoy8NJa35Yih1FdzrVmn
Co-authored-by: Claude <noreply@anthropic.com>
…clared-breaking entries

Claude-Session: https://claude.ai/code/session_016tKoy8NJa35Yih1FdzrVmn
Co-authored-by: Claude <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 2 package(s): @objectstack/sdui-parser, @objectstack/spec, touching 14 documentable anchor(s). ⚠️ 2 changed file(s) yielded no anchor (packages/sdui-parser/objectui-lockstep.json, packages/spec/src/kernel/functional-completeness.ts), so the pages documenting them are NOT COVERED by this run — this is not a clean bill of health for those files.

2 hand-written doc(s) NAME something this change touched and may need an implementation-accuracy re-verification:

  • content/docs/data-modeling/analytics.mdx (via DatasetMeasureSchema (symbol, a top-level const))
  • content/docs/protocol/objectui/layout-dsl.mdx (via ComponentPropsMap (symbol, a top-level const object))

⛔ 5 release-owned page(s) also name something this change touched. These are read-only:

  • content/docs/releases/v15.mdx (via PageTabsProps (symbol, a top-level const object))
  • content/docs/releases/v17/17-1.mdx (via ComponentPropsMap (symbol, a top-level const object))
  • content/docs/releases/v17/17-3.mdx (via ComponentPropsMap (symbol, a top-level const object))
  • content/docs/releases/v17/17-4.mdx (via ComponentPropsMap (symbol, a top-level const object))
  • content/docs/releases/v17/17-5.mdx (via ComponentPropsMap (symbol, a top-level const object))

content/docs/releases/ is RELEASE-OWNED (AGENTS.md "Documentation Guardrails"): release
notes are written centrally at release time, and a code PR that edits them is the exact PR
that guardrail exists to stop. They are still audited — read-only. If one of them is actually
wrong, file an issue or open a dedicated docs-only PR; do not edit it here.

What this run could not see
  • 2 changed file(s) yielded no anchor (packages/sdui-parser/objectui-lockstep.json, packages/spec/src/kernel/functional-completeness.ts) — pages documenting those are invisible to this run
  • 2 name(s) were too generic to anchor anything (single lowercase words)
  • the SDK route bridge reached 54 of 206 client-bound route-ledger rows — the other 152 have no registrar path: tail to select them, so pages documenting THEIR client methods cannot appear above, on this or any run. Of those 152: 0 are remediable by widening that discovery convention (an in-repo file declares the path; the convention did not scan it); 55 are structural — on a ledger where NOT ONE row is declared in-repo, so no discovery change reaches them at any price; 97 are undecided (no in-repo declaration, on a ledger that has other in-repo registrars — absence and an unreadable spelling are not distinguishable here). The rows themselves: node scripts/docs-audit/affected-docs.mjs --bridge-coverage
  • 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 — 139 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 e27a7c0c9e55db06a1d40912f89a0cce4cedfdd8 → packageMentionDocs.

Which tree this was computed on

This run read content/docs from 1daaae3700752d9aeb2c9cbbdcba31be63a5a6d7 — the merge of head 4b9519ea23d31a3b7eb688f32bb52a895f8f7533 into base e27a7c0c9e55db06a1d40912f89a0cce4cedfdd8, which is what actions/checkout gives a pull_request run. Not the PR head.

A worktree cut from an older main holds a different content/docs, so re-deriving there can legitimately return a different list — that is a different tree, not a wrong row. To answer on the same tree:

# while this PR is open — GitHub drops the merge commit once it closes
git fetch origin 1daaae3700752d9aeb2c9cbbdcba31be63a5a6d7 && git checkout 1daaae3700752d9aeb2c9cbbdcba31be63a5a6d7
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin e27a7c0c9e55db06a1d40912f89a0cce4cedfdd8 4b9519ea23d31a3b7eb688f32bb52a895f8f7533 && git checkout -B drift-repro e27a7c0c9e55db06a1d40912f89a0cce4cedfdd8 && git merge --no-ff 4b9519ea23d31a3b7eb688f32bb52a895f8f7533

node scripts/docs-audit/affected-docs.mjs --json e27a7c0c9e55db06a1d40912f89a0cce4cedfdd8

⚠️ That checkout carried uncommitted changes, so the commit above does not fully identify what was read.

Advisory only, and a precision-first one (#9192): a page is listed because it names a
symbol, wire route or SDK method this diff touched — not because it mentions a changed
package. Each row says which anchor put it there, so a wrong row is reportable rather than
merely annoying. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs e27a7c0c9e55db06a1d40912f89a0cce4cedfdd8 → pass the list as
args.docs, on the commit named under Which tree this was computed on.

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 5, 2026 02:08
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge October 5, 2026 02:08
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 5, 2026
Merged via the queue into main with commit 1354e7b Oct 5, 2026
37 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-21772-objectui-pin-bump branch October 5, 2026 03:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(objectui): bump the console pin past objectui c096f03 — it carries objectui#11611, #11614 and #11619, which unlock #21714, #21765 and #21768

1 participant