Skip to content

Add host-callable cancellation for individual background tasks #492

Description

@jbellis

Problem

ACP hosts can observe Codex execute-tool cards that remain active after the foreground turn, but cannot stop one specific background task. The standard session/cancel request targets the current session turn, while terminal/kill is a reverse request from agent to client and does not apply to Codex-owned processes.

This leaves clients with only a read-only task display or the much broader option of cancelling the foreground turn/session.

Observed with @agentclientprotocol/codex-acp 1.8.0 and @openai/codex 0.153.4. The adapter exposes session/cancel, _session/steering, and _session/goal, but no task-targeted stop method or per-task stop capability.

Request

Please expose a host-callable way to stop one Codex-owned background task without cancelling unrelated foreground work. Either JetBrains AIR asyncTasks compatibility or a documented Codex ACP extension would work.

The client needs:

  • a stable opaque task ID in lifecycle updates;
  • a per-task canStop capability/affordance;
  • a client-to-agent request accepting the session ID and task ID;
  • an explicit result for accepted, already-finished, and not-stoppable tasks;
  • lifecycle updates after acceptance so the client can keep showing Stopping until the task actually exits.

Idempotent handling of stale IDs would make snapshot-driven UIs substantially safer.

Use case

A terminal and web session viewer shows background work across providers. Claude can expose a targeted stop affordance through AIR async-task updates, and client-owned ACP terminals can be killed through their local supervisor. Codex tasks currently have to remain read-only because there is no equivalent ownership-safe control path.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions