Files
paseo/EXECUTION_PLAN_ITERATION_2_PROJECTS_WORKSPACES_TABS.md
T

161 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Execution Plan — Iteration 2 Projects → Workspaces → Tabs (Paseo Orchestrated)
This document describes **how** we will execute the fixes defined in:
- `PLAN_ITERATION_2_PROJECTS_WORKSPACES_TABS.md`
It is optimized for parallel work using **Paseo-managed worktrees** and strict quality gates.
---
## Constraints / Guardrails
- **Do not restart or modify** the user’s main daemon on `localhost:6767`.
- Use **isolated dev stacks** for manual verification (new daemon + new Metro) via:
- `PASEO_HOME=~/.paseo-<unique>` and `npm run dev` (auto-picks free ports).
- No “legacy view” preserved: we fix the current UX directly (no dead/unused code paths left behind).
- Agents must treat **terminals and agents as equal first-class tab types** (no special layouts).
- Keep changes focused to the reported issues; avoid unrelated refactors.
---
## Work Breakdown (Parallel)
### Agent A — Sidebar drag scoping + sidebar polish
**Worktree:** `polish/sidebar-dnd-and-style`
Responsibilities:
- Fix project drag so dragging a **project header** reorders the **entire project section** (header + workspaces).
- Fix workspace drag so workspaces reorder **only within their project** (no cross-project placement).
- Ensure sidebar list **snaps back** to canonical `Project → Workspaces` structure after any drag.
- Sidebar visuals:
- remove workspace “border” style, match project “ghost” style language
- remove “No agents yet”
- reduce workspace indentation/padding (mobile-friendly)
- Navigation polish:
- clicking a workspace closes the left sidebar (mobile)
### Agent B — Workspace header + tabs polish (icons, unified create, persistence)
**Worktree:** `polish/workspace-tabs-and-header`
Responsibilities:
- Workspace header shows **branch name** for git workspaces (including base branch like `main`).
- Replace separate “create agent” vs “create terminal” rows with **one unified New Tab control** (agent + terminal).
- Agent tabs show **provider icons** (Claude + Codex minimum, using existing assets/components).
- Fix “remember focused tab per workspace” so:
- switching away and back restores the last focused agent/terminal tab
- stored selection is **not overwritten** while agent/terminal lists are still loading
### Agent C — Review / sanity check (no code changes)
Runs after merges to:
- review diff for edge cases + regressions
- double-check acceptance criteria mapping
- call out missing verification steps
---
## Agent Launch Commands (local CLI)
We use the repo-local CLI:
```bash
npm run -s cli -- run --provider codex --model gpt-5.3-codex --mode full-access --worktree <name> --name "<title>" --detach "<prompt>" --quiet
```
Notes:
- `--detach --quiet` returns the agent ID quickly so we can launch in parallel.
- Each agent must **commit** their work in their worktree branch before finishing.
---
## Prompts (exact)
### Prompt for Agent A
Title: `🎭 Sidebar DnD + Polish`
Prompt:
- Implement **only** the items in “Sidebar drag behavior” + “Sidebar visuals + navigation polish” from `PLAN_ITERATION_2_PROJECTS_WORKSPACES_TABS.md`.
- Do not change gestures beyond the required drag constraints.
- Ensure the post-drag list snaps back to the canonical project/workspace grouping.
- Remove “No agents yet” and fix workspace row styling/indentation.
- Close sidebar on workspace selection (mobile).
- Run `npm run typecheck` and `npm run test --workspace=@getpaseo/app` in the worktree.
- Commit with a clear message.
### Prompt for Agent B
Title: `🎭 Workspace Tabs + Header`
Prompt:
- Implement **only** the items in “Workspace header + tab bar fixes” from `PLAN_ITERATION_2_PROJECTS_WORKSPACES_TABS.md`.
- Terminals and agents must be treated as identical first-class tab types (no separate rows/layout).
- Add provider icons for agent tabs (Claude/Codex minimum) using existing app icon components.
- Fix per-workspace focused-tab persistence (don’t overwrite selection while queries are pending).
- Run `npm run typecheck` and `npm run test --workspace=@getpaseo/app` in the worktree.
- Commit with a clear message.
### Prompt for Agent C (review-only)
Title: `🎭 Review: Sidebar + Tabs Polish`
Prompt:
- Review the combined diff for correctness vs acceptance criteria in `PLAN_ITERATION_2_PROJECTS_WORKSPACES_TABS.md`.
- DO NOT edit code. Provide a checklist of anything missing or risky.
---
## Merge Strategy (back to `main`)
1. Wait for Agents A + B to complete.
2. For each worktree branch:
- verify it has a clean commit history (no unrelated changes)
- re-run `npm run typecheck` if needed
3. Merge into `main` sequentially:
- merge A
- rebase/merge B on top of updated `main` (resolve conflicts if any)
4. Do not delete/prune worktrees until the user has manually verified.
---
## Verification Gates (strict)
### 1) Automated (must pass)
From repo root on `main` after merges:
```bash
npm run typecheck
npm run test --workspace=@getpaseo/app
```
Optional (run if environment supports it; starts isolated daemon/metro itself):
```bash
npm run test:e2e --workspace=@getpaseo/app
```
### 2) Manual (must be performed by us before handing back)
Use an **isolated dev stack** (new daemon + new Metro):
```bash
PASEO_HOME=~/.paseo-iter2-polish npm run dev
```
Then use `agent-browser` to verify the “Manual (agent-browser)” section in:
- `PLAN_ITERATION_2_PROJECTS_WORKSPACES_TABS.md`
---
## Completion Definition
We are “done” when:
- All acceptance criteria in `PLAN_ITERATION_2_PROJECTS_WORKSPACES_TABS.md` are met.
- Automated verification gates pass.
- Manual verification steps pass.
- Changes are merged into `main` with no leftover legacy code paths.