Skip to content

chore(console): bump the objectui pin to 00d3f09c5 (152 commits, the six dogfood fixes included) - #15183

Merged
hotlong merged 2 commits into
mainfrom
claude/issue-14511-objectui-pin-refresh
Sep 4, 2026
Merged

chore(console): bump the objectui pin to 00d3f09c5 (152 commits, the six dogfood fixes included)#15183
hotlong merged 2 commits into
mainfrom
claude/issue-14511-objectui-pin-refresh

Conversation

@hotlong

@hotlong hotlong commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Fixes #14511

Summary

Moves .objectui-sha from 67dadd602a3a to 00d3f09c500c (objectui main tip) — 152 commits, 80 releasing changesets, 8 declared-breaking. It carries every objectui fix from the 2026-09-02/03 dogfood batch, which until now was merged upstream but not shipped by this repo's console: objectui#7284 (default list leads with the name field), #7288 (record header title floor), #7343 (code/text cells stop being JSON-parsed by shape), #7385 (categorical axis labels), #7387 (inbox cadence pin), #7398 (scatter legend names its series).

The four gated halves, all run

gate result
pnpm objectui:build console dist 50828 KB at 00d3f09c500c; bundle canary present; injected spec verified; check:console-sha green
pnpm sdui:manifest (ADR-0082 D4) no new declaration divergence vs the accepted baseline (90 pre-existing spec-only, 0 blocks missing from the registry)
check:objectui-pin-citations 8 asserting citations re-READ at the new pin — see below
gen:sdui-lockstep + gen-sdui-manifest-node lockstep re-recorded (214 grammar lines byte-identical, 24 diagnostic codes agree, no port owed); manifest provenance re-recorded at @object-ui 17.6.0, 57 components, content unchanged

Citations: one record changed in substance, not only in line numbers

containers.tsx moved both icon anchors by exactly one line (729-735730-736, 788789, 918-924919-925, 965966); ObjectGrid.tsx's bulk-selection block is byte-identical at 3790-3805. The metric chain (index.tsx, ObjectMetricWidget.tsx, MetricWidget.tsx, MetricCard.tsx, lazy-icon.tsx) and useBulkExecutor.ts are byte-identical and were re-read anyway.

resolve-icon.ts is the one that mattered: it was restructured (110 insertions), so resolveIcon now delegates to a named describeIconLookup seam and the tokeniser splits on hyphen, underscore or whitespace. The spec docblock said "splits on - only" — true when written, false now. A sha-swap would have preserved that sentence; a re-read caught it, which is the whole point of the gate's refusal (#10274).

ADR-0087 disposition

not-required (no-migration-prescription), with all eight declared-breaking entries judged one at a time against this repo's authorable surface. Seven touch nothing spec declares (measured: zero occurrences of MobileComponentConfig, gridClassName, the block family and any columns[].items kanban node; TimelineConfigSchema.startDateField is already REQUIRED here, so the retired 'created_at' floor was objectui catching up; actions is already ids-only; record:details sections already declare label with no title limb).

The eighth is named rather than folded in: objectui retired the _views.<view>.description catalog convention while packages/spec/src/system/translation.zod.ts still declares that address (:203 doc, :228 field), leaving a key that is authorable and accepted here with nothing rendering it. Filed as #15180 for its own enforce-or-remove decision. No stored row becomes invalid, so this bump prescribes no migration and registers no ledger entry.

Also filed while doing this

#15182scripts/gen-sdui-manifest.sh cannot run twice on macOS: its mktemp templates put the X's before a .log suffix, which BSD mktemp takes literally, so the second run always fails with File exists. Worked around by hand here; the ratchet is a hand-run operator script, so the fix belongs in the script.

Not in this PR

.claude/launch.json (a local dev-server entry for the browser round) is deliberately uncommitted — governed surface.

🤖 Generated with Claude Code

hotlong and others added 2 commits September 4, 2026 13:04
fix(components,schema-catalog): button-group honors per-button `disabled`, corpus stops authoring 29 unread keys (#7596)

objectui@00d3f09c500c4a45b5f27aca8af80349412faaf1
The three gates a pin move owes, run against the objectui tree at the new
pin rather than sha-swapped:

- check:objectui-pin-citations — all 8 anchors re-READ. containers.tsx and
  ObjectGrid.tsx moved (both blocks byte-identical, shifted); the metric and
  bulk chains are byte-identical and were re-read anyway. One record changed
  in SUBSTANCE, not only line numbers: resolve-icon.ts was restructured, so
  resolveIcon now delegates to a describeIconLookup seam and its tokeniser
  splits on hyphen, underscore or whitespace — the docblock's "splits on `-`
  only" was true when written and is corrected here.
- gen:sdui-lockstep — re-recorded at 00d3f09c500c, 214 grammar lines
  byte-identical, 24 diagnostic codes agree, no port owed.
- gen-sdui-manifest-node — provenance re-recorded at @object-ui 17.6.0,
  57 components, content unchanged.

pnpm sdui:manifest (ADR-0082 D4) reports no new declaration divergence
against the accepted baseline.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the size/m label Sep 4, 2026
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 2 package(s): @objectstack/sdui-parser, @objectstack/spec, touching 4 documentable anchor(s). ⚠️ 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.

1 release-owned page(s) 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/ 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
  • 1 changed file(s) yielded no anchor (packages/sdui-parser/objectui-lockstep.json) — pages documenting those are invisible to this run
  • the SDK route bridge reached 47 of 219 client-bound route-ledger rows — the other 172 have no registrar path: tail to select them, so pages documenting THEIR client methods cannot appear above, on this or any run. Of those 172: 14 are remediable by widening that discovery convention (an in-repo file declares the path; the convention did not scan it); 56 are structural — on a ledger where NOT ONE row is declared in-repo, so no discovery change reaches them at any price; 102 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.

Coarse fallback — 129 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 7bc5d37e428f9566ac8c4885d08d7f6b2bfe7789packageMentionDocs.

Which tree this was computed on

This run read content/docs from e629f82e9c54a7f2ab5b1bb918844f8975670a74 — the merge of head ef797c8d4a8a0d55c88947bf67128be4c285cec8 into base 7bc5d37e428f9566ac8c4885d08d7f6b2bfe7789, 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 e629f82e9c54a7f2ab5b1bb918844f8975670a74 && git checkout e629f82e9c54a7f2ab5b1bb918844f8975670a74
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin 7bc5d37e428f9566ac8c4885d08d7f6b2bfe7789 ef797c8d4a8a0d55c88947bf67128be4c285cec8 && git checkout -B drift-repro 7bc5d37e428f9566ac8c4885d08d7f6b2bfe7789 && git merge --no-ff ef797c8d4a8a0d55c88947bf67128be4c285cec8

node scripts/docs-audit/affected-docs.mjs --json 7bc5d37e428f9566ac8c4885d08d7f6b2bfe7789

⚠️ 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 7bc5d37e428f9566ac8c4885d08d7f6b2bfe7789 → pass the list as
args.docs, on the commit named under Which tree this was computed on.

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(console): bump the objectui pin past 67dadd602a3a so the console ships the dogfood P1/P2 fixes (objectui#7284, #7288, …)

1 participant