From b2316ca2491b9758b6a4596a61d1b378b559c0fa Mon Sep 17 00:00:00 2001 From: chenmingxuan Date: Wed, 4 Nov 2026 18:06:18 +0800 Subject: [PATCH] chore(release): prepare 2.7.0 --- README.md | 2 +- apps/showcase_ui/package-lock.json | 4 ++-- apps/showcase_ui/package.json | 2 +- docs/releases/2.7.0.md | 30 ++++++++++++++++++++++++++++++ pyproject.toml | 2 +- uv.lock | 2 +- 6 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 docs/releases/2.7.0.md diff --git a/README.md b/README.md index bd4e91d..2d556ee 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 基于 [ARTEMIS](https://github.com/google/artemis) 扩展的 Android AI 自动化测试平台。用自然语言描述任务,即可通过简体中文网页或 MCP 驱动真机、模拟器执行操作并收集结果。模型统一使用 **OpenAI Responses API**。 -**2.6.0**:新增 Android 原生控件读写、条件等待、容器滚动、双指缩放与连续多指手势;支持状态确保、稳定数值反馈与无效动作保护,修复多窗口原生查询和选择器像素边界,并补齐前端中文动作名称。见 [2.6.0 发行说明](docs/releases/2.6.0.md)。包含 [2.5.0 的动作序列与缓存统计](docs/releases/2.5.0.md)及 [2.4.5 的插件开发 SDK](docs/releases/2.4.5.md);SDK 与插件继续独立版本化,升级主程序不会自动更新或授权插件。 +**2.7.0**:新增 Responses WebSocket 增量传输,复用连接减少多轮任务的重复上传;默认启用,并将旧的全局 HTTP 配置迁移一次,之后仍可手动切回 HTTP。见 [2.7.0 发行说明](docs/releases/2.7.0.md)。包含 [2.6.0 的 Android 原生控件与多指手势](docs/releases/2.6.0.md)、[2.5.0 的动作序列与缓存统计](docs/releases/2.5.0.md)及 [2.4.5 的插件开发 SDK](docs/releases/2.4.5.md);SDK 与插件继续独立版本化,升级主程序不会自动更新或授权插件。 ## 主要功能 diff --git a/apps/showcase_ui/package-lock.json b/apps/showcase_ui/package-lock.json index 80338b3..9521413 100644 --- a/apps/showcase_ui/package-lock.json +++ b/apps/showcase_ui/package-lock.json @@ -1,12 +1,12 @@ { "name": "artemis-showcase-ui", - "version": "2.6.0", + "version": "2.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "artemis-showcase-ui", - "version": "2.6.0", + "version": "2.7.0", "dependencies": { "@angular/cdk": "^22.2.4", "@angular/common": "^22.2.3", diff --git a/apps/showcase_ui/package.json b/apps/showcase_ui/package.json index d637575..37db472 100644 --- a/apps/showcase_ui/package.json +++ b/apps/showcase_ui/package.json @@ -1,6 +1,6 @@ { "name": "artemis-showcase-ui", - "version": "2.6.0", + "version": "2.7.0", "scripts": { "ng": "ng", "start": "ng serve --proxy-config proxy.conf.json", diff --git a/docs/releases/2.7.0.md b/docs/releases/2.7.0.md new file mode 100644 index 0000000..87e5b51 --- /dev/null +++ b/docs/releases/2.7.0.md @@ -0,0 +1,30 @@ +# ARTEMIS 2.7.0 + +本版在正式 2.6.0 基础上新增 OpenAI Responses WebSocket 增量传输,减少多轮自动化任务重复上传完整历史的流量,并将 WebSocket 设为默认协议。 + +## WebSocket 增量传输 + +- Flash、Pro、探索及辅助模型的异步请求支持复用 Responses WebSocket 连接。首轮发送完整上下文;同一会话、角色、模型、凭据及路由范围内,后续输入严格延续上一轮完整历史时,仅发送响应 ID 和新增输入。图片、工具调用、结构化输出及用量统计保留原有解析与校验。 +- 历史压缩、截图替换、生成选项或连接变化后重新发送当前完整上下文。服务端明确表示响应 ID 不存在且尚无输出时,最多恢复一次完整请求;流式输出中途断开或取消时,不在传输层盲目重发,不采纳半截工具参数或结论。 +- 不同会话可并行,同一连接串行执行;连接池有数量、空闲和连接寿命限制。握手保持既有授权、路由、TLS 与代理策略,拒绝携带凭据跨地址重定向。 +- 请求诊断增加实际应用载荷字节、增量输入、连接复用及重建原因。上传减少不等于模型上下文 token 减少,也不等于缓存命中;用量和缓存仍按服务端实报统计。不承诺固定流量节省比例。 + +## 默认协议与旧配置迁移 + +- 新安装默认使用 WebSocket。升级后首次启动,也会将旧用户已保存的全局 `OPENAI_TRANSPORT=http` 一次性改为 `websocket`,并写入内部迁移标记。保留接口地址、密钥及其它配置;失败时保留原文件并明确告警,下次启动重试。 +- 迁移后可在“模型配置 → 传输协议”手动切回 HTTP,后续重启保留选择。网页、MCP 与环境配置共用此设置;JSON 模型或节点的显式协议覆盖继续有效。 +- 网关必须支持 Responses WebSocket Upgrade、双向长连接及响应 ID 续接。仅透传会话请求头不代表支持;不支持时明确报错,可手动选择 HTTP,不会静默退回全量 HTTP 请求。 +- 同步底层模型调用仍使用 HTTP。完整行为、配置方式与诊断字段见[传输说明](../ai-automation.md#responses-websocket-增量传输)。 + +## 版本与验证 + +- 主程序与前端根版本升级到 2.7.0;SDK、插件和 Android 助手保持现有独立版本。WebSocket 实现所需的 `websockets` 最低版本提高到 15,锁定的第三方包版本不变;此次升版只调整应用版本字段。 +- 后端回归覆盖真实本地 WebSocket/SDK 多轮与工具调用、结构化输出、取消、重连、隔离、生命周期和诊断;配置迁移覆盖旧 HTTP、新安装、重复启动、手动切回与保存失败。 +- 最终源码 ZIP 使用两个独立解压目录和空 npm 缓存,分别验证官方源、国内镜像的锁定安装及生产构建。实际运行时、源码提交、SHA256、测试结果和未测范围见发布附件 `INSTALL-VERIFICATION.md`。 +- 此次不新增付费模型或设备业务任务,不替换 CUA 插件,也不接入 agent-desktop。此前网关联调记录不冒充本次发布的新增外部验证。 + +## 升级 + +已有安装等待任务结束后运行 `update.bat` 或 `update-cn.bat`,重启 ARTEMIS;Codex 用户重新加载 MCP。新安装下载 `artemis-2.7.0-source.zip`,对照 `SHA256SUMS.txt` 校验后解压启动,不覆盖正在运行的安装目录。 + +**升级会将旧的全局 HTTP 配置迁移为 WebSocket。** 网关暂不支持时,在升级后切回 HTTP;之后不会再自动重置。直接编辑 `.env` 时,保留 `ARTEMIS_TRANSPORT_DEFAULT_VERSION=1` 并设置 `OPENAI_TRANSPORT=http`,重启后生效。 diff --git a/pyproject.toml b/pyproject.toml index 9cf1697..1a6f480 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ [project] name = "artemis" -version = "2.6.0" +version = "2.7.0" description = "Autonomous AI Assistant for Mobile Automation" authors = [ diff --git a/uv.lock b/uv.lock index 7535c0e..6ae417c 100644 --- a/uv.lock +++ b/uv.lock @@ -248,7 +248,7 @@ wheels = [ [[package]] name = "artemis" -version = "2.6.0" +version = "2.7.0" source = { editable = "." } dependencies = [ { name = "adbutils" },