Skip to content

更新日志

本文件记录 @hydd/request-guard 的重要变更。版本遵循 语义化版本

说明:以下条目由提交历史整理而来,措辞以"对使用者有意义"为准,并非逐条提交的原文。

[Unreleased]

破坏性变更

  • duplicate 默认策略从 block 调整为 ignore:重复请求默认不再 reject RequestGuardBlockedError,而是返回永远 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 及更早为早期内部版本,不在此列。

基于 MIT 许可发布