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 after build-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

vercel Bot commented Jun 30, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jun 30, 2026 2:57pm

Request Review

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

Labels

dependencies Pull requests that update a dependency file size/m

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant