chore(orchestrator): bootstrap MS20 Site Stabilization mission

PRD updated with FR-020 (site stabilization scope) and 6 new assumptions.
Mission manifest, scratchpad, and TASKS.md created with 13 tasks across
workspace context, orchestrator connectivity, missing APIs, and UI gaps.
Milestone MS20-SiteStabilization created. Issue #534 tracks the epic.

Estimated total: ~215K tokens across 4 execution waves.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-27 04:09:05 -06:00
parent 11f22a7e96
commit 44062e6882
4 changed files with 223 additions and 112 deletions

View File

@@ -1,54 +1,59 @@
# Tasks — MS19 Chat & Terminal System
# Tasks — MS20 Site Stabilization
> Single-writer: orchestrator only. Workers read but never modify.
| id | status | description | issue | repo | branch | depends_on | blocks | agent | started_at | completed_at | estimate | used | notes |
| ----------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | ------- | ------------------------------ | ----------------------------------------------- | ----------------------------------------------- | ------------ | ---------- | ------------ | -------- | ---- | ----------------------------------------------------------------- |
| CT-PLAN-001 | done | Plan MS19 task breakdown, create milestone + issues, populate TASKS.md | | — | — | | CT-TERM-001,CT-TERM-002,CT-CHAT-001,CT-CHAT-002 | orchestrator | 2026-02-25 | 2026-02-25 | 15K | ~15K | Planning complete |
| CT-TERM-001 | done | Terminal WebSocket gateway & PTY session service — NestJS gateway (namespace: /terminal), node-pty spawn/kill/resize, workspace-scoped rooms, auth via token | #508 | api | feat/ms19-terminal-gateway | CT-PLAN-001 | CT-TERM-003,CT-TERM-004,CT-ORCH-002 | sonnet | 2026-02-25 | 2026-02-25 | 30K | ~30K | PR #515 merged (6290fc3), 48 tests |
| CT-TERM-002 | done | Terminal session persistence — Prisma model (TerminalSession: id, workspaceId, name, status, createdAt, closedAt), migration, CRUD service | #508 | api | feat/ms19-terminal-persistence | CT-PLAN-001 | CT-TERM-004 | sonnet | 2026-02-25 | 2026-02-25 | 15K | ~15K | PR #517 merged (8128eb7), 12 tests, #508 closed |
| CT-TERM-003 | done | xterm.js integration — Replace mock TerminalPanel with real xterm.js, WebSocket connection to /terminal namespace, resize handling, copy/paste, theme support | #509 | web | feat/ms19-xterm-integration | CT-TERM-001 | CT-TERM-004 | sonnet | 2026-02-25 | 2026-02-25 | 30K | ~30K | PR #518 merged (417c6ab), 40 tests |
| CT-TERM-004 | done | Terminal tab management — Multiple named sessions, create/close/rename tabs, tab switching, session list from API, reconnect on page reload | #509 | web | feat/ms19-terminal-tabs | CT-TERM-001,CT-TERM-002,CT-TERM-003 | CT-VER-001 | sonnet | 2026-02-25 | 2026-02-25 | 20K | ~20K | PR #520 merged (859dcfc), 76 tests, #509 closed |
| CT-CHAT-001 | done | Complete SSE chat streaming — Wire streamChatMessage() in frontend, token-by-token rendering in MessageList, streaming state indicators, abort/cancel support | #510 | web | feat/ms19-chat-streaming-v2 | CT-PLAN-001 | CT-CHAT-002,CT-ORCH-001 | sonnet | 2026-02-25 | 2026-02-25 | 25K | ~25K | PR #516 merged (7de0e73), streaming+fallback+abort |
| CT-CHAT-002 | done | Master chat polish — Model selector dropdown, temperature/params config, conversation search in sidebar, keyboard shortcut improvements, empty state design | #510 | web | feat/ms19-chat-polish | CT-CHAT-001 | CT-VER-001 | sonnet | 2026-02-25 | 2026-02-25 | 15K | ~15K | PR #519 merged (13aa52a), 46 tests, #510 closed |
| CT-ORCH-001 | done | Project-level orchestrator chat — Chat context scoped to project, command prefix parsing (/spawn, /status, /jobs, /kill), route commands through orchestrator proxy, display structured responses | #511 | web | feat/ms19-orchestrator-chat | CT-CHAT-001 | CT-ORCH-002,CT-VER-001 | sonnet | 2026-02-25 | 2026-02-25 | 30K | ~25K | PR #521 merged (b110c46), 34 tests |
| CT-ORCH-002 | done | Agent output in terminal — View orchestrator agent sessions as terminal tabs, stream agent stdout/stderr via SSE (/agents/events), agent lifecycle indicators (spawning/running/done) | #511 | web | feat/ms19-agent-terminal | CT-TERM-001,CT-ORCH-001 | CT-VER-001 | sonnet | 2026-02-25 | 2026-02-25 | 25K | ~25K | PR #522 merged (9b2520c), 79 tests, #511 closed |
| CT-VER-001 | done | Unit tests — Tests for terminal gateway, xterm component, chat streaming, orchestrator chat, agent terminal integration | #512 | web,api | — | CT-TERM-004,CT-CHAT-002,CT-ORCH-001,CT-ORCH-002 | CT-DOC-001 | orchestrator | 2026-02-25 | 2026-02-25 | 20K | ~5K | 328 MS19 tests (268 web + 60 API), all inline with tasks |
| CT-DOC-001 | done | Documentation updatesTASKS.md, manifest, scratchpad, PRD status updates | #512 | — | — | CT-VER-001 | CT-VER-002 | orchestrator | 2026-02-25 | 2026-02-25 | 10K | ~5K | Updated PRD, manifest, scratchpad, TASKS.md |
| CT-VER-002 | done | Deploy + smoke test — Deploy to Portainer, verify terminal, chat streaming, orchestrator chat, agent output all functional | #512 | — | — | CT-DOC-001 | | orchestrator | 2026-02-25 | 2026-02-25 | 15K | ~5K | CI #635 green, web deployed (sha:7165e7a), API crash pre-existing |
| id | status | description | issue | repo | branch | depends_on | blocks | agent | started_at | completed_at | estimate | used | notes |
| ----------- | ----------- | ---------------------------------------------------------------------------------------- | ----- | ------- | ----------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------ | ------------ | ---------- | ------------ | -------- | ---- | --------------------------------------------------------------------------------------- |
| SS-PLAN-001 | done | Plan MS20 task breakdown, create milestone + issues, populate TASKS.md | — | — | — | | SS-WS-001,SS-ORCH-001,SS-API-001,SS-UI-001 | orchestrator | 2026-02-27 | 2026-02-27 | 15K | ~15K | Planning complete |
| SS-WS-001 | not-started | Fix workspace context for domain creation — domains page POST sends workspace ID | #534 | web,api | fix/workspace-domain-project-create | SS-PLAN-001 | SS-WS-002 | | | | 15K | | Domains page "Workspace ID is required" on create |
| SS-WS-002 | not-started | Fix workspace context for project creation — projects page POST sends workspace ID | #534 | web,api | fix/workspace-domain-project-create | SS-WS-001 | SS-VER-001 | | | | 10K | | Projects page "Workspace ID is required" on create. May be same root cause as SS-WS-001 |
| SS-WS-003 | not-started | Fix useWorkspaceId localStorage initialization — ensure workspace ID persists from login | #534 | web | fix/workspace-id-persistence | SS-PLAN-001 | SS-VER-001 | | | | 15K | | Console warning: no workspace ID in localStorage |
| SS-ORCH-001 | not-started | Fix orchestrator 502 — diagnose and fix proxy connectivity to orchestrator service | #534 | web,api | fix/orchestrator-connectivity | SS-PLAN-001 | SS-ORCH-002 | | | | 25K | | All orchestrator endpoints return 502 |
| SS-ORCH-002 | not-started | Fix orchestrator WebSocket connection — "Reconnecting to server..." in chat panel | #534 | web | fix/orchestrator-websocket | SS-ORCH-001 | SS-VER-001 | | | | 15K | | Depends on orchestrator proxy fix |
| SS-API-001 | not-started | Implement personalities API — controller, service, DTOs, Prisma model for CRUD | #534 | api | feat/personalities-api | SS-PLAN-001 | SS-UI-002 | | | | 30K | | Cannot GET /api/personalities?isActive=true |
| SS-API-002 | not-started | Implement /users/me/preferences endpoint — wire to UserPreference model | #534 | api | feat/user-preferences-endpoint | SS-PLAN-001 | SS-VER-001 | | | | 15K | | Profile page: "Preferences unavailable" |
| SS-UI-001 | not-started | Credential management UI — enable Add Credential button, create/view forms, wire to API | #534 | web | feat/credential-management-ui | SS-PLAN-001 | SS-VER-001 | | | | 25K | | Button currently disabled, feature stubbed |
| SS-UI-002 | not-started | Fix personalities page — dark mode Formality dropdown, save functionality, wire to API | #534 | web | fix/personalities-page | SS-API-001 | SS-VER-001 | | | | 15K | | Dark mode theming broken, unable to save |
| SS-UI-003 | not-started | Terminal page route — create /terminal page with full-screen terminal panel | #534 | web | feat/terminal-page-route | SS-PLAN-001 | SS-VER-001 | | | | 10K | | Sidebar Terminal link goes to #terminal anchor |
| SS-UI-004 | not-started | Add favicon.ico and fix dark mode polish | #534 | web | fix/favicon-polish | SS-PLAN-001 | SS-VER-001 | | | | 5K | | favicon.ico 404 |
| SS-VER-001 | not-started | Verification — full site test, all pages load without errors, deploy + smoke test | #534 | web,api | — | SS-WS-002,SS-WS-003,SS-ORCH-002,SS-API-002,SS-UI-001,SS-UI-002,SS-UI-003,SS-UI-004 | SS-DOC-001 | | | | 15K | | Primary validation gate |
| SS-DOC-001 | not-started | Documentation — update PRD status, manifest, scratchpad, close mission | #534 | — | — | SS-VER-001 | | | | | 5K | | |
## Summary
| Metric | Value |
| --------------- | ----------------- |
| Total tasks | 12 |
| Completed | 12 |
| In Progress | 0 |
| Remaining | 0 |
| Estimated total | ~250K tokens |
| Used | ~215K tokens |
| Milestone | MS19-ChatTerminal |
| Metric | Value |
| --------------- | ---------------------- |
| Total tasks | 14 |
| Completed | 1 |
| In Progress | 0 |
| Remaining | 13 |
| Estimated total | ~215K tokens |
| Used | ~15K tokens |
| Milestone | MS20-SiteStabilization |
## Dependency Graph
```
PLAN-001 ──┬──→ TERM-001 ──┬──→ TERM-003 ──→ TERM-004 ──→ VER-001 ──→ DOC-001 ──→ VER-002
│ │ ↑
│ └──→ ORCH-002 ───────┘
│ ↑
├──→ TERM-002 ────────→ TERM-004
PLAN-001 ──┬──→ WS-001 ──→ WS-002 ──→ VER-001 ──→ DOC-001
├──→ CHAT-001 ──┬──→ CHAT-002 ──→ VER-001
│ │
│ └──→ ORCH-001 ──→ ORCH-002
├──→ WS-003 ──→ VER-001
──→ CHAT-002 (also depends on CHAT-001)
──→ ORCH-001 ──→ ORCH-002 ──→ VER-001
├──→ API-001 ──→ UI-002 ──→ VER-001
├──→ API-002 ──→ VER-001
├──→ UI-001 ──→ VER-001
├──→ UI-003 ──→ VER-001
└──→ UI-004 ──→ VER-001
```
## Parallel Execution Opportunities
- **Wave 1** (after PLAN-001): TERM-001 + TERM-002 + CHAT-001 can run in parallel (3 independent tracks)
- **Wave 2**: TERM-003 (after TERM-001) + CHAT-002 (after CHAT-001) + ORCH-001 (after CHAT-001) can overlap
- **Wave 3**: TERM-004 (after TERM-001+002+003) + ORCH-002 (after TERM-001+ORCH-001)
- **Wave 4**: VER-001 (after all implementation)
- **Wave 5**: DOC-001 → VER-002 (sequential)
- **Wave 1** (after PLAN-001): WS-001 + WS-003 + ORCH-001 + API-001 + API-002 + UI-001 + UI-003 + UI-004 (all independent)
- **Wave 2**: WS-002 (after WS-001) + ORCH-002 (after ORCH-001) + UI-002 (after API-001)
- **Wave 3**: VER-001 (after all implementation)
- **Wave 4**: DOC-001 (after verification)