Files
OpenFlare/.agents/skills/release-guide/SKILL.md
T
ryan 0524ae1da4 chore(release): v3.5.1
### ✨ 新功能
- 日志存储解耦:ClickHouse 变为可选项,不启用时由 PostgreSQL/SQLite 承担全部日志功能;新增「切换日志数据库」任务支持 PostgreSQL/SQLite 与 ClickHouse 间数据迁移(迁移期间冻结日志写入,成功后自动切换主库并保留源数据);`log_database` / `log_db_migration` 设为受保护配置;ClickHouse 改为默认关闭。
- 新增 PostgreSQL/SQLite 日志存储实现:节点访问日志按月分区,统计查询合并为单次扫描、IP 汇总归属地取查询窗口内最新记录、WAF 按 IP 聚合减少扫描次数,并新增 `logged_at` 前导索引与主机名小写表达式索引;过期清理直接删除完全过期的整月分区,启动时兜底预建当月及未来 2 个月分区。
- 性能指标与访问日志的保留时长解耦:新增三库共用的 `metric_retention_days` 配置(默认 3 天),每日垃圾清理按独立短留存清理指标快照。

### 🛠 修复
- 修复 UptimeKuma 同步调试日志泄露凭据:Socket.IO 事件日志不再打印 payload 内容(仅记录长度),避免凭据进入日志。
- 修复日志保留天数配置继承旧键导致的误删风险:`log_retention_days_*` 不再继承 `database_auto_cleanup_retention_days`,统一默认 30 天。

### ⚡️ 优化与改进
- 系统定期垃圾清理由每 2 小时改为每日执行一次(凌晨 3 点,Asia/Shanghai),降低非必要高频扫描。

### 💄 其他/体验
- 服务工作者(SW)注入挑战页改为前台无感知:不再显示「加载中…」文案,页面空白,仅通过浏览器控制台输出 `[sw-challenge]` 调试信息,注入过程不打扰访客。
- 用户访问日志(`w_user_access_logs`)记录禁用:不再采集与写入新的用户访问日志,存量数据与管理端访问日志统计页面保留。
2026-08-09 11:39:28 +08:00

4.2 KiB
Raw Blame History

name, description
name description
release-guide Wavelet 项目专用:根据自上一个正式版本 Tag 以来的提交记录,整理生成规范的 Version Bump Commit Message,用于触发自动双语 Release。

Release Commit Message Guide

目标

当用户准备发布 Wavelet 新版本时,本 Skill 负责:

  1. 根据上一正式版本 Tag 以来的提交,整理面向用户的发版说明;
  2. 新建 独立的 chore(release): vX.Y.Z 提交(可附带将 docs/changelog 从 [unreleased] 落版)。

硬性约束(禁止改写历史)

  • 禁止 git commit --amend 修改任何已经 push 到远端的提交。
  • 禁止 为了发版去改写已有功能/修复提交的 message 或内容。
  • 禁止 发版流程中的 force-push(除非用户明确要求且知晓后果)。
  • 发版提交必须是 新增 commit:在当前 HEAD 之上 git commit 一次。
  • 默认 不要 push、不要打 tag;生成并完成本地 release commit 后,把后续 push / git tag 命令交给用户确认执行。

生成提交信息

将原始 commit log 整理为面向 Release 的更新说明。

要求:

  1. 合并重复或相近提交。
  2. 删除无意义提交,例如格式化、临时调试、无关重构。
  3. 将内部实现描述改写为用户可理解的变更。
  4. 每条使用完整中文句子。
  5. 尽量说明“修复/优化了什么”以及“带来的效果”。
  6. 不要编造 commit log 中没有的信息。
  7. 不要加入 token、密钥、私有地址等敏感信息。
  8. 如果某个分类没有内容,可以省略。

固定使用以下分类:

### 新增
### 🛠 修复
### ⚡️ 优化与改进
### 💄 其他/体验

分类规则:

  • 新功能、新能力、新配置、新任务:放入 ### 新增
  • Bug、异常行为、错误逻辑:放入 ### 🛠 修复
  • 性能、稳定性、接口、架构、兼容性:放入 ### ⚡️ 优化与改进
  • 日志、文案、UI、文档、开发体验:放入 ### 💄 其他/体验

「修复/优化」与「新增」的判定(关键):

  • 判定标准是“该功能在上一正式版本中是否已存在”:
    • 已存在 → 本次对其 bug 的修正可计入「🛠 修复」,对其行为/性能的改进可计入「⚡️ 优化与改进」;
    • 不存在(本版本新增)→ 该功能的一切内容——包括开发过程中修的 bug、做的性能优化、补的索引——都只属于新功能开发的一部分,不应该在发布说明中提及。
  • 禁止把新功能的开发期修复/优化写进「修复」或「优化」:新功能此前版本没有,谈不上“修复/优化了旧行为”。

示例:

chore(release): v3.3.0

### ✨ 新功能
- 新增笔记库快照备份功能,支持定时备份与手动一键恢复(仅说明新增的功能, 禁止提及新功能开发时期的优化修复等内容)。

### 🛠 修复
- 修复了通过 MCP 接口操作时笔记库范围限制未正确生效的问题。
- 修复了 MCP 接口返回数据格式不一致的问题。
- 修复了 WebSocket 客户端异常断开后僵尸连接未及时清理的问题。

### ⚡️ 优化与改进
- 优化了 WebGUI 登录机制,引入设备令牌自动轮转,减少因 IP 变化产生的冗余令牌。

### 💄 其他/体验
- 优化了 WebSocket 错误日志,增加请求路径信息,方便问题排查。

提交步骤

  1. 确认工作区干净,且 HEAD 与将要发布的代码一致(通常已与 origin/main 对齐或仅含未 push 的合法新提交)。
  2. 将 docs/changelog/index.md 中 [unreleased] 落版为 [vX.Y.Z] - YYYY-MM-DD(按需整理条目)。
  3. 新建 release 提交(不要 amend):
git add docs/changelog/index.md   # 及其他发版所需文件
git commit -m "$(cat <<'EOF'
chore(release): vX.Y.Z

### 🛠 修复
- ...

### ⚡️ 优化与改进
- ...

### 💄 其他/体验
- ...
EOF
)"
  1. 向用户展示完整 commit message,并说明后续可由用户执行:
git push origin main
git tag vX.Y.Z
git push origin vX.Y.Z

(打 tag 后由 CI 创建双语 Release。)

任务结束条件

本地已存在 新的 chore(release): vX.Y.Z 提交,且未改写任何已 push 提交、未擅自 push/tag。