# acp_thread: Adopt shared ACP v2 content values \(\#64765\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/ee43be113e362502f8f7c030db5e797126577973)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: ee43be113e362502f8f7c030db5e797126577973

Requested commit: ee43be113e362502f8f7c030db5e797126577973

Commit: ee43be113e362502f8f7c030db5e797126577973

Tree: 956880fbaef4f77b949667097c2a0c6815f7c975

Author: Ben Brandt

Committer: GitHub

## Message

```
acp_thread: Adopt shared ACP v2 content values (#64765)

Use SDK v2 content values as the shared representation inside the
existing message model and render-source owners, while keeping current
v1/native producers and wire APIs working through explicit adapters.

- Preserve payloads, annotations, metadata, optional/empty values, and
original content-block boundaries without a second transcript or
serialization-based conversion.
- Convert v1 inputs explicitly at message, tool/compaction,
prompt-display, and native replay boundaries. Existing v1 prompt
payloads, IDs/grouping, echo policy, streaming, editing, and rewind
behavior remain the compatibility baseline.
- Keep unsupported v2 user data canonical, show a read-only indication,
and prevent a lossy edit/resend. This includes unknown block types,
unknown audience roles, and nonempty v2-only resource-link icons. Empty
icon lists normalize to absence at the v1 boundary.
- Keep checkpoint restoration independent of edit eligibility. Refresh
unsupported focused messages, clear invalid editing state without moving
focus, and recheck the retained editor after asynchronous rewind before
resending.
- Avoid cloning retained source payloads when a focused, supported
editor will not be refreshed.

This enables SDK **type availability**, not v2 connections.

#### Review order

1.
[b166b0c52d3d0](https://github.com/zed-industries/zed/commit/b166b0c52d3d035f05fedea8a9fa92f83e3a79ed)
— mechanical `acp_v1` alias rename and formatting, kept separate to
reduce noise in the functional review.
2.
[2d1b5345c0f8b](https://github.com/zed-industries/zed/commit/2d1b5345c0f8b22a978db42af12e702d7bca1dfa)
— content-value migration, read-only handling, and regressions.
3.
[0c9befbc960eb](https://github.com/zed-industries/zed/commit/0c9befbc960eb4855b4427230bd8fbba4e7044aa)
— main integration, preserving the newly landed tool-output fallback
(#64708) and completed-plan removal (#64719).
4.
[de22432b3f375](https://github.com/zed-industries/zed/commit/de22432b3f3758af7c069f314d7f217a7f1f326b)
— empty-icon normalization and expanded bidirectional/wire round-trip
coverage.

Release Notes:

- N/A
```

## Parents

- [f8b0d52b3ef22604e4f01179f74c12d3cdd29b8a](https://git.cafe/gitcafe/zed/commit/f8b0d52b3ef22604e4f01179f74c12d3cdd29b8a?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/ee43be113e362502f8f7c030db5e797126577973?format=markdown)
