feat(ui): add reusable developer surface system - #3
Draft
BunsDev wants to merge 61 commits into
Draft
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
This PR evolves @opencoven/ui from a specimen-focused component library into a reusable “developer surface system” by introducing new presentation-only components/blocks for integration health, authority cues, and execution receipts, plus a dedicated /developer reference surface and stronger registry/CI verification.
Changes:
- Adds new public UI primitives:
ConnectionStatus,CommandReceipt, and the assembledDeveloperSurfaceblock (plus registry fragment + docs). - Adds a
/developerspecimen route and expands automated verification with new visual/mobile quality receipts and updated registry consumer checks. - Tightens registry determinism by composing a new developer registry fragment and enforcing clean generated output in CI and Vercel builds.
Reviewed changes
Copilot reviewed 29 out of 29 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
vercel.json |
Ensures registry artifacts are generated before building the specimen app on Vercel. |
scripts/verify-contracts.mjs |
Expands contract checks to cover developer surface exports/docs/registry and new responsive/mobile guards. |
scripts/test-registry-consumer.mjs |
Extends clean-consumer install/typecheck to include developer-surface. |
scripts/mobile-quality-review.mjs |
New CDP-based script to capture screenshots + assert mobile layout/overflow/targets across scenarios. |
scripts/developer-visual-review.mjs |
New script to validate /developer rendered text and capture desktop/mobile screenshots. |
scripts/compose-registry.mjs |
Includes new developer registry fragment in composed registry.json. |
scripts/check-registry-clean.mjs |
New script enforcing committed generated registry output (including untracked files). |
registry/developer/registry.fragment.json |
New registry fragment describing the new developer-facing component/block items. |
public/r/transcript-turn.json |
Updates generated registry payload for TranscriptTurn (mobile wrapping/spacing tweaks). |
public/r/tabs.json |
Updates generated registry payload for Tabs (orientation handling + min-width fixes). |
public/r/session-header.json |
Updates generated registry payload for SessionHeader (mobile grid reflow + truncation fixes). |
packages/ui/tests/tabs.test.tsx |
Adds unit coverage for Tabs orientation behavior. |
packages/ui/tests/mobile-blocks.test.tsx |
Adds unit coverage for mobile reflow behavior of TranscriptTurn and SessionHeader. |
packages/ui/tests/developer-surface.test.tsx |
Adds unit + a11y coverage for the new developer surface primitives (includes axe). |
packages/ui/src/index.ts |
Exports DeveloperSurface, ConnectionStatus, and CommandReceipt from the package root. |
packages/ui/src/components/ui/tabs.tsx |
Fixes orientation propagation and layout behavior (adds min-w-0 to content). |
packages/ui/src/components/connection-status.tsx |
New component for integration health + explicit authority labeling. |
packages/ui/src/components/command-receipt.tsx |
New component for presentation-safe invocation evidence with explicit lifecycle states. |
packages/ui/src/blocks/transcript-turn.tsx |
Mobile-focused spacing and wrapping adjustments to prevent intrinsic-width overflow. |
packages/ui/src/blocks/session-header.tsx |
Mobile grid layout to avoid ellipsis/clipping and keep metadata reflowable. |
packages/ui/src/blocks/developer-surface.tsx |
New assembled block combining project context, integrations, receipts, and guidance. |
package.json |
Updates registry:check to validate cleanliness via the new check-registry-clean script. |
docs/developer-surface.md |
New integration/adapter contract and protected-data guidance for developer surface usage. |
apps/specimens/src/specimens-fixes.css |
New layered CSS “fixes” file for mobile/layout regression guards. |
apps/specimens/src/main.tsx |
Adds /developer route rendering and loads specimens-fixes.css. |
apps/specimens/src/developer-showcase.tsx |
New dedicated /developer reference surface demonstrating canonical developer UI semantics. |
.github/workflows/visual-review.yml |
Builds registry before preview and runs additional developer + mobile quality scripts; uploads new artifact. |
.github/workflows/refine-visual-clipping-check.yml |
Removes an experimental workflow used for refining visual clipping assertions. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
153
to
+157
| "responsive rail becomes compact navigation", | ||
| specimenCss.includes("@media (max-width: 68rem)") && | ||
| specimenCss.includes( | ||
| ".specimen-rail__context,\n .specimen-rail__package", | ||
| ".specimen-shell {\n grid-template-columns: 1fr;", | ||
| ) && |
Comment on lines
+171
to
+176
| [ | ||
| "connection state is generic and accessible", | ||
| connectionStatus.includes('label: "Pending"') && | ||
| !connectionStatus.includes('label: "Connecting"') && | ||
| connectionStatus.includes("aria-label={`${kind} ${name}"), | ||
| ], |
Comment on lines
+1
to
+7
| /* Focused regression guards layered after the specimen shell styles. */ | ||
|
|
||
| body:not(:has(#group-composer)) .specimen-rail a[href="#group-composer"], | ||
| body:not(:has(#group-run-rail)) .specimen-rail a[href="#group-run-rail"], | ||
| body:not(:has(#group-blocks)) .specimen-rail a[href="#group-blocks"] { | ||
| display: none; | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Objective
Evolve OpenCoven UI from a component specimen library into a reusable development-surface system for project context, SDK/CLI integration state, daemon/runtime authority cues, and verifiable execution receipts — without turning this repository into another runtime or product authority.
This PR is stacked on #2 (which is stacked on #1) so the new surface inherits the responsive shell and visual-review lane.
Architecture
The integration boundary follows current OpenCoven ownership:
@opencoven/sdkis represented as an experimental, read-only data source; UI does not imply deferred mutation APIs exist.@opencoven/cli/covenis the canonical user-facing CLI; the SDK repository's private@opencoven/dev-cliis not presented as public product surface.@opencoven/uiaccepts normalized view models and renders state; it performs no discovery, credential access, transport negotiation, or mutation.What changed
ConnectionStatusfor SDK/CLI/daemon/runtime/project health plus explicit authority levelCommandReceiptfor CLI/SDK/daemon/runtime invocation evidenceDeveloperSurface, a responsive assembled block combining project context, integrations, receipts, and adapter guidance/developerreference surface showing canonical CLI, experimental read-only SDK, daemon authority, and coven-code runtime statedocs/developer-surface.mdwith the SDK/CLI adapter contract and current release caveatsdeveloper-surfacefrom the generated registry/r/*routes merely because committed generated files lag source/developerdesktop and 390px mobile visual receipts alongside the existing specimen-browser review matrixDeliberate non-goals
@opencoven/sdkor@opencoven/cliVerification
Current head:
eaa83d3f79dceee9cec0ce461d0e1f85373ecd3bopencoven-uiVercel preview: successCIandVisual reviewjobs are queued on the hosted runner at this headThe hosted gates cover:
/developerdesktop and 390px mobile receiptsThe PR remains draft until those hosted gates finish green and the resulting visual artifact is inspected.