Rename project → workspace for repository concept#276
Merged
waleedkadous merged 17 commits intomainfrom Feb 15, 2026
Merged
Conversation
Contributor
Author
Architect ReviewBug Found
"workspace project" is contradictory. Minor Notes (non-blocking)
Merge Order NotePR #278 (dead code cleanup) deletes several files that this PR modifies ( Verdict: APPROVE with fixFix the |
…, add dashboard details, specify migration v9
- Add codev-hq package scope (Gemini: wire protocol consistency) - Add tower-server.ts, tower-tunnel.ts, tunnel-client.ts (Claude: missing files) - Add activeProjects/totalProjects → activeWorkspaces/totalWorkspaces rename - Expand test file list from 16 to 27+ files - Expand grep verification to cover dashboard/, codev-hq/, SQL columns - Add migration validation checklist - Note skeleton.ts has distinct findProjectRoot() - Rebut cli.ts (work-unit context) and new Playwright tests (redundant)
- Add __tests__/e2e/ Playwright test files (9 files with /project/ URLs) - Add explicit Playwright verification step in Phase 6 - Add grep allowlist for historical migration SQL (v1-v8) - Note doctor.ts has its own local findProjectRoot() - Add missing test files: tower-utils, tower-proxy, tower-websocket, skeleton
- Config.projectRoot → Config.workspaceRoot - findProjectRoot() → findWorkspaceRoot() in config.ts - ProjectTerminals → WorkspaceTerminals - DbTerminalSession.project_path → workspace_path - InstanceStatus.projectPath/projectName → workspacePath/workspaceName - TowerProject → TowerWorkspace, TowerProjectStatus → TowerWorkspaceStatus - activeProjects/totalProjects → activeWorkspaces/totalWorkspaces in health type - Update schema.ts inline comments
- terminal_sessions.project_path → workspace_path (table rebuild) - file_tabs.project_path → workspace_path (table rebuild) - known_projects → known_workspaces with workspace_path column - Update GLOBAL_SCHEMA for fresh installs - Follow existing v7/v8 CREATE-INSERT-DROP pattern
Dashboard: projectName → workspaceName in DashboardState, App.tsx title logic Dashboard tests: /project/ → /workspace/ URL paths in api-url-resolution tests HQ package: ProjectInfo → WorkspaceInfo, project_path → workspace_path, projects → workspaces across types, state, handlers, and server CLI: Tower status type cast and log label projectName/Projects → workspaceName/Workspaces Kept: project_id (porch work-unit), StatusPanel project refs (porch kanban)
Rename project → workspace across all test files and tower.html template:
Test files (40 files):
- tower-test-utils.ts: ProjectHandle → WorkspaceHandle, helper functions
- tower-routes/instances/terminals/proxy/utils/websocket tests: imports, mocks, URLs
- tower-api/baseline E2E tests: API paths, response fields, helper functions
- bugfix-195/199/202/213 tests: config mocks, API paths, response fields
- cli-tower-mode, attach, status-gate, spawn tests: config and API references
- config, types, session-utils, file-tab-persistence tests: config field names
- tunnel-client/integration tests: API paths, metadata fields
- pty-manager, tower-shellper-integration tests: config references
- skeleton.test.ts: findProjectRoot → findWorkspaceRoot
- clipboard.test.ts: findProjectRoot → findWorkspaceRoot
- file-path-resolution.test.ts: projectPath → workspacePath
- Dashboard E2E tests (9 files): URL paths /project/ → /workspace/
Tower HTML UI:
- Fix runtime bugs: instance.projectPath → workspacePath, projectName → workspaceName
- Fix API request bodies: JSON.stringify({ projectPath }) → { workspacePath }
- Fix proxy URLs: ./project/ → ./workspace/
- Update UI text: Running Instances → Running Workspaces, Launch New Workspace,
Recent Workspaces, Loading workspaces, toast messages
Phase 2: Fresh-vs-existing DB detection, GLOBAL_SCHEMA additions, transaction wrapping for v9 migration, TutorialState rename Phase 3: Restore Bugfix #274 startup ordering (reconcile before initInstances), fix comment in tower-utils Phase 4: Revert out-of-scope behavioral changes in consult/index.ts (restore sandbox=read-only, model_reasoning_effort=medium) Phase 5: Add workspace name display in dashboard header with tests
The autocomplete badge for codev workspaces referenced s.isProject but the server now sends isWorkspace after the Phase 3 rename.
…orkspaces/workspace_path Address codex review feedback: the HQ dashboard frontend still used the old projects/project_path keys while the backend was already returning workspaces/workspace_path after the Phase 5 rename.
projectId is a porch work-unit ID, not a workspace reference.
f474b7b to
1a91a3a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Systematic rename of all "project" identifiers that mean "repository/codebase" to "workspace" throughout Tower, Agent Farm, Dashboard, CLI, and HQ packages. The word "project" was ambiguous — used for both git repositories (Tower) and tracked work-units (porch). This rename eliminates that confusion.
known_projects→known_workspaces/project/→/workspace/,/api/projects/→/api/workspaces/config.projectRoot→config.workspaceRootacross ~39 filesprojectId,projectlist.md,codev/projects/) preserved unchangedChanges
codev-hqpackage types/handlersTesting
npm run buildpasses with zero TypeScript errorsSpec
Link: codev/specs/0112-workspace-rename.md
Review
Link: codev/reviews/0112-workspace-rename.md