Skip to content

feat(acp): support latest ACP session metadata#861

Merged
matt2e merged 15 commits into
mainfrom
latest-acp
Jul 7, 2026
Merged

feat(acp): support latest ACP session metadata#861
matt2e merged 15 commits into
mainfrom
latest-acp

Conversation

@matt2e

@matt2e matt2e commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Upgrade ACP SDK integration and persist rich ACP session/event metadata.
  • Surface ACP metadata, tool state, permission, and replay behavior in the staged session UI.
  • Add migrations and tests for ACP transcript projection and storage behavior.

matt2e added 13 commits July 6, 2026 21:20
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Record ACP message chunk IDs, usage updates, and prompt response usage as hidden session_messages rows while preserving legacy transcript filtering.

Expose a query path for ACP metadata rows through Tauri and web commands so richer rows can be retrieved deliberately without changing current UI rendering.

Signed-off-by: Matt Toohey <contact@matttoohey.com>
Send ACP session/cancel before process teardown when a session id is available, answer cancelled permission requests with the ACP cancelled outcome, and map cancelled stop reasons into Staged interrupted completions.

Use ACP message and tool IDs from existing session_messages metadata to bound resume replay before falling back to legacy role/content matching.

Signed-off-by: Matt Toohey <contact@matttoohey.com>
Render ACP tool status, structured inputs and outputs, diffs, locations, usage, plans, config selectors, and slash command discovery from existing session_messages metadata.

Route ACP permission requests through the Staged UI instead of auto-selecting the first option, while preserving legacy fallback behavior for non-interactive clients.

Signed-off-by: Matt Toohey <contact@matttoohey.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Keep ACP permission option kinds typed in the wrapper and centralize the autoapproval helper so reject kinds are never selected just because their label contains allow. Update Staged to reuse the shared helper and add regressions for Don't allow and Disallow reject options.

Signed-off-by: Matt Toohey <contact@matttoohey.com>
Hide usage, mode, configuration, and slash command ACP metadata rows from the chat transcript while keeping plan metadata visible.

Remove the right-aligned status label from chat tool call headers; status remains indicated by the icon and expanded details.

Signed-off-by: Matt Toohey <contact@matttoohey.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Carry the ACP tool call id through result persistence so interleaved ToolCallUpdate content updates separate transcript rows. Persist the tool call id on result rows for structured replay boundaries and add a regression for alternating tool result updates.

Signed-off-by: Matt Toohey <contact@matttoohey.com>
Short-circuit ACP resume replay when persisted history has no non-user replay target, while still transitioning the handler before the next prompt.

Add a regression for user-only replay boundaries.

Signed-off-by: Matt Toohey <contact@matttoohey.com>
Use ACP message IDs when visible projection rows have them, and otherwise consume concrete visible row occurrences instead of dropping every matching role/content pair.

This preserves repeated user or assistant messages as replay boundaries while still avoiding duplicate chunk-backed projections.

Signed-off-by: Matt Toohey <contact@matttoohey.com>
@matt2e
matt2e requested review from baxen and wesbillman as code owners July 6, 2026 11:50

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 523f75c7a2

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread crates/acp-client/src/driver.rs Outdated
Comment thread crates/acp-client/src/driver.rs Outdated
matt2e added 2 commits July 6, 2026 22:32
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
@matt2e
matt2e merged commit 60bcb52 into main Jul 7, 2026
6 checks passed
@matt2e
matt2e deleted the latest-acp branch July 7, 2026 01:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant