Skip to content

feat: workbench is the base page — top-bar surfaces, warm engine sessions, live mid-run geometry - #39

Merged
alanshen27 merged 3 commits into
mainfrom
devin/1785801145-workbench-base
Aug 4, 2026
Merged

feat: workbench is the base page — top-bar surfaces, warm engine sessions, live mid-run geometry#39
alanshen27 merged 3 commits into
mainfrom
devin/1785801145-workbench-base

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Summary

Three changes that make the Engineer workbench the project page:

1. Base page. /overview is now a pure redirect to /engineer, and every link that used to land on overview (project create, breadcrumb, shared-projects nav, file tree, folder browser, invite accept, unauth next=) goes straight to the workbench. The create-flow AI kickoff (PipelineKickoffListener) moved from the overview page into the stage page, so "prompt → new project → copilot bootstraps it" still fires — now on the workbench:

// [stage]/page.tsx
const brief = await prisma.projectBrief.findUnique({ where: { projectId_branchId: ... } });
<PipelineKickoffListener hasBrief={Boolean(brief?.prompt || brief?.intendedUse)} />

2. Top-bar surfaces instead of tab churn. Single-instance surfaces (Assembly, PCB, Checks, Repository, Ideate, Verify, Launch, Renders) are permanent buttons in the top bar — no open/close dance. Only multi-component surfaces (CAD, Schematic) remain closable tabs via +. Fixed panes mount lazily on first visit and stay mounted (CSS visibility swap), so revisiting is instant.

3. Faster viewport, live agent geometry.

  • CadViewport gains a warm-session pool: on clean unmount the connected Zoo WebRTC session (rtc + video element) is parked for 120s keyed on token|baseUrl|headless|scenery; the next viewport with the same options adopts it and only re-executes its script — skipping the multi-second WebRTC handshake that made reopening a CAD tab feel dead. Live viewports never share a session; only released ones are pooled.
  • text_to_cad now streams each part into the workspace the moment it generates (per-part mutateModel3dDoc inside runJob) and emits a new saved CAD-progress phase. The copilot provider reacts to saved chunks by invalidating design/engineer queries mid-run, so open viewports render parts while the rest of the batch is still generating — no more waiting for the whole tool to finish. Refetch is debounced (200ms) so bursts coalesce, and the viewport keeps the last render on screen while re-executing.

Behavior notes: old /overview bookmarks redirect; ?view= deep links unchanged; mid-run saves reuse the existing locked read-modify-write so parallel parts can't clobber each other.

Link to Devin session: https://app.devin.ai/sessions/f2de7850ec9640f7b7bdd99b34fc3348
Requested by: @alanshen27

…e sessions, live mid-run geometry

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@alanshen27 alanshen27 self-assigned this Aug 4, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

alanshen27 and others added 2 commits August 4, 2026 00:11
…oute

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@alanshen27
alanshen27 merged commit 20080b0 into main Aug 4, 2026
1 check failed
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