Skip to content

v1.4.0 - Maintainability Refactor

Choose a tag to compare

@TASure TASure released this 26 Sep 01:29
· 54 commits to main since this release

sureai v1.4.0 — 可维护性重构版本

完成 v1.2.0 全维度团队检视报告的最后一版整改。本版本为纯内部重构,公共 API 行为签名零变更,全工程 812 测试 0 失败。

♻️ Refactor

  • AbstractAiClient 拆分(682 → 368 行,−46%):抽出 RetryExecutor(重试/熔断/限流/指标/错误映射)、RequestBuilder(请求构建+签名钩子链)、MultipartBodyBuilder(multipart 拼装)三个包内协作类;18 个 protected/public 成员签名逐字不变,全部子类零修改。
  • OpenAiCompatClient 拆分(841 → 340 行,−60%):抽出 10 个能力域策略类(Chat/Stream/Image/Video/Audio/Embedding/Moderation/FineTune 等),10 个平台 Client 零修改。
  • Util 单例样板抽取:新增通用 SingletonHolder(DCL 容器),17 个平台 Util 迁移,主源码净减 341 行。
  • 删除 10 处平台 Client 重复的 applyDefaultBaseUrl 方法(−108 行),统一委托 AiConfig.withBaseUrlIfAbsent。

🆕 Added

  • Client 能力面收口:新增 Capability 枚举(14 项)与 guard 机制;DeepSeek/Grok/Mistral/LlamaCpp/Moonshot 逐平台审计声明能力,调用不支持的方法时立即快速失败并给出清晰 AiException(此前要等上游 4xx)。
  • 测试分类:JUnit4 @category(Unit/Slow/E2e)+ -Pfast Maven profile,快速回归 801 测试。
  • CI 治理:OS 矩阵(ubuntu/macos/windows)、tag 触发的发布 workflow、benchmark 月度/手动 workflow。

📊 质量

  • 812 测试 0 失败(+13:SingletonHolder 8 + CapabilityGuard 5);core 覆盖率 86.6%
  • checkstyle / spotbugs / license 门禁全绿;运行期第三方依赖仍有且仅有 sure-core:0.2.0

说明:OpenAI/Azure/Doubao/Qwen/Zhipu 五平台本轮保守保留全量能力声明(其能力边界需对照官方文档逐项核实,贸然缩减有误伤风险),列入后续迭代。

Full Changelog: v1.3.0...v1.4.0