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
+10
View File
@@ -57,6 +57,7 @@ const (
OverlayStats
OverlayIdeas
OverlaySessions
OverlayTasks
OverlayFiles
OverlayStatusbar
OverlayGrants
@@ -317,6 +318,15 @@ type Model struct {
sessionListLoading bool
sessionListErr string
// task board (OverlayTasks) — all tasks across projects, fetched over HTTP from
// GET /tasks. taskDetail toggles the per-task detail pane (built from the list payload).
taskList []TaskSummary
taskListIndex int
taskListLoading bool
taskListErr string
taskDetail bool
taskDetailScroll int
// command palette
paletteFilter string
paletteIndex int