Skip to content

Rebuild agent-render UI in Bench Instrument design language - #112

Open
baanish wants to merge 1 commit into
mainfrom
sol-rebuild
Open

Rebuild agent-render UI in Bench Instrument design language#112
baanish wants to merge 1 commit into
mainfrom
sol-rebuild

Conversation

@baanish

@baanish baanish commented Aug 7, 2026

Copy link
Copy Markdown
Owner

What changed

  • Rebuilt the homepage around a full-width five-step QRH operations panel, indexed sample sidebar, carbon-transfer generated output, and chassis footer.
  • Rebuilt the viewer hierarchy around the filename and status LED, dense LIMITS metadata, open fragment diagnostics, and a promoted fault placard.
  • Consolidated light and dark styling into the existing global token spine, added Manrope, SUSE, and Spline Sans Mono, and restyled renderer chrome without changing renderer behavior.
  • Updated responsive component assertions and regenerated the eight intended Chromium visual baselines.

Why

The existing page structure could not express the requested procedural grammar, dense instrument layout, and functional material depth as a token-only reskin. This rebuild makes those requirements structural while keeping the product contract intact.

Impact

This is a chrome and information-hierarchy rebuild. Fragment transport, codecs, payload schemas, renderer dynamic imports, behavior, accessibility attributes, and test identifiers remain unchanged. Mobile ordering, two-column metadata, toolbar target widths, and the deferred renderer class contracts are preserved.

Validation

  • npm run lint && npm run test && npm run typecheck
  • npm run build && npm run check:build-budgets — homepage 106.5 KiB / 115 KiB
  • CI=1 npx playwright test tests/e2e/viewer.spec.ts --project=chromium — 28 passed
  • npx playwright test --project=chromium — 49 passed, including regenerated visual baselines
  • git diff --check
  • Verified public/vendor/diff-view-pure.css remains byte-identical to the package copy

WebKit snapshot execution was unavailable on this host because its Playwright system libraries require privileged installation; the Chromium suite and committed Chromium baselines are green.

@baanish
baanish marked this pull request as ready for review August 7, 2026 21:08
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying agent-render with  Cloudflare Pages  Cloudflare Pages

Latest commit: b013dd0
Status: ✅  Deploy successful!
Preview URL: https://862143ef.agent-render.pages.dev
Branch Preview URL: https://sol-rebuild.agent-render.pages.dev

View logs

@greptile-apps

greptile-apps Bot commented Aug 7, 2026

Copy link
Copy Markdown

Greptile Summary

The PR comprehensively rebuilds the static homepage and artifact viewer in the Bench Instrument design language while retaining the existing fragment decode, renderer, bundle-selection, and artifact-action flows.

  • Introduces a five-step link-creation procedure, indexed samples, operating-limit panels, fragment diagnostics, and chassis-style navigation and footer.
  • Restyles viewer metadata, artifact selectors, renderer chrome, support pages, themes, responsive layouts, and markdown printing.
  • Adds the Manrope, SUSE, and Spline Sans Mono font stack, design-system documentation, and regenerated Chromium visual baselines.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete blocking or independently actionable non-blocking defects identified.

The rewritten UI preserves the established fragment transport, decode, artifact-selection, renderer, action, accessibility, and static-host boundaries, and the investigated presentation changes did not establish a reachable functional failure.

Important Files Changed

Filename Overview
src/components/viewer-shell.tsx Replaces the homepage and viewer-shell hierarchy while preserving fragment synchronization, decoding, self-hosted payload injection, and bundle-selection behavior.
src/components/home/link-creator.tsx Reorganizes the existing local link-generation workflow into five procedural steps without changing generation, stale-result, preview, or copy behavior.
src/components/viewer/artifact-stage.tsx Promotes filename, status, limits, and diagnostics while retaining renderer dispatch and copy, download, raw-view, and markdown-print actions.
src/app/globals.css Rebuilds global tokens, responsive layouts, renderer chrome, dark styling, and print presentation around the new design language.
src/components/viewer/fragment-details-disclosure.tsx Restyles fragment diagnostics and intentionally opens the native disclosure by default; no new security boundary violation was established.
src/app/layout.tsx Replaces the font stack and adds inert design-contract metadata while preserving metadata and pre-hydration theme initialization.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Browser shell] --> B{Fragment present?}
  B -->|No| C[Five-step link creator]
  C --> D[Generate fragment link locally]
  D --> A
  B -->|Yes| E[Decode and validate fragment]
  E -->|Invalid| F[Fragment fault placard]
  E -->|Valid| G[Artifact viewer]
  G --> H[Limits and fragment diagnostics]
  G --> I[Artifact selector]
  G --> J[Deferred renderer]
  J --> K[Copy, download, print, or raw view]
