Remove the Studio Overview view and land on Sessions
Traceability
- Spec ID:
studio-remove-overview-view - Status: in progress
Intent
Overview is the first View in the Studio sidebar and the default landing area, but it does not carry a decision the rest of the shell cannot already make:
- Its
Recent Sessionspane is a truncated copy of the Sessions View, reached through one extra hop. Clicking a row navigates to Sessions anyway. - Its
Workspace summaryfacts (inputs, sessions, agents, artifacts, repository) restate the per-Viewstatusstrings the sidebar already shows on every row, plus the status bar at the bottom of every View. - Its
Next Actionspane is a second rendering of the sidebar's View list.
So the landing surface of the workbench is a summary of the navigation next to it, and a reader must leave it before doing anything. Removing it makes Sessions — the retained evidence a reader actually opens Studio for — the landing View.
The Artifacts empty state has a related problem. When a Project is open and simply has no changed artifacts, the empty state still offers Open Another Project. Switching Projects is not the next step for that state, and the sidebar's Project switcher already owns that action. The same action remains correct in the disconnected Artifacts state, where it is the only way forward.
Non-goals
- Redesigning Sessions. It becomes the landing View unchanged, including its own disconnected empty state.
- Auditing
openProjectActionin the other Views' empty states. In Inputs, Commits, Debugger, and Compare the empty state means "this Project cannot do this", where opening another Project is a real remedy. Only the Artifacts "no changed artifacts" state loses it. - Persisting a per-reader landing View. The default stays a constant.
Acceptance criteria
- AC-1:
Overviewno longer appears in the sidebar View list, andoverviewis no longer a member ofStudioArea. - AC-2: Loading Studio with no route, an unknown route, or an unparsable Project route lands on
Sessions, and the toolbar title and status bar report Sessions. - AC-3: A stale
#/overviewor#/projects/<id>/overviewhash resolves toSessionsrather than a blank work area, keeping the Project segment when it is present. - AC-4: Roving tabindex over the View list still yields exactly one tab stop, and arrow keys move from the first row (
Customizations) onward. - AC-5: The Artifacts empty state for an open Project with an empty catalog renders no
Open Another Projectbutton. The Artifacts state for a Project that is not connected keeps itsOpen Projectaction. - AC-6: No
overviewi18n namespace,area.overviewlabel,destination.overviewStatusstatus,.control-overview/.overview-*rule, orstudioOverviewmodel code remains in the package. Unrelatedusage-overview*(Inspector) andcall-overview/overview-pair(Experiment) styles are untouched. - AC-7: No console or page errors and no document-level horizontal overflow at 1440×900, 1024×768, and 390×844.
Plan
studio-shell-model.ts: drop"overview"fromStudioArea, drop theoverviewdestination, deletestudioOverviewand theStudioOverviewModel/StudioOverviewMode/StudioOverviewAction/StudioOverviewFacttypes, and export aSTUDIO_DEFAULT_AREAconstant.project-routing.ts: fall back toSTUDIO_DEFAULT_AREAinstead of the hardcoded"overview", and resolve a known-but-removed area the same way.App.tsx: delete theOverviewcomponent, its render branch, theoverviewConfigderivation, and theoverviewentry inSTUDIO_AREAS; resolve the active destination throughSTUDIO_DEFAULT_AREA.ProjectSidebar.tsx: remove theoverviewicon mapping and the now-unusedSquaresFourimport.- i18n: delete
en/overview.tsandzh-CN/overview.ts, unregister the namespace, and removearea.overview/destination.overviewStatusfrom bothcommon.tsfiles. shell.css: remove the Overview block and its narrow-layout overrides.ArtifactsWorkspace.tsx: stop passingopenProjectActioninto the "no changed artifacts" empty state.- Tests: delete
test/browser/overview.spec.mjs, drop thestudioOverviewsuites fromtest/studio-shell-model.test.ts, retarget the routing default intest/studio-project.test.ts, and update the landing assertions intool-call,language,project-shell, andartifact-hostbrowser specs. packages/harness-studio/README.md: correct the View list.
Test and review evidence
npm run typecheckandnpx vitest runinpackages/harness-studio.npx playwright test test/browser/project-shell.spec.mjs test/browser/tool-call.spec.mjs test/browser/language.spec.mjsfor the landing View, roving focus, and locale title.npx playwright test test/browser/artifact-host.spec.mjsfor the Artifacts empty state and the post-open route.- Screenshots at the three review widths.
Risk
- Stale bookmarks and Electron deep links. Any retained
#/overviewhash must not strand the reader.parseStudioLocationalready returns the default for an unknown area, so the removal turns those routes into Sessions; AC-3 covers it explicitly. - Default-area drift. Two places pick a landing View (hash parsing and the destination lookup in
App.tsx). They are unified on one exported constant so the sidebar order can change without silently moving the landing View. - Test coupling. Roughly a dozen browser assertions locate the landing View by the heading
Overview. They are retargeted rather than relaxed, so a regression that lands on the wrong View still fails.