Skip to content

feat(acp): route draft permissions through the shared request owner - #193

Draft
YoungSx wants to merge 26 commits into
mainfrom
feat/acp-v2-permission
Draft

feat(acp): route draft permissions through the shared request owner#193
YoungSx wants to merge 26 commits into
mainfrom
feat/acp-v2-permission

Conversation

@YoungSx

@YoungSx YoungSx commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

ACP v2 的权限请求使用 title、description 和可选 subject,旧 handler 却强制要求 v1 toolCall。现在草案 handler 解析这些字段,并通过既有 PermissionRequestReceived 和同一 pending request owner 完成答复、取消、失败重试及连接清理。

Tool、command 和未知 subject 保留各自语义;未知字段和原始 payload 可往返,schema 授权的默认值与必填类型规则保持一致。V2 事件的 ToolCall 为 null,草案详情只由受 SEACP002 保护的 accessor 读取。新增 TryRespondAsync 和 CanRespond 保留旧 SDK 构造/Respond 兼容,旧 callback 不会响应重用 ID 的新请求。

这是 #149 的 C2 阶段,依赖更新投影 PR #192;公开 live V2 继续禁用,不关闭总单。当前先按 main 提交完整可构建分支,前置合并后可缩小 diff。

验证:当前 851f0f20 的 SDK 1013/1013 通过;整合前 2c69b187 的格式、分析器、Release 构建及 1.0.0 包兼容门禁通过,零警告/错误。新增测试覆盖 schema、原事件到 transport 的真实 JSON 链、选项篡改、失败重试、stale callback、取消和公开默认限制;独立规范与协议审查未发现本阶段新增阻断。外部消费门禁包含 46 个草案类型及权限 accessor 示例,由本次 SHA CI 再验证。

保持 draft。内部确定性对端与离线 consumer 不替代真实 V2 Agent 互操作;生产默认仍是 V1。

Default only an absent v1 type to agent, reject non-string discriminators, and preserve unsupported strings and payload fields. Share version-aware authentication serialization across DTO, collection, and initialize roots so unknown fields cannot override the negotiated method identity.

Add raw initialize transport regressions, presentation selection coverage, and schema round-trip properties. Validation: 593 SDK tests, 26 presentation authentication tests, analyzer and package validation, external nupkg consumer, and a 9-case failing whitelist mutation.

Refs #147
Apply negotiated identifiers and required message identities across direct, collection, and parent contracts. Preserve unknown command and resource metadata, honor explicit schema recovery rules, and keep v1-only state off draft wire.

Keep live v2 disabled and preserve the published serialization surface. Validate 680 SDK tests, package compatibility against 1.0.0, and 38 draft consumer diagnostics; version-rule mutations fail 45 targeted cases.
Wait for the native canvas and splash removal within the existing boot deadline before enabling accessibility once. Uno 6.7.103 (cd452e3ee242c9a2a8dee5e65ad8088b6f5dbf83) can retain initial sibling bounds when ancestor layout moves after early semantic activation, causing pointer gates to click an adjacent card.

Validated against the same Debug product with CPU throttle 4: early activation fails, late activation passes, restoring early fails, restoring late passes. The unchanged two-round pointer gate passes with the final helper at CPU rates 4 and 1. Product focus code is unchanged.
@vercel

vercel Bot commented Sep 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
salmonegg Ready Ready Preview Sep 9, 2026 3:26pm UTC

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