Loading

Reviews (1): Last reviewed commit: "Rebuild UI in bench instrument design la..." | Re-trigger Greptile

codec,
hashPreview,
}: FragmentDetailsDisclosureProps) {
const statusColor = statusLabel === "FAULT" ? "var(--alert)" : "var(--confirmation)";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[SUGGESTION]: Re-derive the status color from statusLabel instead of receiving it from the parent

ArtifactStage already computes statusTone.color (via getStatusTone) and passes statusTone.label/statusTone.message down, but not statusTone.color. This line re-derives the color from a hardcoded statusLabel === "FAULT" check, which duplicates the parent's tone logic. If getStatusTone ever returns a third label value (note parsed.code === "empty" used to return "Empty"), this hardcoded ternary would silently render it as confirmation (var(--confirmation)) even though the parent would color it differently. Passing statusTone.color down as a prop keeps a single source of truth.

@kilo-code-bot

kilo-code-bot Bot commented Aug 7, 2026

Copy link
Copy Markdown

Code Review Summary

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 1
Issue Details (click to expand)

SUGGESTION

File Line Issue
src/components/viewer/fragment-details-disclosure.tsx 23 Re-derives status color from a hardcoded statusLabel === "FAULT" check instead of receiving statusTone.color from the parent; brittle to new label values
Files Reviewed (22 files)
  • src/components/viewer-shell.tsx
  • src/components/viewer/artifact-stage.tsx
  • src/components/viewer/artifact-selector.tsx
  • src/components/viewer/fragment-details-disclosure.tsx
  • src/components/home/link-creator.tsx
  • src/components/home/sample-links.tsx
  • src/components/renderers/code-renderer.tsx
  • src/components/renderers/diff-renderer.tsx
  • src/components/renderers/json-renderer.tsx
  • src/components/renderers/markdown-renderer.tsx
  • src/components/theme-toggle.tsx
  • src/app/layout.tsx
  • src/app/security/page.tsx
  • src/app/url-explainer/page.tsx
  • tests/components/fragment-details-disclosure.test.tsx
  • tests/components/viewer-shell.test.tsx
  • tests/e2e/visual.spec.ts-snapshots/* (8 binary baselines, regenerated)
  • src/app/globals.css
  • .impeccable/design.json
  • .impeccable/surfaces/src-components-viewer-shell-tsx.md
  • DESIGN.md
  • PRODUCT.md

Fix these issues in Kilo Cloud


Reviewed by deepseek-v4-flash · Input: 41K · Output: 7.6K · Cached: 536.8K

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@baanish, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 1 minute

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e0f21dc6-45d2-4f07-9eb2-8e7ad23c37c7

📥 Commits

Reviewing files that changed from the base of the PR and between 7354741 and b013dd0.

⛔ Files ignored due to path filters (8)
  • tests/e2e/visual.spec.ts-snapshots/bundle-switcher-light-chromium.png is excluded by !**/*.png
  • tests/e2e/visual.spec.ts-snapshots/code-light-chromium.png is excluded by !**/*.png
  • tests/e2e/visual.spec.ts-snapshots/csv-compact-light-chromium.png is excluded by !**/*.png
  • tests/e2e/visual.spec.ts-snapshots/diff-light-chromium.png is excluded by !**/*.png
  • tests/e2e/visual.spec.ts-snapshots/empty-state-light-chromium.png is excluded by !**/*.png
  • tests/e2e/visual.spec.ts-snapshots/json-light-chromium.png is excluded by !**/*.png
  • tests/e2e/visual.spec.ts-snapshots/markdown-dark-chromium.png is excluded by !**/*.png
  • tests/e2e/visual.spec.ts-snapshots/markdown-light-chromium.png is excluded by !**/*.png
📒 Files selected for processing (21)
  • .impeccable/design.json
  • .impeccable/surfaces/src-components-viewer-shell-tsx.md
  • DESIGN.md
  • PRODUCT.md
  • src/app/globals.css
  • src/app/layout.tsx
  • src/app/security/page.tsx
  • src/app/url-explainer/page.tsx
  • src/components/home/link-creator.tsx
  • src/components/home/sample-links.tsx
  • src/components/renderers/code-renderer.tsx
  • src/components/renderers/diff-renderer.tsx
  • src/components/renderers/json-renderer.tsx
  • src/components/renderers/markdown-renderer.tsx
  • src/components/theme-toggle.tsx
  • src/components/viewer-shell.tsx
  • src/components/viewer/artifact-selector.tsx
  • src/components/viewer/artifact-stage.tsx
  • src/components/viewer/fragment-details-disclosure.tsx
  • tests/components/fragment-details-disclosure.test.tsx
  • tests/components/viewer-shell.test.tsx

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant