更新日志
本文件记录 @hydd/request-guard 的重要变更。版本遵循 语义化版本。
说明:以下条目由提交历史整理而来,措辞以"对使用者有意义"为准,并非逐条提交的原文。
[Unreleased]
破坏性变更
- duplicate 默认策略从
block调整为ignore:重复请求默认不再 rejectRequestGuardBlockedError,而是返回永远 pending 的 Promise,不触发调用方.then()/.catch()/.finally()。依赖默认.catch()处理重复提交的项目,请显式配置defaults.duplicate.strategy: 'block'。
新增
- duplicate 新增
ignore策略,适合表单提交、下单、支付等不希望重复调用触发成功/失败副作用的场景。 - duplicate 新增
inFlightTtl配置,默认0表示关闭;显式开启后,可在原请求永不 settle 时由状态维护任务兜底释放 stale in-flight key。
修复
- 修复存在异步前置 pipeline 能力时,duplicate 检查与登记之间可能被并发请求穿透的问题。
- 修复 duplicate in-flight 记录在启用
inFlightTtl后可被状态维护兜底清理,避免自定义 transport 永不 settle 时永久阻断同 key 后续请求。 - 修复 controller
configure(null)这类非对象输入会抛出内部异常的问题,现在会按空配置处理。
[0.5.4] - 2026-06-30
优化
- 完善 npm 包元信息:补充仓库、Issues 反馈入口与官网(happydidi.cn)链接
[0.5.3] - 2026-06-30
新增
- 内置 AI 接入 Skill 并随 npm 包分发(
skills/request-guard/),支持 Claude Code / Codex 按项目技术栈自动接入
[0.5.2] - 2026-06-24
文档
- 文档完善与细节调整
[0.5.1] - 2026-06-24
文档
- README 更新
[0.5.0] - 2026-06-22
新增
- 能力拆包,开放
@hydd/request-guard/core按需注册入口;小程序等包体积敏感场景可只打包真正用到的能力
[0.4.6] - 2026-06-17
优化
- 优化构建产物
[0.4.5] - 2026-06-16
修复
- 编译目标降级到 es2017,修复微信小程序构建时可选链语法报错
[0.4.4] - 2026-06-16
优化
- 调整能力默认配置
[0.4.3] - 2026-06-16
修复
- 修复并发场景下的判重原子性问题
[0.4.2] - 2026-06-15
新增
- 熔断能力支持
statusCodes配置
其他
- 包名调整为
@hydd/request-guard
[0.4.1] - 2026-06-14
优化
- 完善代码注释
[0.4.0] - 2026-06-14
修复
- 修复特殊环境下的运行异常
0.3.x 及更早为早期内部版本,不在此列。

