Release Notes — v0.5.0-beta(内测版)
发布日期: 2026-06-15 下午
目标: 内测(2-3 个内部用户),生产仍用 v0.4.x
类型: 🟡 beta — 部分 P0 已修,部分 P0 仍缺
负责人: Simon
对接 workbuddy brief: .workbuddy/memory/2026-06-15-合并任务部署说明.md 等 6 份
⚠️ 发布前必读(用户须知)
✅ 已修复(P0 已修 2/5)
| # |
标题 |
风险等级 |
修复方式 |
| Fix-1 |
企微凭据硬编码泄露 |
🟠 中 |
改环境变量 + 旧凭据 Bs7ucT* 已轮换 |
| Fix-4 |
降级登录缺密码验证 |
🔴 高 |
agents.py L222-232 加 bcrypt 验证,3 测试覆盖 |
| NEW |
ErrorCode 1012 上下文冲突 |
🟠 中 |
拆 2 个新码 E1015/E1016,前端提示不串语义 |
❌ 仍未修复(P0 缺 3/5,等 WB)
| # |
标题 |
风险等级 |
状态 |
| Fix-5 |
nginx 缺 2 安全头(Permissions-Policy + COOP) |
🟡 中 |
WB 报已修,未验证,延迟到 PR#2 |
| Fix-6 |
CSP 含 unsafe-inline(XSS 风险) |
🟠 中 |
报已修,未验证 |
| Fix-7 |
项目名 git mv 调整 |
⚪ 低 |
报已修,未验证 |
| Doc-P0 |
5 处文档失真 |
⚪ 低 |
评审中,本批未修 |
🚫 不在本次范围
- ❌ 应急降级页(BC/DR)代码 — 需求 v4 已写,WB 接单中
- ❌ 演练 SOP-005 — 待写
- ❌ 单元测试未跑(被 auto-mode 拒,需手动跑)
📦 发布内容(本次 8 文档 + 5 脚本 + 5 配置 + 3 代码改动)
1️⃣ 8 份新建文档(凌晨跑批产出)
| # |
路径 |
行数 |
摘要 |
| 1 |
docs/审计报告/Dockerfile优化与镜像审计.md |
#44 |
Docker 镜像优化建议 |
| 2 |
docs/数据库ER图与环境变量清点.md |
#45 |
16 表 ER + 17 env |
| 3 |
docs/审计报告/依赖漏洞扫描与Lockfile审计.md |
#46 |
5 CVE 识别 |
| 4 |
docs/审计报告/健康检查+错误码+日志结构化.md |
#47 |
40+ 错误码 + JSON 日志 |
| 5 |
docs/审计报告/CORS-CSP-安全Header全套.md |
#48 |
8 安全头配置 |
| 6 |
docs/惊喜报告/🎁惊喜1-项目健康度仪表盘.md |
#49 |
仪表盘说明 |
| 7 |
docs/惊喜报告/🎁惊喜2-README徽章+CHANGELOG+模板.md |
#50 |
文档增强 |
| 8 |
docs/需求-发布预演页面.md(v4 刚升) |
226 |
应急降级页需求 |
| 附 |
docs/dashboard.html |
- |
健康度仪表盘网页(8KB) |
2️⃣ 5 个脚本(凌晨跑批产出)
| # |
路径 |
用途 |
| 1 |
scripts/dashboard.py |
生成健康度 HTML |
| 2 |
scripts/oneclick-deploy.sh |
一键部署(灰度) |
| 3 |
scripts/pre-commit-check.sh |
提交前自检 |
| 4 |
scripts/backup-gitea.sh |
Gitea 备份 |
| 5 |
scripts/security-audit.sh |
安全审计 |
3️⃣ 5 份配置(凌晨跑批产出)
| # |
路径 |
用途 |
| 1 |
.dockerignore |
Docker 优化 |
| 2 |
.gitea/dependabot.yml |
依赖自动更新 |
| 3 |
.gitea/ISSUE_TEMPLATE/bug.md |
Bug 报告模板 |
| 4 |
.gitea/ISSUE_TEMPLATE/feature.md |
Feature 申请模板 |
| 5 |
.gitea/PULL_REQUEST_TEMPLATE.md |
PR 模板 |
附: CHANGELOG.md (5 版本历史)
4️⃣ 3 处代码改动(P0 已修 + 1012 拆码)
Fix-1: 企微凭据轮换
- 文件:
backend/app/services/wecom_service.py + .env
- 改动: 硬编码
Bs7ucT* 改为 ${WECOM_CORP_SECRET} 环境变量
- 旧凭据: 已在企微后台轮换,新值仅在
.env
Fix-4: 降级登录密码验证
- 文件:
backend/app/api/agents.py L222-232
- 改动: 已注册坐席在企微 API 不可达时,如有
password_hash 必须验证本地密码
- 测试:
backend/tests/test_agents.py 3 测试(已写,待跑)
1012 拆码(NEW)
- 文件:
backend/app/utils/error_codes.py + backend/app/api/agents.py:581/583
- 改动: 新增
AUTH_OLD_PASSWORD_REQUIRED=E1015 + AUTH_OLD_PASSWORD_WRONG=E1016
- 原因: 1012 在登录(L226)="首次登录请先设置密码",在改密(L581)="请输入旧密码",合并会丢语义
- 前端: 需补 E1015/E1016 的 i18n 映射(如有)
🧪 验证清单(发布前必跑)
自动验证
手动验证(2-3 个内测用户)
文档验证
🚦 发布决策
| 角色 |
动作 |
| Simon |
合并 feature/t-1-t4-merge → main,tag v0.5.0-beta |
| workbuddy |
等 Fix-5/6/7 真正验证完,提 PR#2(本批无此 PR) |
| 内测用户 |
用 v0.5.0-beta 跑 1 周,收集问题 |
| 下次发布 |
v0.6.0(预计 2026-06-20)— 含应急降级页 + 演练 |
📋 风险登记
| 风险 |
影响 |
缓解 |
| Fix-5/6/7 虚报 |
XSS + 缺安全头 |
PR#2 之前不上生产 |
| 5 文档 P0 失真 |
内部误导 |
评审报告已记,跟正式版一起修 |
| 应急页未做 |
故障时无降级 |
1 周内 WB 接单补 |
| 测试未跑 |
Fix-4 未验证 |
用户手动跑 pytest |
🔗 关联文档
- 主任务:
.workbuddy/memory/2026-06-15-合并任务部署说明.md
- 补 4 项:
.workbuddy/memory/2026-06-15-补-4项+测试.md
- 命名+错误码:
.workbuddy/memory/2026-06-15-补充-命名+错误码.md
- 1012 拆码:
.workbuddy/memory/2026-06-15-ErrorCode-1012拆码.md ← NEW
- 应急降级页:
.workbuddy/memory/2026-06-15-发布预演页.md
- 评审报告:
docs/评审报告/2026-06-14-workbuddy-消息评审.md
- 凌晨跑批汇总:
~/.claude/memory/overnight-batch-2026-06-15.md
🤖 Generated with Claude Code