Outcome
Registry search, compatible-distribution selection, global package installation, managed binary installation, provider identity, authentication state, models, configuration, commands, prompt lifecycle, permissions, tools, message upserts, usage, plans, agent terminals, compaction, session and provider management, MCP-over-ACP, checkpoints, and mobile provider identity all share the generic ACP path. Unknown future variants remain explicit instead of disappearing.
Live negotiation changed the implementation
pi-acp@0.0.33 returns a v1 response with protocol value 1. Google
Antigravity returns a v1-shaped response with protocol value 2. Generation selection
is now based on the response discriminator, not an overloaded numeric value.
Live proof
Current feature parity
| Surface | Status | What is integrated | What remains |
|---|---|---|---|
| Registry lifecycle | Integrated | Search, environment compatibility, exact versions, global npm and uv tools, managed binaries, deletion semantics. | Optional global shims for binary distributions. |
| Protocol routing | Integrated | v2 alpha.3 preferred, v1.21 fallback, one provider-neutral client and adapter. | Conformance fixtures for every future alpha. |
| Authentication | Integrated | Agent, terminal, and environment methods, logout, provider status, expiring URL actions, refresh, and cross-device snapshots. | Mobile controls for completing provider actions. |
| Prompt lifecycle | Integrated | v2 accepted response plus idle state, v1 terminal response, cancel, late-event quarantine, and visible requires_action state. | Broader stress coverage across independent agents. |
| Messages and content | Integrated | Authoritative user, assistant, and thought upserts; replay and null clears; text, links, resources, binary placeholders, and explicit unknown variants. | First-class rendering for more media and resource types. |
| Tools and permissions | Integrated | Tool lifecycle, permission policy, confined client reads, request identity, MCP approvals, and first-class structured diff operations. | Provider-specific extension UX remains opt-in. |
| Models and options | Integrated | Live models, custom IDs, config options, picker updates, native Build defaults, Plan mapping, and secret-safe upstream provider management. | Mobile provider-management controls. |
| Plans | Integrated | Multiple native plan IDs, item, file, and markdown forms, replacement, and targeted removal. | Provider-specific plan renderers are intentionally unnecessary. |
| Agent terminals | Integrated | Associated and standalone terminals, streaming UTF-8, decoded-byte and frame caps, strict base64 validation, and exit state. | Interactive input when a future schema standardizes it. |
| Sessions | Integrated | List, deterministic import, v1 load, v2 resume and replay, failed-load isolation, fork, close, rollback replacement, and explicit deletion. | Mobile session-management controls. |
| Usage and compaction | Integrated | Context usage, cumulative cost, progress, stopped, failed, and completed compaction, summaries, and context reset. | Nothing required for current schema parity. |
| MCP | Integrated | Stdio, HTTP, native ACP-carried MCP, authenticated fallback, message bounds, and disconnect cleanup. | Notification-heavy and long-lived bridge stress fixtures. |
| Clients | Broad | Web and desktop configuration and lifecycle UI; mobile identity, health, activity, and structured diffs. | Mobile install, authentication, provider, and session management. |
P0, P1, and P2 work now shipped
Unknown v2 variants
Future content and update variants survive normalization as bounded raw payloads and explicit placeholders.
Authentication handoff
Browser, terminal, and environment actions are resumable, expiring, refreshable, and visible across connected clients.
Structured diff fidelity
Operations, old paths, file and media types, multi-file changes, and patch text project into typed web and mobile rows.
Plans by native ID
Multiple plans retain their IDs, item, file, and markdown forms, replacement, and targeted removal.
Authoritative replay
User, assistant, and thought upserts cover active turns, replay, null clears, replacements, and interleaved chunks.
Terminal and action state
Standalone terminals, requires_action, strict frame validation, and decoded-byte bounds are first-class.
Native MCP-over-ACP
{ type: "acp" } connect, message, and disconnect join the stdio and HTTP bridge behind shared bounds.
Safe provider configuration
providers/list, providers/set, and providers/disable use a secret-safe wire contract and scoped RPC authorization.
Session deletion and compaction UX
Native session deletion and compaction progress, failure, stopped, completed, summary, and context-reset states are exposed.
Remaining generic gaps
Mobile lifecycle controls
Mobile can identify ACP providers and render their activity, health, and structured changes, but cannot yet install agents or manage authentication, upstream providers, and native sessions.
Richer content presentation
Unknown and binary content is preserved safely, but more ACP media and resource variants could receive dedicated renderers instead of compact fallbacks.
Broader conformance coverage
Add notification-heavy MCP fixtures, cancellation and reconnect races, future alpha fixtures, and live coverage for more independent Registry agents.
Intentional limits
ACP does not provide portable subagent lineage or guarantee that provider-owned tools share T3's sandbox. Checkpoint rollback restores the workspace but must replace the native agent session because ACP has no conversation truncation operation.
Defer editor-only protocol surfaces
NES suggestions and document synchronization should wait for an editor surface that can present and own those semantics. Adding transport handlers without a product consumer would create machinery without user value.