Просмотр исходного кода

发布 v0.4.67:优化工具发现与会话复用并完善服务重启

Samien 1 месяц назад
Родитель
Сommit
9dc908aedf
8 измененных файлов с 74 добавлено и 23 удалено
  1. 6 6
      README.md
  2. 1 1
      docker.env.example
  3. 7 7
      docs/docker-install.md
  4. 9 3
      docs/release-process.md
  5. 45 0
      docs/releases/v0.4.67.md
  6. 2 2
      package-lock.json
  7. 1 1
      package.json
  8. 3 3
      release.json

+ 6 - 6
README.md

@@ -1,6 +1,6 @@
 # 夭夭 AI
 
-当前 Web 与 macOS 桌面发布版本:**v0.4.66**。桌面版提供 Apple Silicon(arm64)DMG,详见 [发布说明](docs/releases/v0.4.64.md)。
+当前 Web 与 macOS 桌面发布版本:**v0.4.67**。桌面版提供 Apple Silicon(arm64)DMG,详见 [发布说明](docs/releases/v0.4.67.md)。
 
 夭夭 AI 为网页、iOS 和安卓提供统一的 Agent、群聊、文件库及语音配置服务。Hermes 通过标准 9119 HTTP/WebSocket 接口执行任务。
 
@@ -40,7 +40,7 @@ Web 数据默认保存在 `~/.yaoyao`,可用 `YAOYAO_HOME` 指定(兼容 `HE
 
 ## macOS 桌面版
 
-在 [v0.4.64 发布页](https://github.com/Lsamien/yaoyao/releases/tag/v0.4.64) 下载 `Yaoyao-0.4.64-arm64.dmg`,将“夭夭”拖到应用程序后打开。首次启动会核对并同步配套本机 Web 服务;普通退出保留后台运行,“停止后台服务并退出”可完整停止本应用管理的后台。详细说明见 [macOS App](docs/macos-app.md)。
+在 [v0.4.67 发布页](https://github.com/Lsamien/yaoyao/releases/tag/v0.4.67) 下载 `Yaoyao-0.4.67-arm64.dmg`,将“夭夭”拖到应用程序后打开。首次启动会核对并同步配套本机 Web 服务;普通退出保留后台运行,“停止后台服务并退出”可完整停止本应用管理的后台。详细说明见 [macOS App](docs/macos-app.md)。
 
 桌面安装包的签名、公证状态及自动升级可用范围见对应版本的 GitHub 发布说明。
 
@@ -50,11 +50,11 @@ Web 数据默认保存在 `~/.yaoyao`,可用 `YAOYAO_HOME` 指定(兼容 `HE
 
 | 镜像 | 架构 |
 | --- | --- |
-| `samienluo/yaoyao:v0.4.64-amd` | AMD64 |
-| `samienluo/yaoyao:v0.4.64` | 自动匹配 AMD64 / ARM64 |
-| `samienluo/yaoyao:latest` | 最新稳定版通用镜像,当前与 `v0.4.64` 相同 |
+| `samienluo/yaoyao:v0.4.67-amd` | AMD64 |
+| `samienluo/yaoyao:v0.4.67` | 自动匹配 AMD64 / ARM64 |
+| `samienluo/yaoyao:latest` | 最新稳定版通用镜像,当前与 `v0.4.67` 相同 |
 
-准备好 Docker Engine/Compose 和容器可访问的 Hermes 9119 服务,在仓库目录将 `docker.env.example` 复制为 `docker.env`。配置上游地址,并设置 `HERMES_YAOYAO_IMAGE=samienluo/yaoyao:v0.4.64`(或 `samienluo/yaoyao:latest`),即可使用远程镜像:
+准备好 Docker Engine/Compose 和容器可访问的 Hermes 9119 服务,在仓库目录将 `docker.env.example` 复制为 `docker.env`。配置上游地址,并设置 `HERMES_YAOYAO_IMAGE=samienluo/yaoyao:v0.4.67`(或 `samienluo/yaoyao:latest`),即可使用远程镜像:
 
 ```sh
 docker compose --env-file docker.env pull web

+ 1 - 1
docker.env.example

@@ -3,7 +3,7 @@ HERMES_YAOYAO_BIND_ADDRESS=127.0.0.1
 HERMES_YAOYAO_PUBLISHED_PORT=15300
 # 远程通用镜像支持 AMD64 / ARM64;每次发布更新 latest 并保留旧版本标签。
 # HERMES_YAOYAO_IMAGE=samienluo/yaoyao:latest
-# 固定版本:samienluo/yaoyao:v0.4.64;仅 AMD64:samienluo/yaoyao:v0.4.64-amd。
+# 固定版本:samienluo/yaoyao:v0.4.67;仅 AMD64:samienluo/yaoyao:v0.4.67-amd。
 # 留空时使用本地构建名称 yaoyao:local。
 # YAOYAO_DESKTOP_IMAGE=hermes-yaoyao-desktop:0.4.0
 # Cursor Universal 兼容桌面的本地构建名称;基础镜像在 deploy/computer/Dockerfile.cursor 中固定。

+ 7 - 7
docs/docker-install.md

@@ -12,14 +12,14 @@
 
 | 标签 | 架构 |
 | --- | --- |
-| `v0.4.64-amd` | `linux/amd64` |
-| `v0.4.64` | `linux/amd64`、`linux/arm64`,拉取时自动匹配 |
-| `latest` | 最新稳定通用镜像,当前指向与 `v0.4.64` 相同的镜像 |
+| `v0.4.67-amd` | `linux/amd64` |
+| `v0.4.67` | `linux/amd64`、`linux/arm64`,拉取时自动匹配 |
+| `latest` | 最新稳定通用镜像,当前指向与 `v0.4.67` 相同的镜像 |
 
 ```sh
-docker pull samienluo/yaoyao:v0.4.64
+docker pull samienluo/yaoyao:v0.4.67
 # 需要固定 AMD64 时:
-docker pull samienluo/yaoyao:v0.4.64-amd
+docker pull samienluo/yaoyao:v0.4.67-amd
 ```
 
 每次新版本发布都会更新 `latest`,旧版本标签继续保留。需要固定部署版本时使用具体版本标签。
@@ -34,7 +34,7 @@ cp docker.env.example docker.env
 
 | 配置 | 用途 |
 | --- | --- |
-| `HERMES_YAOYAO_IMAGE` | 远程镜像可设为 `samienluo/yaoyao:v0.4.64` 或 `samienluo/yaoyao:latest`;未设置时使用本地构建名称 |
+| `HERMES_YAOYAO_IMAGE` | 远程镜像可设为 `samienluo/yaoyao:v0.4.67` 或 `samienluo/yaoyao:latest`;未设置时使用本地构建名称 |
 | `HERMES_YAOYAO_UPSTREAM` | Hermes 上游地址,默认 `http://host.docker.internal:9119` |
 | `HERMES_YAOYAO_BIND_ADDRESS` | Web 的宿主机发布地址,默认 `127.0.0.1`;局域网访问可设为 `0.0.0.0` |
 | `HERMES_YAOYAO_PUBLISHED_PORT` | 宿主机 Web 端口,默认 `15300` |
@@ -191,7 +191,7 @@ curl --fail http://127.0.0.1:15300/healthz
 使用 Docker Hub 发布镜像时,在 `docker.env` 设置:
 
 ```dotenv
-HERMES_YAOYAO_IMAGE=samienluo/yaoyao:v0.4.64
+HERMES_YAOYAO_IMAGE=samienluo/yaoyao:v0.4.67
 YAOYAO_CURSOR_DESKTOP_IMAGE=samienluo/yaoyao-desktop:v0.4.12-cursor-amd
 ```
 

+ 9 - 3
docs/release-process.md

@@ -9,16 +9,22 @@
 3. 构建 Web 源码包、macOS 桌面安装包和适用的 Android 正式签名 APK,验证签名、架构、启动及完整性,生成 `SHA256SUMS.txt`。
 4. 推送源码与版本标签,上传 GitHub Release 附件,核对远端附件状态、大小和 SHA-256。已发布的 Git 标签与旧附件保持不变。
 
-### macOS 自动更新产物
+### macOS 手动安装包
 
-`npm run desktop:pack` 用于本地打包;正式发布使用 `npm run desktop:release`,其上传行为固定为 `never`,先生成可检查的本地产物。需要:
+当前发布沿用 Apple Silicon 开发签名 DMG,供用户手动安装;不做 Apple 公证。缺少正式分发证书或公证配置,不阻塞这种安装包的 GitHub 发布,也不需要重复确认已确定的发布方式。
+
+从干净的发布源码快照构建,并明确指定 DMG 和开发签名:`npm run desktop:build`,然后执行 `npx electron-builder --mac dmg --arm64 --publish never --config.mac.type=development`。验证签名完整性、架构、内置服务的版本与构建身份、实际启动以及 DMG 完整性,再上传 DMG、源码包和 `SHA256SUMS.txt`。发布说明明确写明开发签名、未公证、手动安装;不上传自动升级 ZIP、差分文件或 `latest-mac.yml`,不宣称已支持自动安装更新。
+
+### macOS 自动更新产物(具备正式分发条件时)
+
+`npm run desktop:pack` 用于本地打包;发布支持自动升级的正式分发包时使用 `npm run desktop:release`,其上传行为固定为 `never`,先生成可检查的本地产物。需要:
 
 - `CSC_NAME` 指定 `Developer ID Application: ...` 分发签名身份。
 - 配置 `APPLE_API_KEY`、`APPLE_API_KEY_ID`、`APPLE_API_ISSUER`,或 `APPLE_ID`、`APPLE_APP_SPECIFIC_PASSWORD`、`APPLE_TEAM_ID` 供公证使用。凭据通过环境注入,不写入仓库或发布说明。
 
 正式命令启用强制签名与公证,并校验包内 `app-update.yml` 指向 `Lsamien/yaoyao`、签名完整性、公证票据,以及 `latest-mac.yml` 的版本、附件名、大小和 SHA-512。当前仍只发布 Apple Silicon 桌面包;不要上传指向不存在的 Intel 包的清单。
 
-GitHub Release 必须同时上传同一次构建生成的 `Yaoyao-{版本}-arm64.dmg`、`Yaoyao-{版本}-arm64.zip`、各自 `.blockmap`、`latest-mac.yml` 和 `SHA256SUMS.txt`。ZIP 是自动更新载荷,DMG 是首次安装与旧客户端迁移载荷。命令生成的 SHA-256 清单包含桌面附件;本次有源码包等其他附件时,发布前一并补入清单。不能在生成 ZIP 和更新摘要之后再修改应用或重新签名。
+支持自动升级的 GitHub Release 必须同时上传同一次构建生成的 `Yaoyao-{版本}-arm64.dmg`、`Yaoyao-{版本}-arm64.zip`、各自 `.blockmap`、`latest-mac.yml` 和 `SHA256SUMS.txt`。ZIP 是自动更新载荷,DMG 是首次安装与旧客户端迁移载荷。命令生成的 SHA-256 清单包含桌面附件;本次有源码包等其他附件时,发布前一并补入清单。不能在生成 ZIP 和更新摘要之后再修改应用或重新签名。
 
 既有手动安装版客户端需先手动安装一次正式包,之后才能使用“下载更新 → 重启更新”。发布前应使用同一签名身份的两个版本,在隔离机器上验证实际替换与重新启动;单元测试或未签名包的打包成功不能代替这项验收。
 

+ 45 - 0
docs/releases/v0.4.67.md

@@ -0,0 +1,45 @@
+# 夭夭 AI v0.4.67
+
+本次发布 Web、macOS Apple Silicon 桌面版和 Docker 双架构镜像,不提供 APK。
+
+## 更新内容
+
+- 改进 Bot 的 MCP 与应用工具发现:按服务或关键词筛选工具,支持分页,一次返回有效工具 ID 和完整参数,减少重复搜索和读取整个工具目录。
+- 在每轮对话中提供实际已连接的服务清单,明确工具在服务器运行,区分工具可用、连接失败和账号未登录等状态。
+- 修复 MCP 服务的 Bot 授权管理,支持单独调整授权对象;Bot 列表读取失败时显示明确状态,避免误清空授权或选择无效 Bot。
+- 优化记忆增量和会话复用:新增记忆按需补入原会话;已用记忆被修改、删除,授权范围变化或提交结果不确定时,重新建立会话,避免继续使用失效事实。
+- 修正普通 Bot 对话被误当作看板任务的引导,避免没有真实任务 ID 时反复调用看板工具。
+- 完善服务端管理服务的重启功能:支持应用托管服务,并在 macOS 上核对系统服务与实际监听进程后重启;有运行任务时阻止重启,完成后检查连接与工具桥状态。远程或无法识别的服务显示具体原因。
+
+## 升级说明
+
+- 升级前备份完整 `.yaoyao` 数据目录,建议先更新服务端,再更新桌面客户端。
+- 工具发现优化需要配套工具桥;升级后在服务管理页面检查并更新工具桥,按页面提示在空闲时重启服务。
+- 旧会话首次迁移可能因缺少记忆基线而重新建立,聊天历史与持久记忆保留。
+- 桌面采用开发签名 DMG 手动安装,未做 Apple 公证。本次不提供自动升级 ZIP、差分文件或更新清单。
+- 本次不构建、不上传 APK,旧版本标签和附件继续保留。
+- 主项目采用 Apache-2.0,第三方组件保留各自许可与署名。
+
+## 下载
+
+- `Yaoyao-0.4.67-arm64.dmg`:macOS Apple Silicon,开发签名,未公证,手动安装。
+- `Yaoyao-0.4.67-source.tar.gz`:Web/桌面源码及部署配置。
+- `SHA256SUMS.txt`:上述附件的 SHA-256 校验值。
+
+## Docker Hub
+
+| 镜像 | 架构 |
+| --- | --- |
+| `samienluo/yaoyao:v0.4.67-amd` | `linux/amd64` |
+| `samienluo/yaoyao:v0.4.67` | `linux/amd64`、`linux/arm64` |
+| `samienluo/yaoyao:latest` | 验证后更新为同一通用镜像 |
+
+```sh
+docker pull samienluo/yaoyao:v0.4.67
+docker compose --env-file docker.env pull web
+docker compose --env-file docker.env up -d --no-build web
+```
+
+Compose 中设置 `HERMES_YAOYAO_IMAGE=samienluo/yaoyao:v0.4.67`。镜像发布到 Docker Hub,GitHub 仅提供安装包、源码及校验文件。
+
+附件摘要、镜像摘要与实际验证结果见 [GitHub 发布页](https://github.com/Lsamien/yaoyao/releases/tag/v0.4.67)。

+ 2 - 2
package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "yaoyao",
-  "version": "0.4.66",
+  "version": "0.4.67",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "yaoyao",
-      "version": "0.4.66",
+      "version": "0.4.67",
       "license": "Apache-2.0",
       "dependencies": {
         "@koa/bodyparser": "^5.0.0",

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "yaoyao",
-  "version": "0.4.66",
+  "version": "0.4.67",
   "private": true,
   "license": "Apache-2.0",
   "description": "夭夭 AI:聊天、多 Agent 团队、文件库与电脑工作空间",

+ 3 - 3
release.json

@@ -1,6 +1,6 @@
 {
   "schemaVersion": 1,
-  "releaseVersion": "0.4.66",
-  "webVersion": "0.4.66",
-  "gitTag": "v0.4.66"
+  "releaseVersion": "0.4.67",
+  "webVersion": "0.4.67",
+  "gitTag": "v0.4.67"
 }