Skip to content

[ACP] Opencode sets rawInput back to empty #7370

Closed as not planned
Closed as not planned

Description

@r1bilski

Description

Here is an example tool call when using opencode acp (removed irrelevant fields):

[
  {
    "update": {
      "kind": "execute",
      "rawInput": {},
      "sessionUpdate": "tool_call",
      "status": "pending",
      "title": "bash",
      "toolCallId": "id1"
    }
  },
  {
    "update": {
      "rawInput": {
        "command": "echo 'foo'",
        "description": "Print 'foo'"
      },
      "sessionUpdate": "tool_call_update",
      "status": "in_progress",
      "toolCallId": "id1"
    }
  },
  {
    "toolCall": {
      "kind": "execute",
      "rawInput": {},
      "status": "pending",
      "title": "bash",
      "toolCallId": "id1"
    }
  },
  {
    "update": {
      "rawInput": {
        "command": "echo 'foo'",
        "description": "Print 'foo'"
      },
      "sessionUpdate": "tool_call_update",
      "status": "in_progress",
      "toolCallId": "id1"
    }
  }
]

As you can see, we:

  1. Get the initial SessionUpdate for the tool call
  2. Get an update with command and description
  3. Get a permission request that sets rawInput back to {}
  4. Get an update for the status that sets rawInput back to the state from before the permission request.

This is unfortunate, because that means when we display the details of the tool call to the user, they have nothing to base their decision on except the title and kind, which didn't get overwritten.

Plugins

None

OpenCode version

1.1.4

Steps to reproduce

  1. Set up an ACP session
  2. Get the agent to request a permission

Screenshot and/or share link

No response

Operating System

Alpine Linux

Terminal

st

Activity

  1. github-actions commented on Jan 8, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    Feel free to ignore if this doesn't address your specific case.

  2. r1bilski commented on Jan 8, 2026

    @r1bilski
    Author

    Ref: above issue, based on my reading of the spec I think there is no reason to send all that information on each update.
    ToolCallUpdate says:

    Used to report progress and results as tools execute. All fields except the tool call ID are optional - only changed fields need to be included.

  3. rekram1-node commented on Jan 8, 2026

    @rekram1-node
    Collaborator

    /oc I think? this may have been a recent regression, investigate the acp implementation and make a fix if u can figure out the issue

  4. opencode-agent commented on Jan 8, 2026

    @opencode-agent
    Contributor

    Created PR #7374

    New%20session%20-%202026-01-08T20%3A15%3A04.016Z
    opencode session  |  github run

  5. thdxr commented on Mar 25, 2026

    @thdxr
    Member

    To stay organized issues are automatically closed after 90 days of no activity. If the issue is still relevant please open a new one.

  6. removed
    bugSomething isn't working
    on May 3, 2026
  7. pdehne commented on May 14, 2026

    @pdehne

    Is how this should be handled explicetely defined in the ACP protocol? The convention seems to be that OpenCode should send title = "full bash command here" like others are doing. See here for more details: carlos-algms/agentic.nvim#232 (comment)

  8. leduckhc commented on May 19, 2026

    @leduckhc

    Why I can see several implementations here and PRs, such as #7374, but are all closed? This bug/inconsistency is really annoying. Is there somebody willing to merge the fix?

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

Metadata

Metadata

Assignees

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