You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(teams): improve task dispatch, concurrency, and tool ergonomics
- Move task dispatch from mid-turn to post-turn to prevent dependent
tasks from completing before the current agent's run finishes
- Add team create lock to serialize list→create flows across concurrent
group chat sessions, preventing duplicate task creation
- Require list-before-create gate: agents must call team_tasks(list)
before creating tasks
- Make assignee required on task creation
- Add pagination (50 per page) to task list with offset support
- Slim task list/get/search responses with dedicated structs to reduce
context token usage
- Add task board snapshot in announce messages to leader
- Workspace: allow subdirectory paths in read/delete, show directories
in list output
- UI: reduce kanban card title font size for better visual balance
"[System Message] Team member %q completed task.\n\nResult:\n%s\n\n"+
650
-
"Present this result to the user. Any media files are forwarded automatically. Do NOT search for files — the result above contains all relevant information.",
655
+
"[System Message] Team member %q completed task.\n\nResult:\n%s",
651
656
memberAgent, outcome.Result.Content,
652
657
)
658
+
iftaskBoardSnapshot!="" {
659
+
announceContent+="\n\n"+taskBoardSnapshot
660
+
}
661
+
announceContent+="\n\nPresent this result to the user. Any media files are forwarded automatically. Do NOT search for files — the result above contains all relevant information."
653
662
// Append team workspace path so lead can locate files without searching.
654
663
ifws:=inMeta["team_workspace"]; ws!="" {
655
-
announceContent+=fmt.Sprintf("\n[Team workspace: %s — use read_file with path relative to workspace root, e.g. read_file(path=\"teams/...\")]", ws)
664
+
announceContent+=fmt.Sprintf("\n[Team workspace: %s — use workspace_read to read files, e.g. workspace_read(file_name=\"filename.md\")]", ws)
656
665
}
657
666
658
667
// Route to the lead's session on the original channel/chat.
sb.WriteString("Do NOT use `spawn` for team delegation — `spawn` is only for self-clone subagent work.\n\n")
84
84
sb.WriteString("Rules:\n")
85
85
sb.WriteString("- Always specify `assignee` — match member expertise from the list above\n")
86
+
sb.WriteString("- **Check task board first** — ALWAYS call `team_tasks(action=\"list\")` before creating tasks. The system blocks creation if you skip this step\n")
86
87
sb.WriteString("- Create all tasks first, then briefly tell the user what you delegated\n")
87
88
sb.WriteString("- Do NOT add confirmations (\"Done!\", \"Got it!\") — just state what was assigned\n")
88
89
sb.WriteString("- Results arrive automatically — do NOT present partial results\n")
0 commit comments