feat: visibility and control over background subagents (list, open, cancel)
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 42/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python
- Domain
- api, backend, frontend, full-stack
Research direction
Start by tracing the delegate_task entry point, chat router, subagent registry, and existing events:chat/chat:tasks socket flow. Map the backend ownership checks and frontend tasks-card behavior before implementing the proposed list, open, cancel, and live-update interactions. Done means background subagents are visible, openable, cancellable, and foreground and completion rows expose their chats consistently.
Written by the indexing model from the issue text.
Description
feat: visibility and control over background subagents (list, open, cancel)
Feature description
When the agent dispatches background subagents (via delegate_task), there is
no way to see them, open the underlying chat, or cancel a runaway one. They
run invisibly in the background.
Proposed solution
- Backend:
GET /api/chats/{id}/subagentsandPOST /api/chats/{id}/subagents/{delegation_id}/cancel(ownership-checked like the rest of the chat router).- Registry helpers to track
cancel_async_subagentand aparent_chat_idfilter, plus a socket push (e.g.chat:subagents) on state changes. - Foreground
delegate_taskreturning the same JSON shape as background dispatches (delegation_id+subagent_chat_id) so every delegation is clickable.
- Frontend:
- A "Subagents" bar above the chat input (tasks-card style) listing running/finished background subagents with Open (opens the subagent chat in a tab) and Kill (confirm, then cancel API) actions.
- Live updates via the existing
events:chatsocket channel, same pattern aschat:tasks. - Expanded
delegate_tasktool calls that carry a subagent chat id get an Open button; the background completion row gets an "Open sub-agent chat" action.
Additional context
Implemented on a fork; can share implementation notes.
- Dominant language
- Python
- Stars
- 620
- Forks
- 85
- PR merge metrics
- No merged PRs in 30d
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from open-webui/computer
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
open-webui/computer#293 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
open-webui/computer#286 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
open-webui/computer#276 · 1 comment · 1 reaction ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
open-webui/computer#271 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
open-webui/computer#269 · 1 comment ·
All issues in open-webui/computer
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
modelcontextprotocol/python-sdk#3648 ·
Maintainers usually reply within 1 day
-
docs good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
VenetoStato/giorgio#6 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 70/100
EclipseFdn/open-vsx.org#13831 ·
Maintainers usually reply within 1 day
-
feature request
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 2 days