Story 009.001: Core Module MT Creation
Status
Completed
Story
As a 系统架构师
I want 创建@d8d/core-module-mt包并将user-module-mt、auth-module-mt、file-module-mt三个包的功能迁移到内部模块目录
so that 消除循环依赖问题,同时保持现有API和功能的完整性
Acceptance Criteria
- 创建@d8d/core-module-mt包,包含所有三个模块的功能
- 在包内保持三个模块的独立目录结构:user-module-mt、auth-module-mt、file-module-mt
- 所有现有功能正常工作,包括实体关系、服务层、中间件和Schema
- 构建和测试通过,确保无回归
- 其他包完全不需要修改代码,只需更新依赖版本
Tasks / Subtasks
Dev Notes
技术栈信息 [Source: architecture/tech-stack.md]
- 运行时: Node.js 20.18.3
- 框架: Hono 4.8.5 (RPC类型安全)
- 数据库: PostgreSQL 17 + TypeORM 0.3.25
- 构建工具: Vite 7.0.0
- 测试框架: Vitest 2.x + Testing Library 13.x + hono/testing
项目结构信息 [Source: architecture/source-tree.md]
- 包管理: pnpm workspace模式
- 包架构层次: 基础设施层 → 业务模块层 → 多租户模块层 → 前端界面层 → 应用层
- 多租户包位置: packages/目录下的*-mt后缀包
- 现有相关包:
- packages/user-module-mt/
- packages/auth-module-mt/
- packages/file-module-mt/
- 新包位置: packages/core-module-mt/
集成点信息 [Source: docs/epic-009-multi-tenant-core-module-consolidation.md]
- 实体关系: UserEntityMt ↔ FileMt(头像文件关联)
- 服务层: AuthService → UserServiceMt
- 中间件: 所有路由依赖authMiddleware
- Schema: 多个模块依赖UserSchemaMt和FileSchema
包结构设计 [基于原有包结构分析]
@d8d/core-module-mt/
├── user-module-mt/ # 用户模块(保持原包完整结构)
│ ├── src/
│ │ ├── entities/
│ │ ├── services/
│ │ ├── schemas/
│ │ ├── routes/
│ │ └── index.mt.ts
│ └── tests/
├── auth-module-mt/ # 认证模块(保持原包完整结构)
│ ├── src/
│ │ ├── entities/
│ │ ├── services/
│ │ ├── schemas/
│ │ ├── routes/
│ │ ├── middleware/
│ │ └── index.mt.ts
│ └── tests/
├── file-module-mt/ # 文件模块(保持原包完整结构)
│ ├── src/
│ │ ├── entities/
│ │ ├── services/
│ │ ├── schemas/
│ │ ├── routes/
│ │ └── index.ts
│ └── tests/
└── package.json # 聚合后的统一配置,包含各模块的exports
Exports配置设计 [基于原有包exports分析]
- 用户模块导出: 保持原有导出路径,如
@d8d/core-module-mt/user-module-mt/entities
- 认证模块导出: 保持原有导出路径,如
@d8d/core-module-mt/auth-module-mt/middleware
- 文件模块导出: 保持原有导出路径,如
@d8d/core-module-mt/file-module-mt/services
- 其他包引用方式不变: 只需将依赖从
@d8d/user-module-mt 改为 @d8d/core-module-mt/user-module-mt
测试
测试标准 [Source: architecture/coding-standards.md]
- 测试框架: Vitest + Testing Library + hono/testing
- 测试位置:
__tests__ 文件夹与源码并列
- 覆盖率目标: 核心业务逻辑 > 80%
- 测试类型: 单元测试、集成测试
测试要求
- 验证所有现有功能正常工作
- 确保模块间依赖关系正确
- 测试实体关系和服务层调用
- 验证中间件功能
- 确保Schema验证正确
Change Log
| Date |
Version |
Description |
Author |
| 2025-11-18 |
1.4 |
移除包入口文件,直接使用原包的exports配置 |
Bob (Scrum Master) |
| 2025-11-18 |
1.3 |
简化包结构:core包下不加src,直接放三个包,保持原结构 |
Bob (Scrum Master) |
| 2025-11-18 |
1.2 |
简化包结构:直接按原包结构放置,保持测试独立 |
Bob (Scrum Master) |
| 2025-11-18 |
1.1 |
更新任务:添加依赖版本聚合和配置文件过滤 |
Bob (Scrum Master) |
| 2025-11-18 |
1.0 |
初始故事创建 |
Bob (Scrum Master) |
Dev Agent Record
Agent Model Used
- Claude Code Agent (d8d-model)
Debug Log References
- 成功创建core-module-mt聚合包结构
- 修复模块间导入路径问题(从相对路径改为包名导入)
- 所有119个测试通过验证
- 类型检查和构建成功
Completion Notes List
- ✅ 创建了@d8d/core-module-mt聚合包
- ✅ 成功迁移user-module-mt、auth-module-mt、file-module-mt三个模块
- ✅ 解决了模块间循环依赖问题
- ✅ 保持了所有现有API和功能的完整性
- ✅ 所有测试通过(119个测试)
- ✅ 类型检查通过
- ✅ 构建成功
- ✅ 多租户隔离功能正常工作
File List
- packages/core-module-mt/package.json (聚合包配置)
- packages/core-module-mt/tsconfig.json (TypeScript配置)
- packages/core-module-mt/user-module-mt/ (用户模块)
- packages/core-module-mt/auth-module-mt/ (认证模块)
- packages/core-module-mt/file-module-mt/ (文件模块)
QA Results
- 测试覆盖率: 所有119个测试通过
- 功能验证: 认证、用户管理、文件管理功能完整
- 多租户隔离: 租户数据隔离、认证隔离功能正常
- 构建验证: TypeScript编译和打包成功
- 依赖管理: 模块间依赖关系正确解析