Repository navigation
v2026.09.21.3
v2026.09.21.3 — 文档全面校准 · CI 修复 · 客户端文案纠正
服务端 + 客户端发布:
CLIENT_VERSION2026.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)。
- 客户端 job 未装依赖却要 import
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 的「按会话暂停/恢复同步」已包含在同一部署中。