Skip to content

feat(acp): add consent-driven URL elicitation - #191

Draft
YoungSx wants to merge 10 commits into
mainfrom
feat/acp-url-elicitation
Draft

feat(acp): add consent-driven URL elicitation#191
YoungSx wants to merge 10 commits into
mainfrom
feat/acp-url-elicitation

Conversation

@YoungSx

@YoungSx YoungSx commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Agent 的 URL 输入请求现在由 SDK 保存响应、外部完成和连接结束这三个事实。界面显示目标与完整 URL,用户明确确认后才打开隔离浏览器页面;取消不导航,重开不重复回复,外部完成、会话切换和断连会更新同一个请求状态。

WASM 通过提前加载的模块保持真实 user activation,以 noopener/noreferrer 打开独立上下文。请求视图使用 typed ContentControl/DataTemplate 随当前请求生成,修复第二次输入的语义节点丢失。物理断连有唯一在途任务,退出尚未结束时新握手不能复用同一个传输。

GUI 门禁在输入前等待语义节点真实布局,在下拉框关闭后等待该框的 popup 消失、原生焦点归还且跨帧稳定;保持每次输入只聚焦一次。Playwright 的等待谓词保持同步,跨帧检查单独执行,避免 Promise 被误当作成功条件。本次 helper 修复没有修改生产焦点逻辑。

本 PR 当前只在 WASM 广告 URL 能力。桌面启动器已实现,并配有独立 Linux 真实浏览器门禁;原生平台在完成产品 GUI 验收前继续关闭能力。Refs #154#146;包含 #186 取消前置,基于 main 4a4e3c5,不关闭总单。

本地验收快照(分支尚有未推送提交,下面不是远端 CI 结论):

  • 源码与门禁 helper 提交 2a84bcf2e2f18129e65fb8467aa60955a37567cf:SDK 616/616、零跳过;格式、分析器和 Release 构建零警告、零错误。SalmonEgg.Acp.1.0.1-alpha.0.188.nupkg 通过 1.0.0 基线兼容验证,包内只含 lib/net10.0,包的 repository commit 与本次源码一致。
  • 该 nupkg 的隔离外部消费门禁通过:稳定 v1 初始化、1.0.0 预编译 transport 在新包运行、全部 37 个草案公开类型拒绝未显式启用的消费,以及两种文档化抑制方式成功编译运行。
  • 实际启动的 WASM Release 产品来自 59e83a47982e34ab570bc29dbdfa173fcaed71a9,版本 1.5.2-alpha.0.22+59e83a47982e34ab570bc29dbdfa173fcaed71a9,产物目录 SalmonEgg/SalmonEgg/bin/Release/net10.0-browserwasm/wwwroot;其后唯一变化是上面的门禁 helper。该次 WASM 构建零错误,3 条已有 Uno 模板警告。
  • 使用该产品和 2a84bcf2 helper 的正式完整链通过(116.96 秒):会话创建前的 request-scoped 表单取消、typed form/空值阻断、未知必填字段取消、两轮不同完整 URL、取消零导航、原生鼠标确认与键盘重开、单次 accept 且无 content、重开、外部 complete,以及独立上下文和私密 canary 保护。浏览器保留原生 popup 策略。
  • 同一产品、固定 CPU 限速 4 的两组独立反向对照成立:撤掉真实布局等待后输入丢失,恢复后通过;只还原旧菜单关闭路径后第 3 轮焦点断言失败,恢复后 3 轮不同完整输入通过。早先 async 谓词版的一次成功已排除出最终证据。
  • 历史集成检查:ChatViewModel 367/367 通过;功能阶段生命周期定向、真实构建模块的 pointer 检查及旧 XAML 反向检查均有记录。这些历史结果不替代后续公共 ownership 修复的新提交验收。

保持 draft,等待公共 permission binding 与 SDK notification ownership 修复传播后,在最终提交上重新运行代码、打包及平台构建门禁。现有 Desktop 产物实际来自 9bec5e9533ff83b66d7f11768f2cb721bd011071,仅作为历史构建证据,须在最终提交重建。

产品鼠标确认与重开已另行通过:首次按语义节点定位单击,重开按本轮实际截图定位单击,均无重复点击或键盘兜底。重排后的语义节点坐标与 canvas 不一致,已按精确 Uno 6.7.103 源码记录自动化边界;正式门禁覆盖首次真实鼠标与再次原生键盘,不写入固定坐标。Windows/macOS/移动端产品 GUI、真实第三方 Agent 与生产 bridge 仍待对应环境,CI 条件跳过不视为验收。上述运行已清理自有浏览器、服务和临时 consumer 目录。

@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 8:25am 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