open-webui / open-webui/computer
feat: visibility and control over background subagents (list, open, cancel)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 569
- Forks
- 79
- PR merge metrics
- No merged PRs in 30d
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.
Contributor guide
No contributing guide indexed for this repository
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.
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.
Assessment
- Tech stack
- python
- Domain
- api, backend, frontend, full-stack
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100