setSpacesSheetOpen(false)}
+ />
+ >
+ );
};
diff --git a/apps/web/src/components/features/workspace/.pi-map.index.md b/apps/web/src/components/features/workspace/.pi-map.index.md
index 6a15a2e..8f34cc6 100644
--- a/apps/web/src/components/features/workspace/.pi-map.index.md
+++ b/apps/web/src/components/features/workspace/.pi-map.index.md
@@ -2,7 +2,7 @@
dir: apps/web/src/components/features/workspace
## role
-Provides React UI components for workspace management, navigation, and detail views in a web-based development environment.
+Provides the complete UI component suite for workspace management, including creation, detail viewing, file editing, Git operations, tool management, and settings.
## parent
index: apps/web/src/components/features/.pi-map.index.md
map: apps/web/src/components/features/.pi-map.md
diff --git a/apps/web/src/components/features/workspace/.pi-map.md b/apps/web/src/components/features/workspace/.pi-map.md
index 3b26997..24e7fa7 100644
--- a/apps/web/src/components/features/workspace/.pi-map.md
+++ b/apps/web/src/components/features/workspace/.pi-map.md
@@ -4,9 +4,9 @@ dir: apps/web/src/components/features/workspace
index: apps/web/src/components/features/workspace/.pi-map.index.md
## role
-Provides React UI components for workspace management, navigation, and detail views in a web-based development environment.
+Provides the complete UI component suite for workspace management, including creation, detail viewing, file editing, Git operations, tool management, and settings.
## files
-- workspace-card.tsx | React card component that displays workspace information with status, metadata, and action buttons | exp: WorkspaceCardProps, func:WorkspaceCard({ workspace, loading = false, onStartTool, onSync, onDelete, }: WorkspaceCardProps), call:onStartTool, call:onSync, call:onDelete | dep: react-router-dom, ../../icon, ./workspace-instance-chips, ../../../types/workspace
+- workspace-card.tsx | React component that renders a card displaying workspace information with status, metadata, and action buttons. | exp: WorkspaceCardProps, func:WorkspaceCard({ workspace, loading = false, onStartTool, onSync, onDelete, }: WorkspaceCardProps), call:onStartTool, call:onSync, call:onDelete | dep: react-router-dom, ../../icon, ./workspace-instance-chips, ../../../types/workspace
- workspace-create-form.tsx | React form component for creating workspaces with cascading project/repository/branch selectors and support for both contextual and standalone modes | exp: WorkspaceCreateFormProps, func:WorkspaceCreateForm({ onSubmit, onCancel, defaultProjectId, defaultRepoId, }: WorkspaceCreateFormProps), call:Boolean, call:useState, call:useGitRepo, call:useEffect, call:git.branches.includes, call:setSelectedBranch, call:setIsNewBranch, call:useCallback, call:listProjects, call:setProjects, call:setSelectedProject, call:setError, call:setFetchingProjects, call:loadProjects, call:setRepos, call:setSelectedRepo, call:listRepositories, call:loadRepos, call:setNewBranchName, call:e.preventDefault, call:name.trim, call:newBranchName.trim, call:setSubmitting, call:createWorkspaceTopLevel, call:onSubmit, call:projects.map, call:repos.map, call:setName, call:handleBranchChange, call:git.branches.map | dep: react, ../../icon, ../../../api/projects, ../../../api/git-repositories, ../../../api/workspaces, ../../../hooks/use-git-repo, ../../../types, icon, api/projects, api/git-repositories, api/workspaces, hooks/use-git-repo, types
- workspace-detail-header.tsx | Renders a header component for a workspace detail page showing breadcrumb navigation and branch information. | exp: WorkspaceDetailHeaderProps, func:WorkspaceDetailHeader({ workspace, }: WorkspaceDetailHeaderProps) | dep: ../../icon, react
- workspace-file-panel.tsx | Renders a file browser and editor panel with Git integration for a workspace detail page. | exp: func:WorkspaceFilePanel({ workspaceId }: WorkspaceFilePanelProps), call:useWorkspaceFiles, call:useWorkspaceGit, call:useState, call:setSelectedPath, call:setIsEditing, call:setEditContent, call:navigateTo, call:loadFile, call:currentPath.split("/").slice(0, -1).join, call:saveFile, call:setCommitMessage, call:commit, call:entries.map, call:handleSelect | dep: react, ../../icon, ../../../hooks/use-workspace-files, ../../../hooks/use-workspace-git, ../../../api/workspace-files
@@ -17,7 +17,7 @@ Provides React UI components for workspace management, navigation, and detail vi
- workspace-tab-bar.tsx | Renders desktop and mobile tab bar components for workspace navigation with files, git, tools, and settings tabs. | exp: WorkspaceTab, func:WorkspaceTabBar({ active, onChange }: WorkspaceTabBarProps), call:TABS.map, call:onChange, func:WorkspaceMobileTabBar({ active, onChange, }: WorkspaceTabBarProps), call:TABS.map, call:onChange | dep: ../../icon, react
- workspace-tools-panel.tsx | Renders a tools management panel for a workspace that displays running tool instances and allows starting new tools via a modal | exp: func:WorkspaceToolsPanel({ workspace }: WorkspaceToolsPanelProps), call:useWorkspaceInstances, call:useState, call:setShowModal, call:instances.map, call:e.stopPropagation, call:refresh | dep: react, ../../icon, ../tool/tool-starter, ../../../hooks/use-workspace-instances, ../../../types/workspace, icon, tool-starter, use-workspace-instances, workspace types
## arch
-Feature-based component organization with page-specific composite components (header/detail/settings) and reusable atomic pieces (cards, chips, forms), following a panel/tab architecture for workspace detail layout.
+Feature-based component organization with compound page pattern (header/tab-bar/panels), form abstraction for creation, and modal-driven tool management with responsive mobile/desktop tab navigation.
## tags
workspace, call:set, call:use, panel, git, branch, react, call:on
## symbols
diff --git a/apps/web/src/components/features/workspace/workspace-card.tsx b/apps/web/src/components/features/workspace/workspace-card.tsx
index bc53ede..244dd50 100644
--- a/apps/web/src/components/features/workspace/workspace-card.tsx
+++ b/apps/web/src/components/features/workspace/workspace-card.tsx
@@ -35,15 +35,18 @@ export function WorkspaceCard({
className="workspace-title-link"
>
+
+
{workspace.name}
+
+ {workspace.status}
+
+
+
{workspace.project_name}
-
{workspace.name}
-
- {workspace.status}
-
diff --git a/apps/web/src/styles/.pi-map.index.md b/apps/web/src/styles/.pi-map.index.md
index 3661fc1..bcef546 100644
--- a/apps/web/src/styles/.pi-map.index.md
+++ b/apps/web/src/styles/.pi-map.index.md
@@ -2,7 +2,7 @@
dir: apps/web/src/styles
## role
-Houses the complete CSS styling system for a web application, including design tokens, global styles, syntax highlighting themes, and utility classes.
+Provides the complete visual design system and styling foundation for a web application, including themes, utilities, and component-specific styles.
## parent
index: apps/web/src/.pi-map.index.md
map: apps/web/src/.pi-map.md
diff --git a/apps/web/src/styles/.pi-map.md b/apps/web/src/styles/.pi-map.md
index 5763b0c..66a6581 100644
--- a/apps/web/src/styles/.pi-map.md
+++ b/apps/web/src/styles/.pi-map.md
@@ -4,14 +4,14 @@ dir: apps/web/src/styles
index: apps/web/src/styles/.pi-map.index.md
## role
-Houses the complete CSS styling system for a web application, including design tokens, global styles, syntax highlighting themes, and utility classes.
+Provides the complete visual design system and styling foundation for a web application, including themes, utilities, and component-specific styles.
## files
- global.css | Defines global CSS styles for a web application shell layout, navigation, cards, forms, dialogs, settings pages, and responsive design patterns. | dep: CSS custom properties (CSS variables: --border, --panel, --brand, --muted, --ink, --bg, --danger, --success, --warning, --font-size-xs, --font-size-sm, --space-2, --space-3, --space-4, --space-5)
- syntax-highlight.css | Stylesheet for a syntax highlighting component with toolbar, line numbers, code display, and Prism.js theme integration | dep: Prism.js
- tokens.css | Defines a comprehensive CSS design token system with light/dark themes, spacing scales, breakpoints, and fluid typography for a web application.
- utilities.css | Provides a comprehensive responsive CSS utility system with terminal-specific styling, mobile adaptations, and component patterns for a web application. | dep: CSS custom properties (var(--space-*), var(--border), var(--bg), var(--text), var(--brand), var(--muted), var(--success), var(--danger), var(--danger-light)), xterm.js (terminal integration)
## arch
-Token-driven CSS architecture using CSS custom properties for themeable light/dark modes, utility-first responsive patterns, and component-scoped stylesheets with Prism.js integration for syntax highlighting.
+Token-based CSS architecture using CSS custom properties for light/dark theming, with layered stylesheets separating tokens, global styles, utilities, and component-specific styling, supporting responsive and fluid design patterns.
## tags
var(, space, global, css, web, application, syntax, defines
## symbols
diff --git a/apps/web/src/styles/pages/.pi-map.index.md b/apps/web/src/styles/pages/.pi-map.index.md
index 15bf3d2..b61d0b1 100644
--- a/apps/web/src/styles/pages/.pi-map.index.md
+++ b/apps/web/src/styles/pages/.pi-map.index.md
@@ -2,7 +2,7 @@
dir: apps/web/src/styles/pages
## role
-Package containing page-specific CSS stylesheets for individual web application views
+Contains page-specific CSS stylesheets for individual application views in the web frontend, providing scoped styling for distinct feature areas.
## parent
index: apps/web/src/styles/.pi-map.index.md
map: apps/web/src/styles/.pi-map.md
diff --git a/apps/web/src/styles/pages/.pi-map.md b/apps/web/src/styles/pages/.pi-map.md
index 45b97d1..aa4a43c 100644
--- a/apps/web/src/styles/pages/.pi-map.md
+++ b/apps/web/src/styles/pages/.pi-map.md
@@ -4,18 +4,18 @@ dir: apps/web/src/styles/pages
index: apps/web/src/styles/pages/.pi-map.index.md
## role
-Package containing page-specific CSS stylesheets for individual web application views
+Contains page-specific CSS stylesheets for individual application views in the web frontend, providing scoped styling for distinct feature areas.
## files
- git-history.css | Stylesheet for a Git history visualization page with commit list, branch selector, and detail panel layout | dep: CSS custom properties (var(--border), var(--panel), var(--ink), var(--brand), var(--muted))
- projects.css | Stylesheet for a projects page UI featuring expandable project toggles, repository listings, workspace grids, and repository creation radio controls. | dep: CSS custom properties (variables)
- sessions.css | Stylesheet for session management UI components including cards, dropdowns, forms, and responsive mobile layouts. | dep: CSS custom properties/variables (var(--border), var(--panel), var(--text), var(--space-*), var(--danger), var(--color-border))
- ssh-keys.css | Styles a responsive SSH key list component that stacks vertically on mobile and switches to horizontal layout on larger screens | dep: CSS custom properties (var(--space-3), var(--space-2), var(--space-4), var(--bg), var(--border))
- workspace-detail.css | Stylesheet for a workspace detail page with tabbed interface including files, git, tools, and settings views, plus a workspace creation form | dep: CSS custom properties (variables for colors, spacing, typography)
-- workspaces.css | Styles a workspaces page with responsive card grid layout, status badges, and instance chips | dep: CSS custom properties (var(--space-*), var(--border), var(--brand), var(--panel), var(--ink), var(--muted), var(--bg), var(--success), var(--warning), var(--danger), var(--font-size-*))
+- workspaces.css | Stylesheet for a workspaces management page featuring responsive grid layout, workspace cards with status badges, instance chips, and mobile adaptations. | dep: CSS custom properties (design tokens: --space-*, --border, --panel, --brand, --ink, --muted, --bg, --success, --warning, --danger, --font-size-*)
## arch
-Modular CSS architecture with dedicated stylesheets per page domain, featuring responsive design patterns, component-based styling, and mobile-first breakpoint strategies
+Modular CSS architecture with page-level style separation, responsive design patterns using media queries for mobile adaptation, and component-scoped styling organized by feature domain rather than shared component library.
## tags
-var(, workspace, space, stylesheet, git, page, detail, history
+var(, workspace, stylesheet, space, git, page, detail, history
## symbols
-
## workflows
diff --git a/apps/web/src/styles/pages/workspaces.css b/apps/web/src/styles/pages/workspaces.css
index e4e71d6..6143aac 100644
--- a/apps/web/src/styles/pages/workspaces.css
+++ b/apps/web/src/styles/pages/workspaces.css
@@ -40,7 +40,6 @@
.workspace-card-top {
display: flex;
align-items: flex-start;
- justify-content: space-between;
gap: var(--space-3);
}
@@ -63,15 +62,11 @@
min-width: 0;
}
-.workspace-project-name {
- font-size: var(--font-size-sm);
- font-weight: 500;
- color: var(--muted);
- text-transform: uppercase;
- letter-spacing: 0.04em;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
+.workspace-title-row {
+ display: flex;
+ align-items: center;
+ gap: var(--space-2);
+ min-width: 0;
}
.workspace-name {
@@ -82,6 +77,24 @@
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
+ flex: 1;
+ min-width: 0;
+}
+
+.workspace-project-name {
+ display: inline-flex;
+ align-items: center;
+ gap: var(--space-1);
+ font-size: var(--font-size-sm);
+ font-weight: 500;
+ color: var(--muted);
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.workspace-project-name .icon {
+ color: var(--brand);
}
/* Body: meta row + instance chips */