feat: Add Docker-based preview deployments for phase review

Preview deployments let reviewers spin up the app at a specific branch
in local Docker containers, accessible through a single Caddy reverse
proxy port. Docker is the source of truth — no database table needed.

New module: src/preview/ with config discovery (.cw-preview.yml →
compose → Dockerfile fallback), compose generation, Docker CLI wrapper,
health checking, and port allocation (9100-9200 range).
This commit is contained in:
Lukas May
2026-02-10 13:24:56 +01:00
parent 783a07bfb7
commit 270a5cb21d
31 changed files with 2243 additions and 22 deletions

View File

@@ -20,7 +20,8 @@ CLI (cw)
│ └── LifecycleController (retry, signal recovery)
├── DispatchManager (task queue, dependency resolution)
├── PhaseDispatchManager (phase queue, DAG ordering)
── CoordinationManager (merge queue, conflict resolution)
── CoordinationManager (merge queue, conflict resolution)
└── PreviewManager (Docker-based preview deployments)
Web UI (packages/web/)
└── React 19 + TanStack Router + tRPC React Query
@@ -66,6 +67,7 @@ Agent providers (Claude, Codex, etc.) are defined as configuration objects, not
| Logging | `src/logger/`, `src/logging/` | Structured logging, file capture | [git-process-logging.md](git-process-logging.md) |
| Events | `src/events/` | EventBus, typed event system | [dispatch-events.md](dispatch-events.md) |
| Shared | `packages/shared/` | Types shared between frontend/backend | [frontend.md](frontend.md) |
| Preview | `src/preview/` | Docker-based preview deployments | [preview.md](preview.md) |
| Tests | `src/test/` | E2E, integration, fixtures | [testing.md](testing.md) |
## Entity Relationships