feat: workspace-first UI refresh - PR-2 workspace detail page

- Add workspace detail page (/workspaces/:id) with 4 tabs:
  - Files: file tree, viewer, editor, git toolbar (commit/push/pull/fetch)
  - Git: branch selector, commit history
  - Tools: instance grid, start tool modal
  - Settings: workspace info read-only
- Add workspace API clients: workspace-files, workspace-git, workspace-instances
- Add hooks: useWorkspaceFiles, useWorkspaceGit, useWorkspaceInstances
- WorkspaceCard links to detail page via router Link
- Add comprehensive CSS for workspace detail layout
- Mobile: bottom tab bar, responsive file tree/split
- TypeScript + eslint clean

Quality gates: tsc --noEmit clean, eslint clean
This commit is contained in:
2026-06-01 17:04:44 +02:00
parent e7587ca9f5
commit 27c77af591
12 changed files with 1366 additions and 33 deletions
+1 -3
View File
@@ -111,9 +111,7 @@ class GitOperations:
if rc != 0:
raise RuntimeError(f"Git add failed: {err}")
rc, _, err = await self._run(
"git", "-C", self.cwd, "commit", "-m", message
)
rc, _, err = await self._run("git", "-C", self.cwd, "commit", "-m", message)
if rc != 0:
raise RuntimeError(f"Git commit failed: {err}")