feat(tasks): TUI task board

Add a cross-project task board to the TUI (T / palette): a roster fetched
from GET /tasks with vim-style nav, refresh, and an enter-to-open detail
pane (goal, criteria, paths, links, notes) built from the list payload — no
extra fetch. Server: TaskService.listAll() and a project-optional GET /tasks
(scoped with ?project=, whole board without; recent-first).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-23 20:32:48 +00:00
parent 70b4357316
commit 1d7fab4ee4
9 changed files with 593 additions and 6 deletions
+3
View File
@@ -125,6 +125,8 @@ func (m Model) renderOverlay(base string) string {
return m.center(m.ideasModal())
case OverlaySessions:
return m.center(m.sessionsModal())
case OverlayTasks:
return m.center(m.tasksModal())
case OverlayFiles:
return m.center(m.filesModal())
case OverlayStatusbar:
@@ -846,6 +848,7 @@ func (m Model) helpBody() []string {
{"e", "event inspector (/ to filter)"},
{"t / v", "tools / artifacts"},
{"S / R", "session stats / resume past sessions"},
{"T", "task board (across projects)"},
{"m / g", "swap model / edit config"},
{"G / I", "grants / idea board"},
})