Skip to content

feat: make chat the single NodeBench workspace#561

Merged
HomenShum merged 4 commits into
mainfrom
feat/one-surface-workspace
Jul 17, 2026
Merged

feat: make chat the single NodeBench workspace#561
HomenShum merged 4 commits into
mainfrom
feat/one-surface-workspace

Conversation

@HomenShum

Copy link
Copy Markdown
Owner

Outcome

  • makes /redesign/chat the single main-site NodeBench decision workspace
  • retires the old cockpit, peer redesign pages, duplicate nav/search, and main-host report editors
  • preserves report/artifact/receipt context inside chat, runtime provenance, streaming, approvals, exports, and failure states
  • keeps recursive Workspace isolated to its dedicated hostname and bounded delivery routes intact
  • adds an accessible Radix account menu, mobile read-scope disclosure, and valid legacy-link guards

Verification

  • npx tsc --noEmit --pretty false
  • 20 focused one-surface tests
  • 251 FastAgent tests passed (19 intentionally skipped)
  • design system tests and design linter (0 high violations)
  • production build
  • responsive light/dark browser captures and clutter audit
  • fresh 390px browser verification for legacy cockpit/workspace/report variants: 1 surface, 1 composer, 0 nav, 0 overflow
  • independent expanded-scope audit: PASS, no reachable P0/P1/P2 findings

Release

Ready for the repository P0 CI-gated squash merge. Do not bypass required checks.

@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

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

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
nodebench-ai Ignored Ignored Preview Jul 17, 2026 4:50am

Request Review

@HomenShum
HomenShum enabled auto-merge (squash) July 17, 2026 04:23
@github-actions

Copy link
Copy Markdown

PR size advisory

This PR adds 651 lines of substantive change. CONTRIBUTING.md defines a soft limit of ~400 LOC.

If the PR is genuinely cohesive (e.g. an architecture map, a generated migration, a deletion of a dead module), no action is needed. Otherwise consider:

  • splitting into 2-3 PRs along independent concerns
  • pre-discussing the architecture change in a GitHub Discussion before merge

This is advisory — it does not block the merge.

@HomenShum HomenShum changed the title Make chat the single NodeBench workspace feat: make chat the single NodeBench workspace Jul 17, 2026
@github-actions

Copy link
Copy Markdown

Vercel preflight failed: Bundle size

Detail: 1 bundle budget violations

editor-D_dPdjZy.js: 1916577 > 1572864

Fix: Trim imports or intentionally adjust bundle-budget.json.

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown

❌ Dogfood Visual QA Gate: FAILED

Check Status
Screenshots 7 captured (low)
Walkthrough 9 chapters (pass)
Key Frames 9 extracted (pass)
Scribe Steps 8 how-to steps (pass)
Build failure
Artifacts

Download the dogfood-evidence-4555ac4 artifact from the Actions tab for full screenshots, frames, and walkthrough video.


Generated by Dogfood QA Gate

@github-actions

Copy link
Copy Markdown

Tier B regression failed against preview

Preview URL: https://nodebench-ratb744hk-hshum2018-gmailcoms-projects.vercel.app
Run: 29554741139

Likely a kit-parity DOM regression. Check the Playwright report artifact attached to the run for the failing selector + screenshot.

This check would have caught all 4 A9 sessionRows iterations as a single PR — that's why it exists.

@github-actions

Copy link
Copy Markdown

Tier B regression failed against preview

Preview URL: https://nodebench-g59cstvw7-hshum2018-gmailcoms-projects.vercel.app
Run: 29555314924

Likely a kit-parity DOM regression. Check the Playwright report artifact attached to the run for the failing selector + screenshot.

This check would have caught all 4 A9 sessionRows iterations as a single PR — that's why it exists.

@HomenShum
HomenShum merged commit 25c2ffa into main Jul 17, 2026
13 of 14 checks passed
@HomenShum
HomenShum deleted the feat/one-surface-workspace branch July 17, 2026 04:56
@github-actions

Copy link
Copy Markdown

Demo: walkthrough of the surfaces this PR changed is available as a workflow artifact (pr-demo-561) at https://github.com/HomenShum/NodeBenchAI/actions/runs/29556065469

HomenShum added a commit that referenced this pull request Jul 17, 2026
detectRequestedResponseShape matched "return only the title" but not "return
only its title": the determiner group listed articles and no possessives, so
the possessive phrasing fell through to the five-section memo and silently
overrode an explicit user output constraint on a paid run.

The determiner set now lives in one TITLE_DETERMINER constant shared by every
title pattern. It was previously duplicated across two regexes, which is how
the two could disagree in the first place.

Found by re-verifying the 2026-07-16 production audit against main instead of
trusting it. Four of its five P1s were already fixed by #550/#561/#564 within
hours of the run; only this one survived. The suite stayed green because every
title case it asserted used the one phrasing that worked, so the new tests use
the audit's verbatim production prompts and cover the negative cases the wider
pattern could now over-match.

Both test files are added to the CI runtime-smoke allowlist, which is an
explicit file list rather than a full-suite run. Without that, the regression
guard would never execute in CI and would repeat the same blind spot one level
up.

Also pins DEFAULT_TIERS to the runtime's modelForTier with a parity test. The
two were hand-maintained mirrors with no test binding them; drift would make
the paid preflight advertise a model the runtime never runs. The composer
header comment still claimed "provider names appear only in the trace", the
opposite of the disclosure contract shipped in #550.

Co-authored-by: hshum <hshum@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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.

2 participants