Add team tasks: several agents in one worktree sharing a board

This commit is contained in:
Ian Gulliver
2026-10-18 08:48:57 -07:00
parent 7f62df19d2
commit 6bcde13b2f
31 changed files with 1392 additions and 439 deletions
+6 -1
View File
@@ -23,6 +23,7 @@ struct TabBadgeView: View {
let tabLabels: [TaskTab: String] = [
.transcript: "Transcript",
.board: "Board",
.changes: "Changes",
.files: "Files",
.terminal: "Terminal",
@@ -221,7 +222,9 @@ private struct TaskPane: View {
switch store.focus.tab {
case .transcript:
ChatView(kind: .task(store.selectedTaskId))
.id(store.selectedTaskId ?? "")
.id("\(store.selectedTaskId ?? "")/\(store.selectedTaskId.flatMap { store.pickedMember($0) } ?? "")")
case .board:
BoardView()
case .changes:
ChangesView()
case .files:
@@ -388,11 +391,13 @@ private struct TabStrip: View {
let findings = latest.map(findingCount) ?? 0
let hasReviews = transcript.contains(where: isReviewEvent)
let workflow = store.selectedTaskId.flatMap { store.findTask($0) }?.workflowRun != nil
let team = store.selectedTaskId.map { !store.team($0).isEmpty } ?? false
let order = (first + taskTabs.filter { !first.contains($0) }).filter { t in
if t == tab {
return true
}
switch t {
case .board: return team
case .inbox: return waiting > 0
case .reviews: return hasReviews
case .workflow: return workflow