open-webui / open-webui/computer

feat: visibility and control over background subagents (list, open, cancel)

Open
#253 1 comment 0 reactions 0 assignees View on GitHub

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}/subagents and POST /api/chats/{id}/subagents/{delegation_id}/cancel (ownership-checked like the rest of the chat router).
    • Registry helpers to track cancel_async_subagent and a parent_chat_id filter, plus a socket push (e.g. chat:subagents) on state changes.
    • Foreground delegate_task returning 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:chat socket channel, same pattern as chat:tasks.
    • Expanded delegate_task tool 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.