Thank you for this report and for explaining how you got there, it made every point easy to act on.
Already fixed in 1.198.0 (you are on 1.195.1, so updating helps right away):
- Teams are saved and deleted one at a time on the server. A save or a delete no longer re-uploads the whole list, so the very slow teams_delete and the INVALID_JSON error on create are gone.
- A run always starts from the latest saved version of its team. Editing a team no longer runs an old copy, so you can edit and reuse a team instead of creating a new one.
- A list that is really too large is refused with a clear message instead of INVALID_JSON.
Coming in the next update, covering the rest of your proposal:
- Bulk delete. In the Teams panel: Configure > Select > Select all > Delete, any number of teams in one request. Over MCP, teams_delete accepts teamIds (up to 5,000 per call, sent in one request). Ids that match no team come back in notFound. If one of the teams has a live run, the whole call is refused and nothing is deleted.
- Filters to find dead teams, in the Configure tab: Last run (never run, or not in the last 1, 7, 30 or 90 days), Created (more than 1, 7, 30 or 90 days ago) and Created by an agent. Select all then picks exactly what the filters leave, and each team shows when it was created and when it last ran. Over MCP: teams_list({ neverRun: true, olderThanDays: 1, idsOnly: true }), also notRunForDays, createdByAgent and scope, then teams_delete({ teamIds }). Last run dates are filled in from the run history of the machine that ran the teams. "Created by an agent" only applies to teams created after the update.
- One-off teams: a "Delete this team after its run" option in the team settings, or teams_save({ runOnce: true }). The team deletes itself once its run is finished or cancelled. A blocked run keeps it, so the run can still be resumed.
- The Configure tab shows the team count and the size of the list against the 14 MB limit, with a warning from 80%. teams_list returns projectList, and teams_save and teams_delete add a warning past 80%.
- Single-team saves and deletes on the server shipped in 1.198.0 (see above). An open Teams panel now also refreshes as soon as an agent saves or deletes teams over MCP.
About one-off pipelines: rather than a new team per task, keep one team per kind of pipeline (for you: build, check, blind review) with general step instructions, and put each task's brief in the backlog ticket that starts the run (backlog_create with teamId, then backlog_start_next). The first step receives the ticket, the run is tracked like any team run, and it always uses the latest saved team. When a task really needs its own graph, create it with runOnce: true. capabilities_get({ topic: "teams" }) now describes this under "teamList", so a coordinator agent can read it before creating teams.
To clear your current list after updating: Configure > Last run > Never run (add Created > More than 1 day ago to keep today's teams) > Select > Select all > Delete.