Summary
A workspace imported from a registry lands with install_status: 'not_installed' — the environment still has to be installed before the workspace is usable. But handleImport in frontend/src/pages/Registries.tsx navigates to /workspaces on success, so the user never sees the not-installed alert on the workspace detail page. Navigate to the newly imported workspace's detail view instead, and confirm the alert renders for the import path.
Motivation
- Registry import has exactly the same post-create gap as workspace creation: a workspace that exists but can't be used until the environment is installed
install_status is derived server-side from on-disk state (internal/service/workspace_env.go), so an imported workspace already reports not_installed — no backend or API work needed
registriesApi.importEnvironment already returns the created Workspace, so its id is in hand for the redirect
- Landing on the list page after import gives no next-step signal; landing on the detail page puts the alert and the
Install action directly in front of the user
- Confirms the alert is state-driven rather than tied to one creation path
Acceptance Criteria
Out of Scope
- Building the alert itself — that lands in the workspace-creation alert issue; this one only makes the import path reach it
- Auto-triggering an install as part of import
- Any change to the import API, its response shape, or
install_status derivation
- Surfacing install state on the workspaces list page (
pages/Workspaces.tsx) — InstallControls already gives each row an action
- The other registries browse-table fixes (duplicate
Import button, row border, collapse, tag default)
Summary
A workspace imported from a registry lands with
install_status: 'not_installed'— the environment still has to be installed before the workspace is usable. ButhandleImportinfrontend/src/pages/Registries.tsxnavigates to/workspaceson success, so the user never sees the not-installed alert on the workspace detail page. Navigate to the newly imported workspace's detail view instead, and confirm the alert renders for the import path.Motivation
install_statusis derived server-side from on-disk state (internal/service/workspace_env.go), so an imported workspace already reportsnot_installed— no backend or API work neededregistriesApi.importEnvironmentalready returns the createdWorkspace, so itsidis in hand for the redirectInstallaction directly in front of the userAcceptance Criteria
handleImportnavigates to the new workspace's detail route (/workspaces/:id) using theidfrom theimportEnvironmentresponse, instead of/workspacesid, the current/workspacesnavigation is kept as a fallback rather than erroringuseImportEnvironmentonSuccessbehavior unchanged)not_installedworkspacepnpm testandbiome checkpass with no new warningsOut of Scope
install_statusderivationpages/Workspaces.tsx) —InstallControlsalready gives each row an actionImportbutton, row border, collapse, tag default)