Skip to content

v2026.09.21.3

Choose a tag to compare

@westsource westsource released this 22 Sep 13:19
· 13 commits to main since this release

v2026.09.21.3 — 文档全面校准 · CI 修复 · 客户端文案纠正

服务端 + 客户端发布:CLIENT_VERSION 2026.09.21.1 → 2026.09.21.3(客户端包有改动:sync_full 的工具描述与占位 Key 前缀),各端经 /api/client/manifest 自动更新、Agent 重启后生效。无 schema 变更。本版汇总自 v2026.09.21.1 以来的两版(2026.09.21.2 / .3)。

Fixed(文档与代码里的不一致)

  • sync_full 的工具描述写反:描述是"先推后拉",实现与契约都是先拉后推(拉取先锚定本机每字段基线,再只推脏字段,避免覆盖同侪的较新元数据)。工具描述与 README(中英)同步更正——这是 Agent 在工具列表里直接看到的文案。
  • 占位 Key 前缀:客户端 HERMES_SYNC_API_KEY 的默认占位串 hsk_placeholder → ws_placeholder;scripts/migrate-local-to-server.py 的提示 hsk_ → ws_(generate_api_key 一直是 ws_)。
  • CI 两个 job 长期为红,本版修好:
    • 客户端 job 未装依赖却要 import mcp/server.py(该模块在模块级 import MCP SDK),dsh 适配器还需要 zstandard → 补 pip install mcp zstandard;
    • 服务端 job 的 import 冒烟测试用 [r.path for r in app.routes],新版 FastAPI/Starlette 把 include 的 router 包成 _IncludedRouter(没有 .path)→ 改走 OpenAPI schema 枚举路径。
    • 按 CI 的两条命令在干净 venv 复跑:客户端 194 项 OK、服务端 285 项 OK(2 skip)。
  • scripts/deploy-remote.py 的上传清单硬编码、含已删除的 feedback.py 且漏掉后来新增的模块 → 改为按 server/*.py 实际文件上传。

Changed(文档按代码事实全面校准)

  • README(中英)新增「What you get / 功能总览」:服务端八个模块面(同步 API、项目 API、Web UI、账号与访问、租户与管理员、配额与套餐、客户端分发、运维)、MCP 客户端全貌(7 个适配器、收敛规则、Primary/Standby 并发、自动更新)、侧车与环境变量指引;快速开始的上传清单补 mcp/(deploy-server.sh 需要它,照抄旧命令会漏)。
  • docs/ARCHITECTURE.md:模块表补齐 ratelimit.py / captcha.py / mailer.py / emailverify.py / jsonbody.py / announcements.py / _run_local.py;schema 由 11 张表补到 16 张(新增 user_verification_tokens、mail_stats、access_stats、access_device、announcement_dismissals);新增「账号、访问与内容治理」决策节(600k 轮 PBKDF2 + 惰性升级、用户名/已验证邮箱登录、账户状态机与"只拦新建工作空间"的门禁、邮箱令牌一次性、自托管验证码、8 个限流 scope 阈值表、发信日预算、访问统计与 src= 真实性、公告、全局搜索、i18n 解析顺序、单 worker + 回环部署约束);路由表补 forgot/reset/security/公告/部署脚本下载;scripts/ 表补齐;组件说明纠正"pgvector"(实际只需标准版自带的 pg_trgm)与侧车命名(按 agent 前缀)。
  • docs/CONFIGURATION.md 重写:服务端 12 个变量(补 PUBLIC_URL / ANNOUNCEMENTS_URL / SMTP_* / MAIL_DAILY_CAP 及缺省行为)、客户端 10 个(补 omp 与锁文件覆盖项)、侧车文件清单与"删掉会怎样"。
  • CONTRIBUTING.md:启动命令 server/server.py → server/main.py;「服务端还没有单测」→ 两套 unittest 的真实命令、数量与 CI 位置。
  • SECURITY.md:PBKDF2 迭代数 100,000 → 600,000(并说明每份哈希自带迭代数、登录时惰性升级);「已知安全设计」补齐租户隔离、限流阈值、自托管验证码、令牌一次性与审计。
  • server/.env.example:补齐可选变量并标注必填项。

Fixed(Web UI)

  • 注册页的密码字段改为纵向排列:/web/register 的「密码 / 确认密码」原本在 grid grid-cols-2 里左右并排(窄卡片里每个仅约 194px),改为各占整行;用户名 / 显示名仍并排(非密码字段)。修正后全站密码字段均为纵向(登录、重置、安全中心修改密码弹窗、首次登录强制改密页、更换邮箱、管理员新建/编辑用户均已核对)。

测试与验证

  • 客户端 194 项、服务端 285 项(按 CI 命令在干净 venv 复跑,全绿);线上(236)65 个上机文件与仓库逐字节一致,/api/client/manifest 返回 2026.09.21.3 + update_available=true,下载包内 manifest.json 版本一致且 mcp/server.py 的 sha256 与清单相符。

生产状态:236 已部署(提交 b8a55ae)—— 预检/回读/py_compile/重启全过,systemctl is-active = active、journal 无 error;server/ 与 mcp/ 共 65 个上机文件对仓库 b8a55ae 零差异;线上 7 项核对(manifest 版本、update_available、包内 sha256、包内文案已为"先拉后推"、占位 Key ws_)全 PASS。v2026.09.21.1 的「按会话暂停/恢复同步」已包含在同一部署中。