Skip to content

chore(build): decouple SDUI manifest + react-conformance ratchet from console build - #2492

Merged
os-zhuang merged 1 commit into
mainfrom
worktree-decouple-sdui-manifest
Jun 30, 2026
Merged

chore(build): decouple SDUI manifest + react-conformance ratchet from console build#2492
os-zhuang merged 1 commit into
mainfrom
worktree-decouple-sdui-manifest

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Problem

scripts/build-console.sh launched a headless browser (Playwright) to dump the public-tier SDUI manifest (ADR-0080) and ratchet spec↔frontend react-block conformance (ADR-0081). That made every objectui:build / objectui:refresh / release console rebuild depend on a matching Playwright browser binary. A freshly bumped .objectui-sha crashes the rebuild:

→ Generating SDUI public-tier manifest (ADR-0080)...
browserType.launch: Executable doesn't exist at .../chrome-headless-shell

Why the browser step doesn't belong on the build path

  • The day-to-day pnpm build (turbo) never touched a browser — only the console-rebuild scripts did.
  • The step was already documented "best-effort, non-fatal" (gate falls back to parse-level when the manifest is absent).
  • In CI it never actually ran. Both workflows install Playwright afterbuild-console.sh (release.yml installs none at all), so build-console.sh always hit the missing-browser path and silently degraded. The ratchet only executed when a developer happened to have a matching browser installed locally — i.e. a gate that was effectively dormant.

Change

  • scripts/gen-sdui-manifest.sh (new) — on-demand manifest generation + conformance ratchet. Reuses the vendored .cache/objectui-<sha> tree; gives clear guidance when the tree is missing (pnpm objectui:build) or the Playwright browser is missing (pnpm exec playwright install chromium-headless-shell); fails loud instead of silently degrading.
  • scripts/build-console.sh — drop the browser block (−35 lines), single-purpose again (rebuild console SPA + copy dist). Prints a pointer to pnpm sdui:manifest.
  • package.json — add "sdui:manifest" script.

Usage

pnpm objectui:build # rebuild + vendor the console dist (no browser)
pnpm sdui:manifest # on demand: dump manifest + ratchet conformance (needs Playwright)

Not in scope

CI is intentionally left unchanged — the ratchet was already not running there, so this is a no-op for CI. Re-activating it (move playwright install ahead of build-console.sh + add a pnpm sdui:manifest step) can be a follow-up if desired.

Verification

  • bash -n clean on both scripts; package.json valid JSON.
  • Graceful "tree not built yet" branch verified (exits with actionable message).
  • build-console.sh no longer references Playwright / a browser.

🤖 Generated with Claude Code

… console build
build-console.sh launched a headless browser (Playwright) to dump the
public-tier SDUI manifest and ratchet ADR-0081 conformance. That made every
`objectui:build` / `objectui:refresh` / `release` rebuild depend on a matching
Playwright browser being installed — a freshly bumped objectui SHA crashes the
rebuild with `browserType.launch: Executable doesn't exist`.
The browser step never belonged on the build path:
- It was already "best-effort, non-fatal" (gate falls back to parse-level).
- In CI it never actually ran: both workflows install Playwright AFTER
build-console.sh (release installs none), so the ratchet silently degraded
every time. It only executed when a dev happened to have a matching browser.
Move manifest generation + conformance ratchet into a dedicated on-demand
script and keep build-console.sh single-purpose (rebuild console SPA + copy
dist, no browser).
- scripts/gen-sdui-manifest.sh (new): reuses the vendored .cache/objectui-<sha>
tree; clear guidance when the tree is missing (run objectui:build) or the
Playwright browser is missing; fails loud instead of silently degrading.
- scripts/build-console.sh: drop the browser block, point to `pnpm sdui:manifest`.
- package.json: add `sdui:manifest` script.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercelBot commented Jun 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
specReadyReadyPreview, CommentJun 30, 2026 2:57pm

Request Review

@github-actionsgithub-actionsBot added dependencies Pull requests that update a dependency file size/m labels Jun 30, 2026
@os-zhuang
os-zhuang merged commit 127ee94 into mainJun 30, 2026
16 checks passed
@os-zhuang
os-zhuang deleted the worktree-decouple-sdui-manifest branch June 30, 2026 14:58
@github-actionsgithub-actionsBot mentioned this pull request Jul 14, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependenciesPull requests that update a dependency filesize/m

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@os-zhuang