feat: discover docker compose deps for dashboard

This commit is contained in:
William Valentin
2026-02-22 20:22:37 -08:00
parent ba6abfb078
commit 58eee60023
5 changed files with 460 additions and 187 deletions
+14 -2
View File
@@ -384,7 +384,7 @@ Return status for user-level local LLM backend daemons (for example `ollama.serv
#### `system.dockerDependencies`
Return status for docker-compose managed dependencies (currently includes local Whisper service status for voice transcription workflows).
Return status for docker-compose managed dependencies discovered from `docker-compose.yml` (excluding Flynn's own `flynn` service). Includes profile-scoped services (for example `whisper-server`, `brave-search`) when profiles are defined.
**Request:**
```json
@@ -410,6 +410,17 @@ Return status for docker-compose managed dependencies (currently includes local
"statusText": "Up 4 minutes (healthy)",
"containerName": "flynn-whisper-server-1",
"availableActions": ["restart", "stop", "update"]
},
{
"id": "brave-search",
"name": "Brave Search",
"service": "brave-search",
"configured": true,
"state": "running",
"health": "healthy",
"statusText": "Up 2 minutes",
"containerName": "brave-search",
"availableActions": ["restart", "stop", "update"]
}
]
}
@@ -420,7 +431,8 @@ Return status for docker-compose managed dependencies (currently includes local
Control a docker-compose dependency (`start`, `restart`, `stop`, `update`).
- `update` for `whisper` pulls the latest image and runs `docker compose up -d` to reconcile.
- `dependency` must match an ID returned by `system.dockerDependencies`.
- `update` pulls the latest image for that compose service and runs `docker compose up -d` to reconcile.
**Request:**
```json
+15 -1
View File
@@ -3,6 +3,20 @@
"updated_at": "2026-02-23",
"description": "Tracks the status of all Flynn plans and implementation phases",
"plans": {
"dashboard-docker-dependency-discovery": {
"status": "completed",
"date": "2026-02-23",
"updated": "2026-02-23",
"summary": "Replaced whisper-only docker dependency handling with dynamic docker-compose discovery. Gateway now discovers profile-scoped services via `docker compose config --profiles` + `config --services` (with `ps --all` fallback) and returns status/control cards for all non-`flynn` compose dependencies (including `brave-search`). Docker dependency controls now operate generically on discovered service IDs.",
"files_modified": [
"src/gateway/handlers/dockerDependencies.ts",
"src/gateway/handlers/dockerDependencies.test.ts",
"src/gateway/ui/pages/dashboard.test.ts",
"docs/api/PROTOCOL.md",
"docs/plans/state.json"
],
"test_status": "pnpm test:run src/gateway/handlers/dockerDependencies.test.ts src/gateway/handlers/handlers.test.ts src/gateway/ui/pages/dashboard.test.ts + pnpm typecheck passing"
},
"brave-search-tooling-docs": {
"status": "completed",
"date": "2026-02-23",
@@ -6163,7 +6177,7 @@
}
},
"overall_progress": {
"total_test_count": 1951,
"total_test_count": 1952,
"all_tests_passing": true,
"p0_completion": "3/3 (100%)",
"p1_completion": "4/4 (100%)",