@@ -5,6 +5,44 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ## [ v0.5.0-alpha.5] - 2026-02-05
9+
10+ ### 🎉 Release Highlights
11+
12+ v0.5.0-alpha.5 是一次代码质量和安全性提升版本,主要亮点:
13+
14+ - ** 请求 ID 中间件** - 每个请求分配唯一 UUID,注入日志 span 和响应头,便于追踪调试
15+ - ** 缓存健康检查** - 健康检查端点新增缓存状态信息(类型、Bloom filter、Negative cache 状态)
16+ - ** 批量操作安全增强** - 新增 5000 条批量大小限制和 10MB 导入文件限制
17+ - ** 关机超时机制** - 优雅关闭增加 30 秒总超时保护,防止关闭卡死
18+
19+ ### Added
20+ - ** Request ID 中间件** - 为每个请求生成 UUID v4,注入 tracing span 和 ` X-Request-ID ` 响应头
21+ - ** 缓存健康检查** - ` /health ` 端点现在返回缓存状态(类型、Bloom filter、Negative cache)
22+ - ** Refresh Token 限流** - 每 10 秒 1 次请求,突发最多 10 次,防止滥用
23+ - ** 批量操作大小限制** - 批量创建/更新/删除最多 5000 条
24+ - ** 导入文件大小限制** - CSV 导入最大 10MB
25+ - ** 新增错误码** - ` BatchSizeTooLarge ` 、` FileTooLarge ` 、` InvalidDateFormat ` 、` LinkInvalidCode ` 、` LinkReservedCode `
26+
27+ ### Improved
28+ - ** 关机流程** - 增加超时机制(30 秒总超时,单任务 10 秒),超时强制退出防止卡死
29+ - ** 日期参数验证** - ` created_after ` /` created_before ` 参数无效时返回明确错误信息
30+ - ** JWT Service 缓存** - 使用 ` OnceLock ` 缓存实例,避免每次请求重复创建
31+ - ** 登录日志** - 登录成功/失败日志包含客户端 IP
32+ - ** Bloom filter 初始容量** - 改为 100(启动时 reconfigure 会用实际数量替换),减少初始内存占用
33+
34+ ### Security
35+ - ** Health Token 常量时间比较** - 使用 ` subtle::ConstantTimeEq ` 防止时序攻击
36+ - ** Admin Token 生成增强** - 默认使用加密安全的 ` OsRng ` 生成 32 字符令牌
37+
38+ ### Refactored
39+ - ** 移除 AdminService 包装层** - 直接使用函数,减少间接调用
40+ - ** IP 提取逻辑统一** - 登录限流和其他地方共用 ` utils/ip.rs ` 中的函数
41+ - ** 批量操作重构** - 使用 ` LinkService ` 统一业务逻辑层
42+ - ** 小时汇总写入器** - 新增 ` HourlyRollupWriter ` 统一 click_sink 和 rollup 的汇总逻辑
43+ - ** 配置管理代码** - 使用宏简化 ` get_runtime_config_or_return!() ` 重复模式
44+ - ** 前端服务** - 统一 ` serve_index_html() ` 逻辑,消除代码重复
45+
846## [ v0.5.0-alpha.4] - 2026-02-05
947
1048### 🎉 Release Highlights
@@ -1255,7 +1293,8 @@ v0.3.0 是一个重大版本更新,包含大量安全增强、性能优化和
12551293- Update README.md
12561294- Initial commit
12571295
1258- [ Unreleased ] : https://github.com/AptS-1547/shortlinker/compare/v0.5.0-alpha.4...HEAD
1296+ [ Unreleased ] : https://github.com/AptS-1547/shortlinker/compare/v0.5.0-alpha.5...HEAD
1297+ [ v0.5.0-alpha.5 ] : https://github.com/AptS-1547/shortlinker/compare/v0.5.0-alpha.4...v0.5.0-alpha.5
12591298[ v0.5.0-alpha.4 ] : https://github.com/AptS-1547/shortlinker/compare/v0.5.0-alpha.3...v0.5.0-alpha.4
12601299[ v0.5.0-alpha.3 ] : https://github.com/AptS-1547/shortlinker/compare/v0.5.0-alpha.2...v0.5.0-alpha.3
12611300[ v0.5.0-alpha.2 ] : https://github.com/AptS-1547/shortlinker/compare/v0.5.0-alpha.1...v0.5.0-alpha.2
0 commit comments