Skip to content

AcpAgent Client 1.3.0

Choose a tag to compare

@ClickPM ClickPM released this 20 Sep 08:26
· 178 commits to main since this release

v1.2.0 之后 main 上落地的一项重构与两项修订。仍是源码 release:打包轮(R8:Windows zip / 安装器、macOS 构建、干净机验收)还没做,需要自行构建,步骤见下。

变更

R7.5 组合根拆分(纯重构,行为零变化)

lib/app/workbench_controller.dart 原是 2645 行的单一 ChangeNotifier(103 个公有方法、83 处通知全落一个对象)。这一轮把它拆成组合根 + 8 个对象:组合根只剩接线与生命周期(356 行);ShellState / WorkspaceState / AgentsState / AuthState / ComposerState 按画板分组管本地态,SessionController / TurnController 驱动协议(会话生命周期与一轮对话),SessionIndex 是本地索引 sessions.json 的内存镜像,共用的通知与错误边界收成 GuardedNotifier mixin。依赖只允许单向(turn → session、session → index / agents / workspace、shell / workspace → files),反向一律走组合根在构造时接的回调,没有子对象 import 组合根;screen / 无头驱动 / 单测直接访问子对象,组合根不留转发门面。

「零变化」是量出来的:lib/ui / lib/theme / lib/projection / lib/bridge / rust/ / test/fixtures / pubspec.yaml 零 diff;test/ 只改引用路径(用例数与 expect( 数不变);每一步拆分之后,三份 fake-agent 无头实跑报告(R3 / R5 / R6 三条路径,隔离数据目录)与基线逐字段等价,比对脚本随基线入库在 rounds/round-7.5/baseline/。scripts/validate.ps1 新增两道门:lib/app 行数门(组合根 ≤ 450、其余 ≤ 900)与依赖方向门(附录 B 之外的 import 不许),13 项变 15 项。

按区域订阅(阶段 B)先量后动:一次 session/update batch 只触发壳级 build 一次,未过阈值,本版不动;数字记 rounds/BACKLOG.md。

修复

  • markdown 渲染器认行内 HTML 的 <br>(含 <br/> / <br />,大小写不敏感):GFM 表格单元格装不下真换行,agent 普遍拿 <br> 换行,此前整列显示成字面 <br>(实机:pi 的扩展清单表格)。只认这一个标签,其余行内 HTML 照旧原样显示。
  • 深色下 agent 图标与应用标记看不见:registry 的 icon.svg 与内置条目的图标都是 fill="currentColor" 的单色 SVG,flutter_svg 不给 SvgTheme 时把 currentColor 当纯黑,深色下就是黑底黑标;现在给它一个随主题走的取值(SvgTint.mark)。应用自己的标记 AppLogo 去掉 const,换主题时才会重建。

其它

  • 三处版本号(pubspec.yaml、rust/Cargo.toml 的 workspace、sidecar/zed-agent-acp/Cargo.toml)一并抬到 1.3.0:exe 元数据、smoke 报告与调试面板的 coreVersion、registry 下载的 User-Agent、sidecar --version 与它在 ACP initialize 里报给客户端的 agent 版本,都跟着变。

怎么构建

前置:Rust stable、Flutter stable、flutter_rust_bridge_codegen、VS 2022「使用 C++ 的桌面开发」、Node >= 22。详见 CLAUDE.md「本地开发」。

powershell -File scripts/fetch-upstream.ps1      # 按 pins/upstream.json 填充 vendor/upstream/
powershell -File scripts/validate.ps1            # 编译 + 测试 + 契约检查 + lib/app 两道门
powershell -File scripts/build.ps1               # flutter build windows --release
powershell -File scripts/build-sidecar.ps1       # Zed Agent sidecar(冷编译约 50 分钟,可选)

sidecar 缺了不报错,只是 agent 列表里没有 Zed Agent。Windows 首发,macOS / Linux 在 R8。

许可证

GPL-3.0-or-later(见 LICENSE)。rust/ 与 sidecar/ 里复制改写或转写自 Zed 的文件各自在文件头标注了上游路径与 commit,汇总在 NOTICE——同一份文件也列出 ACP 规范 / rust-sdk / registry(Apache-2.0)、随包字体(OFL-1.1)与图标的来源,以及商标声明。开源、不商用。上游钉版本在 pins/upstream.json。

已知限制(1.2.0 的几条仍然成立):R8 打包与发布未开始;session/load 重放不带回轮边界;sidecar 未带 languages crate(构建机缺 VS Spectre 缓解库组件);深色模式属实现先行,画板 07 没画切换按钮、深色页面画板未出。本版新增一条:换主题后,const 构造又在 build 里读颜色 token 的少数自写 widget(registry 条目的标签与占位菱形、卡片头的折叠箭头、文件面板的空态等)会停在切换前的颜色,直到那块界面被重建;已记 rounds/BACKLOG.md,与 AppLogo 那条是同一个机制。

Full Changelog: v1.2.0...v1.3.0