Skip to content

v5.0.0

Choose a tag to compare

@joey-zhou joey-zhou released this 14 Apr 01:58
· 27 commits to main since this release

[5.0.0] - 2025-04-10

💥 重大变更

  • refactor!: 项目拆分为多模块架构
    • 从单体项目重构为 Maven 多模块:xiaozhi-commonxiaozhi-servicexiaozhi-aixiaozhi-dialoguexiaozhi-server
    • 模块间通过窄接口解耦,AI 模块与 Service 层解耦 (narrow ports)
    • Web 组件从 common 迁移至 server 模块,职责更清晰

新增功能

架构 & 基础设施

  • feat: 引入 Flyway 数据库版本管理
  • feat: 引入 DDD 领域驱动设计模式(聚合根、领域事件、Pipeline)
  • feat: 新增通用 Shell 脚本用于服务管理
  • feat: 添加前端单元测试 (Vitest) 和 E2E 测试 (Playwright) 基础设施
  • feat: 新增审计日志注解 (AuditLog),增强操作追踪

权限 & 安全

  • feat: 重构权限管理系统
  • feat: 新增权限管理页面(前端)
  • feat(auth): 暴露角色权限并在用户管理中展示

AI & 对话

  • feat: 增强长期记忆会话,支持图检索能力 (Graph Retrieval)
  • feat: 重构知识库,整合长期记忆与声纹识别
  • feat: 知识库 Pipeline 重构
  • feat: 实现 Edge TTS 流式语音合成
  • feat: 添加从输入流读取 Ogg Opus 格式音频帧的功能

前端

  • feat: 新增音频播放器 fallback 支持

重构 & 优化

异常处理统一化

  • refactor: 全面统一 Controller 层异常处理(共 4 批次)
  • refactor: 统一 CRUD 操作失败语义(create/update/delete)
  • refactor: 统一语音克隆、声纹识别、用户校验等模块异常处理
  • refactor: 强化 OTA 协议、上传/TTS、特殊端点的错误处理
  • refactor: 消除 null 和 zero 失败语义,内部 BO 创建不再返回 null

领域模型 & 命名

  • refactor: SysSummary 替换为 SummaryBO
  • refactor: ConversationTurn 重命名为 DialogueTurn
  • refactor: functionNames 重命名为 mcpList
  • refactor: 统一 auth role permission 命名
  • refactor: 用户角色字段统一为 authRole
  • refactor: 重构 ApiResponse 统一响应格式
  • refactor: 重构 token 管理及 message 发送方法

API & 接口

  • refactor: 重构 API 端点为 RESTful 风格
  • refactor: 分页参数从 start/limit 统一为 pageNo/pageSize
  • refactor: MCP Controller 错误契约标准化
  • refactor: 拆分 mcpServer 与 mcpEndpoint 模块
  • refactor: 替换手动 login id 转换为 sa-token typed API

架构解耦

  • refactor: 适度解耦 Session 架构
  • refactor: Dialogue 和 Server 模块只扫描需要的包
  • refactor: 移除 req 对象在 dialogue 和内部运行时流中的泄漏
  • refactor: 用户 ID 在 service 和 task 边界显式传递
  • refactor: 运行时路径配置整合,减少 STT/TTS 服务中的硬编码路径
  • refactor: 去除路径硬编码
  • refactor: 统一缓存位置
  • refactor: 统一领域事件
  • refactor: 优化对话逻辑并去掉冗余的虚拟线程方法

清理

  • refactor: 移除未使用的 ExitKeywordDetector、IntentDetector 类
  • refactor: 移除未使用的 HttpSessionProvider、ResponseUtils、SessionProvider、DramaJson 类
  • refactor: 移除声纹阈值自定义功能
  • refactor: 移除多个过时的架构文档
  • delete: 去掉知识库中关于 userId 多余的传递
  • delete: 去除未使用的方法

修复

  • fix: 修复若干 bug 及优化集群部署
  • fix: 修复 endpoint 集群部署问题及 mcpServer 迁移依赖
  • fix: 修复 CosyVoice 音频句子发送 bug
  • fix: 修复角色更新后设备未及时更新问题
  • fix: 修复 MQTT 重复构建对话消息与唤醒词多次发送 start 问题
  • fix: 修复测试音效错误及音频缓存命中错误问题
  • fix: 修复类启动错误问题
  • fix: 修复调用错误方法

Docker & 部署

  • refactor: 统一 Docker 网络、添加资源限制、调整上传大小为 100MB
  • update: Dockerfile-server 适配多模块构建
  • update: Dockerfile-node 构建上下文调整为 web 目录
  • update: .dockerignore 更新排除规则
  • update: docker-compose.yml 移除无用的 maven_repo 卷

测试

  • test: 完成 Controller 测试基线