diff --git a/apps/tui-go/internal/app/demo.go b/apps/tui-go/internal/app/demo.go index da68ee16..86f3f0e3 100644 --- a/apps/tui-go/internal/app/demo.go +++ b/apps/tui-go/internal/app/demo.go @@ -255,10 +255,56 @@ func PreviewFrame(kind string, w, h int) string { } m.grantIndex = 1 m.overlay = OverlayGrants + + case "tasks", "task-detail": + m.connected = true + m.currentModel = "llama-cpp:default" + m.sessions = sampleSessions() + m.selectedID = "04a546aa" + m.overlay = OverlayTasks + m.taskList = sampleTaskBoard() + if kind == "task-detail" { + m.taskDetail = true + m.taskListIndex = 2 // a blocked child, to show the "waiting on" line + } } return m.render() } +// sampleTaskBoard is a decomposed work graph: an epic waiting on its three +// children, one of which (webui-2) is ready now, plus an in-flight and a done +// task — exercising every readiness glyph and status color. +func sampleTaskBoard() []TaskSummary { + return []TaskSummary{ + { + ID: "webui-1", Key: "webui-1", Status: "TODO", Title: "Frontend web UI for correx", + Goal: "operator can drive sessions from a browser", + BlockedBy: []string{"webui-2", "webui-3", "webui-4"}, + Links: []TaskLinkWire{{TargetID: "webui-2", Type: "DEPENDS_ON", TargetKind: "TASK"}}, + }, + { + ID: "webui-2", Key: "webui-2", Status: "TODO", Title: "Scaffold the Vite + React app", + Goal: "buildable shell with routing", Ready: true, + AcceptanceCriteria: []string{"npm run build passes", "lands under apps/web"}, + AffectedPaths: []string{"apps/web/"}, + }, + { + ID: "webui-3", Key: "webui-3", Status: "TODO", Title: "Auth / token entry view", + Goal: "operator pastes a token and connects", BlockedBy: []string{"webui-2"}, + Links: []TaskLinkWire{{TargetID: "webui-1", Type: "IMPLEMENTS", TargetKind: "TASK"}}, + }, + { + ID: "webui-4", Key: "webui-4", Status: "TODO", Title: "Session board view", + Goal: "live roster mirroring the TUI", BlockedBy: []string{"webui-2"}, + }, + { + ID: "api-7", Key: "api-7", Status: "IN_PROGRESS", Title: "CORS + token endpoint", + Goal: "server accepts browser origins", Claimant: "04a546aa8b2c", + }, + {ID: "api-3", Key: "api-3", Status: "DONE", Title: "Stable /sessions JSON shape"}, + } +} + func sampleStats() *protocol.StatsDto { return &protocol.StatsDto{ SessionID: "04a546aa",