# 更新记录

[返回主页](../README.md) · [使用参考](reference.md) · [配置](configuration.md) · [开发与验证](development.md)

记录源码与发布内容，不将本地构建、npm 发布和本机升级混为同一状态。日期采用 Asia/Hong_Kong。更早历史见 [Git 提交记录](https://github.com/KouzakiUmi/dsh-antigravity-acp/commits/main/)。

## 0.1.37 · 2026-11-04

- **AI Credits 未开启时整块隐藏**：药丸展开详情与设置页额度面板中，「用 agy CLI 查询额度」未开启（新错误码 `cli-disabled`）时不再渲染 AI Credits 区块，也不显示占位说明文字；开关已开但 CLI 缺失、CLI 不支持或上游无数据仍显示错误信息，便于排查。删除代理模式详情与设置页共用区块底部「套餐额度属于代理账户……」的整段说明。
- **保存栏样式与面板统一**：设置页 sticky 保存操作不再以整块 `--dsh-surface` 底色呈现，改为与其它面板一致的圆角细边框浅底面板，sticky 层仅保留遮滚动内容的表面底色。
- **验证**：类型检查、44 个文件 / 804+ 项测试、构建与离线预览截图生成通过；README 与参考文档版本行同步 0.1.37。保存栏视觉经脏状态离线渲染核验结构，未在运行中的 Desktop 上实机验收。

## 0.1.36 · 2026-11-04

- **额度查询默认不再调用 agy**：新增即时开关 `cliQuotaEnabled`（默认关闭）。关闭时 ACP 套餐额度走内置 Cloud Code Assist 直连、代理模式走代理账户，两种模式都不 spawn `agy`，AI Credits 不查询。打开并保存后，ACP 模式才运行 `agy -p /usage` 与 `agy -p /credits`；代理模式套餐额度仍用代理账户，只有 AI Credits 调用 `agy -p /credits`。开关翻转后旧额度快照立即失效。
- **设置页精简重排**：分为「连接 / 模型 / 额度 / 高级」，默认只显示当前模式所需的账户与连接操作；删除重复标题，无修改时不显示保存横幅，编辑后仅出现细常驻操作行。模型改为紧凑列表，支持搜索、启停筛选与筛选结果批量启用 / 隐藏；完整 ID、输入能力、显示名和官方映射在单条详情中编辑。高级设置按网络、启动、连接池、超时、会话进程独立展开；所有非活动页仍保留挂载与草稿。
- **模型与账户隔离修复**：ACP 复用会话会识别官方映射 / 默认档位变化并重建；代理目录按账户代际清空，失效后直接重登发布新代际；已有代理账户刷新失败不再静默导入 CLI 的另一账户。
- **额度归因修复**：请求携带期望模式和公开模型，模式不一致时明确拒绝，跨家族映射按实际官方模型选择额度组，迟到模型响应不覆盖新型号。
- **验证**：类型检查、44 个文件 / 804 项测试、构建与离线预览生成通过。未在运行中的 Desktop 上实机验收，也未用真实 Google 账户验证额度来源。

## 0.1.35 · 2026-11-03

本节与下方 0.1.32–0.1.34 三节的源码改动合并为一次 npm 发布：npm 上从 0.1.31 直接到 0.1.35，0.1.32 / 0.1.33 / 0.1.34 不作为独立版本存在。三节保留为源码演进记录。

- **代理模式彻底停用 ACP**：保存 `proxyMode` 即注销 ACP，不再等待代理路由就绪，也不在代理组件缺席、卸载或注册失败时回退。Host 控制层拒绝 ACP 登录与预热，设置页隐藏 ACP 专属控制项；关闭自动预热时也不再预读官方二进制。
- **完整设置与详情布局**：设置页补齐 ACP 二进制、自动下载、版本、额外参数、并发、排队和各类超时控制，额外参数按行编辑；移除代理排除列表控制项。对话药丸保留原尺寸并只显示额度入口，移除并排预热按钮与 ACP 状态轮询；展开详情按组分隔、额度窗口并排，使用细进度条与紧凑 Credits / 刷新区域。
- **验证**：类型检查、44 个文件 / 792 项测试、构建与离线预览生成通过；未安装到运行中的 Desktop，未重新验收真实账户与 GUI。

## 0.1.34 · 2026-11-03

- **无 CLI 的 OAuth 闭环**：CLI 登录文件不存在时直接返回 Google 授权入口。使用实际 OAuth 状态机、真实本地 HTTP 回调、模拟 Google 换码和项目响应，验证 PKCE、真实临时存储、模型目录及服务重建。代理登录、目录、套餐额度与聊天不要求安装 agy CLI；AI Credits 仍来自可选 CLI 账户。
- **登录与取消修复**：显示检查登录态、等待浏览器和完成登录阶段；后台取凭据不覆盖在途授权。取消覆盖授权前换发/项目检测和回调后换码/提交，监听关闭不阻塞重试；拒绝、缺码、过期、端口占用、项目和保存失败分别反馈原因。
- **常驻保存栏**：保存、未保存计数、撤销、刷新、冲突与结果集中到顶部，滚动时保持可见。网络草稿需先保存再连接，取消和退出仍可用；窄屏标题可换行，提示文字适配深浅主题。
- **设置页拉取额度**：新增「套餐额度 → 拉取额度」，打开页面不自动查询。与药丸共享读取器，按实际模式和账户隔离结果，旧请求不广播到新账户；代理药丸在设置页关闭时也跟随账户变化。
- **紧凑药丸**：外观交互参考 dsh-subusage 0.23.0（MIT），取数由本插件负责。正常显示迷你余量条，异常增加简短状态，详情增加关闭按钮；修复共享广播导致刷新按钮持续忙碌。
- **验证**：类型检查、44 个文件 / 793 项测试、构建及 36 组离线 Chrome 布局检查通过。真实 Google 授权、上游生成与安装后 Desktop GUI 尚未验收。

## 0.1.33 · 2026-11-02

- **修复代理模式漏走环境代理**：原生 TLS 之前只读取插件 `proxyUrl`，留空就直连，未继承宿主代理环境。现在 OAuth、项目检测、模型目录、额度与生成统一使用 HTTPS 出网解析：显式配置优先，留空继承 HTTPS / ALL / HTTP 代理；小写变量优先。ACP 既有出网接线保持原状。
- **排除列表生效**：原生 TLS 现在检查 `proxyBypass` / `NO_PROXY`，仅命中目标时绕过出网代理。代理配置或连接失败继续报错。
- **验证**：类型检查、43 个文件 / 772 项测试、构建通过；新增环境代理优先级、OAuth 接线、真实本地 CONNECT 首包及排除列表覆盖。本机无凭据对比：直连约 3.5 秒超时，经本地代理约 170 毫秒收到上游预期的 401；该探针不验证账户授权或模型生成。

## 0.1.32 · 2026-11-02

新增**代理模式**（默认关闭）：bundle 增加第二组件 `antigravity-proxy-router`，开启 `proxyMode` 后模型生成不再经过官方 ACP 进程，而是由插件自持登录态、以 agy CLI 线身份直连 Cloud Code Assist；官方 ACP 路由同时注销，两种模式互斥。

- **模式开关**：`proxyMode`（volatile，默认 `false`）位于设置卡片「运行模式」。保存后仅在代理行取得路由时撤下 ACP；组件缺席、卸载或注册失败时保留 ACP，并解释原因。目录、额度与运行状态统一按实际模式取数，未保存的草稿不冒充已生效模式；代理模式隐藏 ACP 连接与进程操作。
- **OAuth**：代理账户独立于 ACP 登录。连接时先只读导入官方 CLI 登录态（`~/.gemini/antigravity-cli/antigravity-oauth-token`，官方文件保持只读）；无可用登录态时启动 PKCE + loopback 回调（`localhost:51121/oauth-callback`，只绑 127.0.0.1，5 分钟 TTL，state 不匹配不消耗在途 flow）。副本落盘 `proxy-account.json`（原子写、尽力 0600），access 过期用 refresh 换发后只写副本。设置页新增「代理账户」面板（连接 / 取消 / 退出、一次性授权 URL）。
- **线伪装**：复用 `@cortexkit/antigravity-auth-core@3.0.14`（与 dsh-tool-antigravity 0.5.2 同版本）的 agy 头序列、chunked 分帧、OAuth 常量、Gemini/Claude 请求变换与模型注册表；本包新增有界 HTTP/1.1 传输（字面请求字节、chunked/gzip 解码、头/体/帧上限、HTTP CONNECT 代理）。端点白名单仅 Cloud Code Assist 五方法与 Google token 端点；SOCKS 代理在代理模式明确报错。与参考实现的差异：不携带 DSH 归属第二头、单账户不轮转 429。
- **额度监控复用**：额度药丸在代理模式改走代理账户的 `loadCodeAssist` + `retrieveUserQuotaSummary`（同一 agy 线传输，401/403 按 `failure.status` 换发一次重试）；AI Credits 仍走官方 CLI 只读命令。模式切换失效旧模式额度缓存。药丸在代理模式显示「代理」标记并隐藏 ACP 预热按钮。
- **模型目录**：代理路由目录 = core 审计快照 ∩ `fetchAvailableModels` 实况（30s TTL）；刷新失败仅复用同账户已观测目录，无记录则报告错误。模型隐藏、显示名、默认思考档位与映射实际生效，准备与派发使用同一份设置快照。
- **图片输入**：代理模式接受图片（宿主附件服务在场时）：`readImageRequest` 有界投影（单图 4MP / 1MB）转 `inlineData`，整请求 12MB 内联预算，超预算按最旧优先报 `IMAGE_OFFLOAD_REQUIRED` 协商 offload；已 offload 的图片投影为占位文本。附件服务缺席时报 `UNSUPPORTED_MODALITY`，文本能力不受影响。输出含图片的型号（图像生成类）仍不在代理路由内。
- **边界**：代理模式不 spawn 官方进程、无 ACP 会话复用概念；`autoWarmup` 在代理模式下不预热 ACP；429 不做多账户轮转。
- **工具与历史回放修正**：无 ID 的并行工具调用分开组装，避免两份 JSON 参数被拼接后整轮失败；文本与思考块在后续分片收到的签名进入 replay 元数据。
- **设置页目录修正**：代理模式的模型读取与手动刷新走代理行的目录服务，强制刷新绕过目录缓存；切换来源时清空旧目录，迟到结果按当前模式重读。目录服务随代理行依赖卸载清理。
- **HTTPS 代理修正**：先与 HTTPS 代理完成 TLS 握手，再发送 CONNECT；省略代理端口时使用 443。HTTP 代理继续使用原有 CONNECT 流程。
- **登录取消与退出修正**：OAuth 回调后仍可取消 token 交换；退出使在途刷新失效，保存与清除按顺序完成，旧请求不能恢复登录。退出后本次插件生命周期内暂停自动导入，显式连接可重新登录。
- **额度切换修正**：模式切换时清除宿主旧额度与药丸旧快照，立即重取；在途旧请求按当前模式补读。代理模型的 `antigravity-` 前缀正常匹配额度组。
- **修复代理账户服务不可用**：Host 将额度与账户描述符合并为一次 Typert contribution，Client 合并为一次 `$mount`。当前桌面分发包的注册器拒绝同包重复身份；此前第二次注册或挂载会失败。
- **连接闭环修复**：导入后验证/刷新凭据，并沿用参考插件的只读 Cloud Code Assist 项目检测；未返回项目时明确报错，失效登录态允许重新 OAuth。登录完成与退出自动更新模型，状态轮询反映授权失败或过期，授权链接只从显式登录返回。
- **取消与账户隔离修复**：取消/退出抢占在途登录；存储加载单飞并隔离迟到结果，已开始保存的取消提交不残留。删除失败不再报告成功。目录和套餐额度绑定账户代际，同模式重新登录不会展示前账户数据。
- **生成与传输修复**：兼容 Google SSE 错误字段，401/403 首块前换发一次，工具调用配合 `STOP` 正确进入续轮；保留长思考签名与 developer 指令。未完成就断开的响应报错，HTTP chunk 增量解码并校验截断；图片能力与实际附件服务、发送尺寸一致。
- **验证边界**：本地类型检查、**43 个文件 / 766 项隔离测试**与构建通过。覆盖代理账户、设置交互、模型路由、工具续轮、图片、HTTP/SSE、跨账户缓存与模式回退；另使用当前桌面分发包的真实 Core 0.2.1-rc.5 / Cordis 4.0.5 / Typert 依赖验证构建产物加载、单次贡献注册、代理路由及卸载清理。真实 Google 授权、上游生成与 Desktop GUI 未重新验收。

## 0.1.31 · 2026-10-30

一轮可靠性加固，均为既有行为的缺陷修正，不改变对外配置字段与协议契约。

- **额度取数不再可能永久卡住**：HTTP 回退的换发与 Cloud Code Assist 请求此前没有超时。并发刷新会合并到同一个在途 promise 上，一次挂起的请求就让额度药丸永远停在「读取中」，手动刷新也救不回来。现在各有 20 秒上限，超时折叠成可读的失败快照并释放在途状态。
- **401/403 重试改按状态码判断**：此前靠匹配错误文案里的 `HTTP 401` 字符串，文案一改就静默丢掉「换发后再试一次」。`QuotaError` 现在携带 `status`，判断只看状态码；非 401/403 的失败不再触发无谓换发。
- **非法代理不再让插件装载失败**：此前 apply 一开始就同步解析 `proxyUrl`，保存了非法地址后重启宿主，插件加载即失败——而修正它的设置卡片正是本插件贡献的，用户只能手改配置文件。现在装载期只告警并继续加载，真正用到代理时各自失败（启动 ACP 报 `AGY_INVALID_PROXY`）。
- **运行期代理地址变坏按 Promise 拒绝**：插件自身的 `fetch` 与 CLI 取数入口此前会在同步阶段抛错，调用方的 `.catch()` 收不到。现按各自契约返回 rejected promise，由既有的「折叠成可读错误」路径处理。
- **恢复会话失败时归还磁盘 claim**：认领会话映射后若启动失败，所有权会残留到卸载。新增 `SessionMapStore.unclaim`，恢复与建轮两条失败路径都归还，别的 worker 可立即接管仍有效的条目。
- **单条畸形 JSON-RPC 帧不再判死整条链路**：无法路由的消息此前抛 `PROTOCOL_VIOLATION`，被消息泵当成流读取失败，链路关闭、对外报 `LINK_CLOSED`，所有在途请求一起失败。现在只丢弃该帧并留痕，链路与在途请求不受影响。带 id 却缺 `result`/`error` 的畸形响应单独处理：命中在途请求时立即按 `AGY_PROTOCOL_VIOLATION` 拒绝它，而不是丢弃后让那个请求白等到超时。
- **中止错误码统一**：连接池的 `AGY_TURN_ABORTED` 改为与适配器、协议层一致的 `AGY_ABORTED`。两者同属 `AGY_` 前缀，原本就不会命中宿主的重试词表，此处只消除排障时的语义分叉。
- **zip 解压加压缩炸弹上限**：条目数、单条目与解压总量三道守卫，并在写盘前判定。中央目录谎报解压大小的包由 yauzl 的大小校验拦下（构造用例已覆盖）；另按实际流出字节数加了兜底，用于该校验被关闭或换实现时的纵深防御。官方包远低于上限。
- **细节修正**：OAuth client 元数据多份并存时按出现顺序配对（此前固定取第一个 secret，可能与所选 client id 不配套），同一 secret 重复出现时也不会配错；MCP 桥 Bearer 头改常数时间比较；`parseTokenState` 去掉重复查询；额度超时文案在不足 1 秒时报毫秒，不再显示「超过 0 秒」。
- **验证边界**：本地类型检查、38 个文件 / 658 项隔离测试与构建通过。真实 Desktop GUI、官方账号与非 Windows 实机未重新验收；未用真实官方 zip 或真实对端造过异常输入，畸形帧与解压上限均由构造用例覆盖。

## 0.1.30 · 2026-10-27

- **移除「默认模型」**：设置页不再维护一个「新对话优先使用」的模型 ID。DSH 自带模型选择器负责选模，插件侧再存一份只会与它冲突；`preferredModel` 字段及旧 `server-default` 映射一并删除。
- **模型列表设置**：设置页按模型逐项设置——是否出现在 DSH 模型选择器、默认思考档位（低 / 中 / 高 / 跟随官方）、显示名覆盖、映射到官方模型 ID。改动合并成一份 `modelOverrides` 保存，清空的项自动移除，不留空壳配置。
- **生效路径**：停用只影响选择器，不删除目录条目；映射目标原样写入 ACP 会话，优先于家族 + 档位路由；默认档位在未选择思考强度时生效，官方未声明该档位时退回官方默认。保存后立即通知宿主刷新目录。
- **验证边界**：本地类型检查、38 个文件 / 639 项隔离测试与构建通过；覆盖逐模型设置的草稿合并、只提交改动项、目录变化与只读状态，以及映射与档位路由。真实 Desktop GUI 与官方账号未重新验收。

## 0.1.29 · 2026-10-26

- **恢复设置编辑与保存**：将设置卡片的 10 个字段声明为宿主可编辑的即时配置，修复默认模型、代理、会话开关和计时字段被统一禁用的问题；配置文档缺失时显示原因和恢复提示，而非静默禁用。
- **配置实际生效**：默认模型更新通知宿主选择器；CLI 路径及插件请求代理随下一次操作读取，会话偏好在下一轮聊天、预热或目录发现时捕获，不替换正在输出或等待工具的回合配置。旧代理连接保留到卸载时统一清理，避免打断在途响应。
- **生效边界**：自动预热开关在下次启用插件时生效；已有 ACP 进程保留原启动环境，切换其代理仍需重新加载插件。普通启动与并发配置继续遵循宿主重载流程。
- **验证边界**：本地类型检查、37 个文件 / 625 项隔离测试与构建通过；覆盖真实 React renderer 的控件编辑、保存回读、只读和配置恢复，以及即时引用、偏好更新与代理生命周期。真实 Desktop GUI、官方账号及非 Windows 实机未重新验收；npm 发布不代表本机安装已更新。

## 0.1.28 · 2026-10-25

- **功能可靠性**：手动预热 / 目录刷新可从一次暂时回收故障中恢复，持续失败仍拒绝复用旧进程；后续会话省略模型配置时保留已知目录，worker 间模型名称、输入模态与实测上下文元数据一致，默认思考档位不指向不存在的选项。
- **额度读取**：校验 `/usage` 成功信封；统一双路缓存时间戳并修正强制刷新与部分刷新交错时的合并，避免多余 CLI 查询。客户端刷新失败保留成功快照并标缓存，Argon 无独立额度组时回落到 Gemini 共享组。
- **设置页体验**：连接、默认模型、常用偏好分区，高级选项与连接诊断按需展开；移除重复的额度 / Credits 模块及其设置页后台读取，保留药丸详情与全部配置能力、草稿冲突保护。
- **验证边界**：本地类型检查、36 个文件 / 617 项隔离测试与构建通过；源码构建不代表已发布或本机安装已更新，真实 Desktop GUI 与官方账号仍需单独验收。

## 0.1.27 · 2026-10-23

- **恢复模型选择**：`session/set_config_option` 成功后不再要求服务端回显 ID 与请求逐字一致；允许模型 ID 归一化，响应缺少模型配置时保留已知目录。RPC 本身失败仍正常报错。
- **模型拉取可用性**：手动拉取优先于后台目录通知，立即显示进度并保留失败原因；ACP 发现沿用排队、握手与会话请求各阶段超时，不再被客户端 60 秒或普通请求预算提前截断。
- **避免无谓冷启动**：预热、目录发现与能力准备复用已有空闲 worker；聊天会话粘性不再导致这些操作额外扩容。
- **权限提示与执行分离**：已识别私有桥请求不因展示分类、提示参数缺失或包装差异被额外拒绝；实际调用仍通过 MCP 桥交给 DSH 校验、审批和执行。原生能力请求仍逐次拒绝并记录，但不因累计次数终止整轮对话。
- **余额解析**：保留成功状态、命令和有效金额校验，移除无关的 `num_turns=0` 要求。
- **验证边界**：本地类型检查、36 个文件 / 603 项隔离测试与构建通过；发布不代表本机已升级，真实官方服务与 Desktop GUI 仍需单独验收。

## 0.1.26 · 2026-10-23

- **消息一致性**：同一 DSH 对话可增量复用 ACP 会话；在交付 `finish` 前提交输入与输出指纹，调用方立即结束读取也不会重发旧问题。编辑回答、外部模型输出或历史/路由变化时完整重建；去重后没有可发送增量也回退完整重建，不发空 prompt。
- **上下文去重**：仅省略已见且未变化的上下文，不再按 form 整类丢弃；新规则、变化快照、目录更新与状态回滚继续发送。
- **取消排空**：可选保留进程，但必须先取得正常停止应答；新轮不能撤销宽限。本地超时/运输错误仍回收。`cancelGraceMs=0` 的语义调整为不等待、立即回收，而非保留未确认连接。
- **统一空闲回收**：聊天、预热和目录发现均纳入计时；活动请求、工具 park 与取消排空不算空闲。一次性标题/压缩/发现会话结束后关闭；内存复用记录最多 64 条。
- **恢复映射 v2**：共享存储管理 worker 所有权与串行写入，只落盘 ID、计数和指纹；旧格式安全失效。正常空闲回收保留有效映射，恢复后校正并核对模型；选模响应不完整时安全失败但保留上一份有效目录。load 拒绝、超时或取消先清理旧连接，避免迟到回放混入新轮。
- **跨 Host 隔离**：恢复缓存使用排他租约，占用时仅降级磁盘恢复，不影响聊天。崩溃残留锁不自动抢占，确认相关 Host 退出后再处理。
- **设置与文档**：设置卡增加复用、恢复、取消保留与两个计时字段；数值校验和只提交修改项的行为一致。修正采样参数、token 轮换及缓存 TTL 的旧描述；5 分钟是插件资源策略，不是上游 TTL 保证。
- **验证边界**：补齐 finish 即 return、输出改写/外部模型、上下文变化、取消/空闲竞态、恢复失败/工具桥/选模、文件格式与共享所有权回归；本地 `npm run check` 通过（36 个文件 / 591 项）。发布不代表本机升级，真实上游与 Desktop GUI 仍需单独验收。

## 0.1.25 · 2026-10-22

- **修复登录 / 预热超时**：新增 `handshakeTimeoutMs`（默认 120 秒），取代写死的 15 秒握手上限。官方进程需解包 218MB 单文件并导入 Python 依赖，冷启动约 52 秒、热启动约 10 秒。
- **默认预热**：`autoWarmup` 默认改为 `true`，插件启用即后台启动并保留官方进程；关闭时改为预读官方 exe 以缓解冷启动。
- **启动进度提示**：连接中状态行显示阶段、已用时间，以及冷启动可能约需 1 分钟的提示。

## 0.1.24 · 2026-10-22

### 日常使用

- **有界并发池**：默认最多 2 个按需启动的独立 worker，可设 1–4；同会话工具结果回原 worker。等待队列最多 64 项，默认 120 秒，支持取消；主对话优先于排队中的后台标题。
- **先登录再取模型**：「连接 / 登录 ACP」建立不发送 prompt 的发现会话，验证连接并读取目录。无 CLI 时也可从已有 ACP 登录态刷新；目录、上下文容量与图片能力跨 worker 同步。
- **原生图片输入**：通过宿主附件服务发送当前 / 历史消息与工具结果中的图片，协商上游能力，校验引用、媒体类型与字节数。支持 PNG、JPEG、WebP、GIF；已卸载图片明确说明没有像素。
- **可观测连接**：区分预热、登录、建会话、生成、等待工具与停止；设置页显示队列与分阶段耗时，药丸可直接预热。
- **更可靠的设置草稿**：远端更新保留 dirty 字段，仅提交修改项，显示冲突，遵守只读状态并防重复保存。

### 工具与可靠性

- 续轮检查模型、思考强度、system、工具 schema、完整历史与上轮输出；不兼容时取消旧 prompt 并按新历史重建。
- MCP 参数按 schema 修正常见无歧义别名；缺必填字段返回 `AGY_BRIDGE_INVALID_ARGUMENTS` 与签名，不进入 DSH。类型与取值仍由 DSH 最终校验。
- stdin 写入与响应等待共享 deadline / abort；阻塞写入、缺管道、构造失败与握手失败进入统一回收路径。
- 验证 ACP v1 版本与所需 MCP / image 能力；未声明能力不当作支持。
- 取消与失败撤销桥授权；通过宿主受管进程终止并等待退出，不能确认退出时不允许新进程覆盖跟踪状态。

### 运行与网络加固

- 下载流写临时文件，限制来源与重定向，校验 ZIP 路径与布局；保留手动二进制优先级。
- 补齐 macOS / ARM64 / POSIX `.par` 与 Linux 参数的官方发行布局映射；默认 server 仍为 **1.4.0**，不自动追最新。
- onefile 运行代码迁至用户级独立 `runtime/instance-*`，记录所有权，只清理确认已退出的本插件目录；未知历史目录不按 mtime 删除。
- 直接声明 `undici` 依赖，统一下载、OAuth 与 HTTP 额度代理；显式代理失败不静默直连，关闭插件持有的连接池。
- 补齐结构化 token、无 scheme 代理材料和错误日志的脱敏；CLI 路径支持显式配置、PATH 与重新探测。

### 文档

- 主页采用快速开始、功能亮点、能力边界与验证矩阵分层，详细契约移至 `docs/`。
- 补齐完整配置、环境变量、安装 / 更新区别、登录材料读写范围、排障与维护发布流程。
- 明确 npm 发布不代表本机安装；不提供不存在的 GitHub Release 下载入口，不把示意或隔离测试当成真实 GUI 证据。

### 验证与剩余限制

本次本地 `npm run check` 通过：**33 个测试文件、515 项测试、TypeScript 类型检查与构建**。覆盖假 ACP / MCP、真实 React 18 renderer 交互、池与续轮、图片映射、阻塞写入、安全回收和本地 SOCKS 代理测试。React renderer 不是浏览器像素验收；假上游不证明真实 Google 服务兼容。

已知维护缺口（记录 0.1.25 当时的状态）：非法代理在插件装载期抛 `ProxyConfigError`，需要通过宿主通用配置面修复——**该条已在 0.1.31 解除**，现在装载期只告警；宿主崩溃、没有明确子进程退出记录的运行目录不会自动回收；已有解压目录损坏且缺少有效可执行文件时不保证自动自愈。其余限制见[排障](reference.md#排障)。

尚未完成 **0.1.24 安装后的 Desktop GUI、真实上游生成、真实图片识别、非 Windows 实机验证**。未在本次执行真实登录 / 额度 / Credits 调用，未将历史记录升级为当前版验收。生产依赖漏洞审计不由上述检查覆盖。

普通新用户回合仍创建 ACP session 并重放完整历史；不提供跨进程会话恢复，不承诺 API 式角色层级、采样控制或延迟。`maxTokens` 仍忽略，`temperature` / `stop` 仍拒绝。ACP 原生工具保护仍是协议与生命周期约束，**不是 OS 沙箱**。

### 升级注意

- 更新后按部署方式重载 Host 与 Client；Desktop 按目标版本要求退出 / 重开。只刷新页面不足以升级后台。
- 默认双 worker 比单进程可能占用更多内存；资源受限时设置 `maxConcurrentSessions: 1`。池容量不提升上游账号额度。
- 无目录时先连接 / 登录，不再依赖“首次对话登录”占位项；旧 `server-default` 路由保留兼容。
- CLI 额度与 ACP 连接认证分别检查；ACP 登录不替 CLI 登录。已有缓存不代表上游持续可用。
- 不为迁移批量删除旧 `_MEI*` 或修改 ACL；先确认所属进程已停，再人工处理未知历史目录。

## 0.1.23 · 2026-10-22

- 版本由 [`1d81265`](https://github.com/KouzakiUmi/dsh-antigravity-acp/commit/1d81265) 发布准备提交确定。
- 前置 [`d4c6e91`](https://github.com/KouzakiUmi/dsh-antigravity-acp/commit/d4c6e91) 补充 npm provenance 所需仓库声明，前置 [`8b81df5`](https://github.com/KouzakiUmi/dsh-antigravity-acp/commit/8b81df5) 修复跨平台发布 CI。
- 保留既有 GitHub Actions 手动发布到 npm 的流程；后续功能加固归入 0.1.24，不追溯写入旧 npm 版本。
