Your Name
cdb3a453bb
docs: 更新项目文档,添加测试验证规范和经验总结
...
新增内容:
1. CLAUDE.md - 添加测试验证规范
- 数据库连接配置
- 测试运行命令
- 性能基准参考值
- 覆盖率目标
- 常见问题与解决方案
2. project_experience_summary.md - 添加测试验证经验
- 集成测试环境配置
- 测试覆盖率要求
- 性能基准测试
- E2E测试常见问题
- 数据库表验证步骤
- 中间件鲁棒性验证
2026-04-09 14:32:36 +08:00
Your Name
e6ac812a0a
fix: 修复E2E测试编译错误
...
修复e2e_test.go中的未使用导入和变量问题:
- 移除未使用的context、assert、require导入
- 修复ctx变量声明但未使用的问题
E2E测试现已通过编译验证。
2026-04-09 14:28:17 +08:00
Your Name
efa4edcc15
fix: 修复提现唯一性检查问题 (PRD P0)
...
问题:Withdraw函数没有检查是否已有处理中的提现,可能导致并发提现
修复内容:
1. 添加新错误码 ErrWithdrawAlreadyProcessing (SUP_SET_4093)
2. 在 SettlementStore 接口添加 HasPendingOrProcessingWithdraw 方法
3. 在 Withdraw 函数中添加检查:已有pending/processing状态提现时拒绝新的提现
4. 在 Repository 中实现 HasPendingOrProcessingWithdraw(检查 pending 和 processing 状态)
5. 在所有 mock 实现中添加该方法
修改的文件:
- domain/settlement.go: 接口定义和 Withdraw 逻辑
- domain/invariants.go: 新错误码
- repository/settlement.go: HasPendingOrProcessingWithdraw 实现
- storage/store.go: InMemorySettlementStore 实现
- cmd/supply-api/main.go: DBSettlementStore 和 InMemorySettlementStoreAdapter 实现
- test mocks: 添加 HasPendingOrProcessingWithdraw
2026-04-08 20:26:50 +08:00
Your Name
40ab7cf851
feat: 初始化ForeignKeyValidator和CompensationProcessor
...
P0-07: 批量补偿处理器
- 添加NewCompensationProcessor构造函数
- 添加NoOpCompensationStats实现
- 添加defaultCompensationExecutor placeholder实现
- 在main.go中初始化CompensationProcessor
P0-09: 外键校验器
- 修改ForeignKeyValidator使用pgxpool替代sql.DB
- 在main.go中初始化ForeignKeyValidator
- 在创建账户前调用ValidateSupplyAccountOwner
- 在创建套餐前调用ValidatePackageSupplyAccount
- SupplyAPI添加fkValidator字段
修改的文件:
- cmd/supply-api/main.go: 初始化组件
- internal/httpapi/supply_api.go: 添加外键校验
- internal/domain/compensation.go: 添加构造函数和Stats实现
- internal/repository/foreign_key_validator.go: 改用pgxpool
2026-04-08 19:00:06 +08:00
Your Name
2f0011b118
docs: 更新项目状态报告 - P1 TODO已完成
...
修正TODO清单:
- Settlement.GetByID 测试 ✅ 已完成
- Settlement.List 测试 ✅ 已完成
- Settlement.GetBillingSummary 测试 ✅ 已完成
所有测试均已存在并通过race检测
2026-04-08 18:42:16 +08:00
Your Name
85dac3ad44
fix: 修复 TimeoutMiddleware 并发问题并更新测试文档
...
问题修复:
- 修复 TimeoutMiddleware 死锁问题(嵌套锁调用)
- 修复竞态条件(responseSent 标志确保只发送一次响应)
- 基准测试超时从 5ms 改为 100ms 避免 race 检测不稳定
文档更新:
- 添加中间件并发测试要点(testing_strategy_v1.md)
- 添加 TimeoutMiddleware 并发安全经验(project_experience_summary.md)
- 更新测试覆盖率报告
- 新建项目状态报告
2026-04-08 18:20:40 +08:00
Your Name
4349666ccb
docs: enhance testing strategy to v1.2 with industry best practices
...
Based on expert review, key improvements:
1. Standardize testing pyramid to 3 layers (Unit/Integration/E2E)
- Remove non-standard "Component" layer
- Add target percentages per industry standards
2. Add test utilities infrastructure
- testutil/factory/ - Test data factories
- testutil/mock/ - Unified mock library
- testutil/assert/ - Custom assertions
3. Add missing build tags
- //go:build slow for performance tests
- //go:build e2e for E2E tests
4. Add performance regression testing guidelines
5. Fix flaky test handling
- Proper use of context timeout
- Skip flaky tests in local dev, run in CI
6. Update references to Google Testing Blog and Atlassian Testing Guide
Coverage targets remain aligned with industry:
- Unit: 70-80%
- Integration: 15-20%
- E2E: 5-10%
2026-04-08 10:23:13 +08:00
Your Name
698759b665
docs: refine testing strategy based on code review
...
Changes:
- docs/testing_strategy_v1.md v1.1:
- Clarify test pyramid with build tags (unit/integration/e2e)
- Add Middleware to priority module list
- Add coverage run discrepancy warning (individual vs ./...)
- Update action items to reflect completed work
- Add race detector usage guidelines
- Add test cleanup patterns
- reports/test_coverage_report_2026-04-08.md:
- Clarify coverage run discrepancy (individual vs ./...)
- Add dual columns: individual run vs combined run
- Update status to ✅ all key modules passing
- Add week-over-week trending
- Remove incorrect "emergency" status
2026-04-08 10:15:45 +08:00
Your Name
e21021c88c
docs: add testing strategy and coverage report
...
- docs/testing_strategy_v1.md: comprehensive testing strategy
- Test pyramid definition (Unit/Integration/E2E)
- File naming conventions
- Mock interface guidelines
- Coverage requirements
- Test execution commands
- Common issues solutions
- reports/test_coverage_report_2026-04-08.md: current coverage status
- Module-by-module breakdown
- Coverage达标情况
- Mock implementations inventory
- Next action items
- CLAUDE.md: update test specifications
- Add audit store mock signature
- Detailed coverage targets per module
- Test naming conventions
2026-04-08 10:08:33 +08:00
Your Name
879c09f6d3
test: improve domain and handler test coverage
...
- domain: add comprehensive PackageService and SettlementService tests
- handler: fix alert_handler_test mock audit store signature
- invariants_test.go: add CheckAccountDelete/Activate tests
- settlement_test.go: add Withdraw, Cancel, List, GetByID tests
- package_test.go: add Clone, BatchUpdatePrice tests
Coverage improvements:
- domain: 40.7% -> 71.2%
- middleware: 80.4%
- audit/handler: 79.6%
- audit/service: 83.0%
Fixes:
- mockAuditStore interface signature (interface{} -> audit.Event)
- newMockAccountStore syntax error
- Unlist test expects PackageStatusExpired not SoldOut
2026-04-08 10:01:41 +08:00
Your Name
862f313a74
test: improve audit/model coverage from 59.8% to 93.8%
...
- Add comprehensive Alert model tests
- Test NewAlert, generateAlertID, parseTenantID
- Test Alert methods: IsActive, IsResolved, Resolve, Acknowledge, Suppress
- Test UpdateLastSeen, AddEventID, SetMetadata, AddTag
- Test Alert constants
2026-04-08 09:06:36 +08:00
Your Name
7280ef565c
test: improve coverage for audit/events and security modules
...
- audit/events: 73.5% → 97.6% (+24.1%)
- Add tests for IsM013/M014/M015RelatedEvent
- Add tests for FormatSECURITYEvent
- Add comprehensive coverage for all CRED and SECURITY event functions
- security: 67.2% → 88.8% (+21.6%)
- Add tests for ValidateKeyID, DecryptionError.Error()
- Add tests for ValidateQueryParams, GetAllowedParamNames
- Add tests for isHexString, looksLikeAPIKey
- Fix test cases to match actual implementation behavior
- audit/sanitizer: Fix MaskMap []string handling bug
- Add maskSliceInterface for []interface{} type
- Tests now pass for string slice sensitive fields
All tests pass
2026-04-08 09:00:29 +08:00
Your Name
8ac23bf7d4
test: improve coverage and fix sanitizer bug
...
- Fix MaskMap to properly handle []string sensitive fields
- Add missing slice handling in sanitizer
- Add comprehensive tests for GetMetrics and CreateEventsBatch
- Improve audit/handler coverage from 49.8% to 68.8%
- Fix test expectations to match actual sanitizer behavior
- All tests pass
2026-04-08 07:44:58 +08:00
Your Name
6af341ac86
docs: 更新生产就绪度状态报告
2026-04-07 18:01:34 +08:00
Your Name
ac1209aa94
fix: 启用主动吊销机制和分区自动维护
...
- 启动Redis Pub/Sub订阅实现主动吊销失效
- 添加分区管理器后台维护(每小时预创建分区+清理过期分区)
2026-04-07 18:01:08 +08:00
Your Name
2689291e22
fix: 添加JWT RS256配置支持
...
- TokenConfig添加Algorithm和PublicKey字段
- 支持HS256(默认)和RS256/RS384/RS512
- 添加parseRSAPublicKey解析PEM格式公钥
2026-04-07 17:46:38 +08:00
Your Name
4bbd609ceb
fix: 修复C-04/C-05/C-06/C-07架构级问题
...
C-06: DBSettlementStore.GetWithdrawableBalance 使用AccountRepository真实查询余额
C-05: DBEarningStore 使用新建的UsageRepository实现ListRecords/GetBillingSummary
C-04: 供应商ID从cfg.Server.DefaultSupplierID配置读取
C-07: PDF链接从cfg.Server.StatementBaseURL配置读取
新增:
- internal/repository/usage.go: 用量记录仓储
2026-04-07 17:24:26 +08:00
Your Name
d5b5a8ece0
fix: 系统性修复安全问题、性能问题和错误处理
...
安全问题修复:
- X-Forwarded-For越界检查(auth.go)
- checkTokenStatus Context参数传递(auth.go)
- Type Assertion安全检查(auth.go)
性能问题修复:
- TokenCache过期清理机制
- BruteForceProtection过期清理
- InMemoryIdempotencyStore过期清理
错误处理修复:
- AuditStore.Emit返回error
- domain层emitAudit辅助方法
- List方法返回空slice而非nil
- 金额/价格负数验证
架构一致性:
- 统一使用model.RoleHierarchyLevels
新增功能:
- Alert API完整实现(CRUD+Resolve)
- pkg/error错误码集中管理
2026-04-07 07:41:25 +08:00
Your Name
12ce4913cd
fix: 修复复审中发现的NEW-P0和NEW-P1问题
...
修复内容:
1. NEW-P0-03: 删除重复的api.Register(mux)调用
2. NEW-P0-04: 修复handler/mux链路混乱问题
3. NEW-P1-03: 添加tokenBackend和auditEmitter适配器修复nil问题
4. NEW-P1-04: 幂等中间件因repo为nil保持禁用,使用内联幂等逻辑
5. NEW-P1-05: 统一幂等方案为supply_api.go内联实现
新增:
- memoryTokenBackend: 内存token状态后端
- auditEmitterAdapter: auditStore到middleware.AuditEmitter的适配器
注意:审计日志分页total问题(NEW-P2-02)需要架构重构修复
2026-04-03 12:54:14 +08:00
Your Name
f34333dc09
fix: 修复代码审查中发现的P0/P1/P2问题
...
修复内容:
1. P0-01/P0-02: IAM Handler硬编码userID=1问题
- getUserIDFromContext现在从认证中间件的context获取真实userID
- 添加middleware.GetOperatorID公开函数
- CheckScope方法添加未认证检查
2. P1-01: 审计服务幂等竞态条件
- 重构锁保护范围,整个检查和插入过程在锁保护下
- 使用defer确保锁正确释放
3. P1-02: 幂等中间件响应码硬编码
- 添加statusCapturingResponseWriter包装器
- 捕获实际的状态码和响应体用于幂等记录
4. P2-01: 事件ID时间戳冲突
- generateEventID改用UUID替代时间戳
5. P2-02: ListScopes硬编码
- 使用model.PredefinedScopes替代硬编码列表
所有supply-api测试通过
2026-04-03 12:25:22 +08:00
Your Name
b933f06bdd
docs(supply-api): 添加README并更新TODO注释
...
- 添加 supply-api/README.md (R-06 文档完善)
- 更新 main.go TODO注释标记 DatabaseAuditService 已创建
R-05, R-06 低优先级任务完成。
2026-04-03 12:06:08 +08:00
Your Name
7254971918
feat(supply-api): 完成IAM和Audit数据库-backed Repository实现
...
- 新增 iam_schema_v1.sql DDL脚本 (iam_roles, iam_scopes, iam_role_scopes, iam_user_roles, iam_role_hierarchy)
- 新增 PostgresIAMRepository 实现数据库-backed IAM仓储
- 新增 DatabaseIAMService 使用数据库-backed Repository
- 新增 PostgresAuditRepository 实现数据库-backed Audit仓储
- 新增 DatabaseAuditService 使用数据库-backed Repository
- 更新实施状态文档 v1.3
R-07~R-09 完成。
2026-04-03 11:57:15 +08:00
Your Name
6fa703e02d
feat(audit): 实现Audit HTTP Handler并提升IAM Middleware覆盖率
...
1. 新增Audit HTTP Handler (AUD-05, AUD-06完成)
- POST /api/v1/audit/events - 创建审计事件(支持幂等)
- GET /api/v1/audit/events - 查询事件列表(支持分页和过滤)
2. 提升IAM Middleware测试覆盖率
- 从63.8%提升至83.5%
- 新增SetRouteScopePolicy测试
- 新增RequireRole/RequireMinLevel中间件测试
- 新增hasAnyScope测试
TDD完成:33/33任务 (100%)
2026-04-03 11:19:42 +08:00
Your Name
aeeec34326
fix(supply-api): 修复P2-05数据库凭证日志泄露风险
...
1. 在DatabaseConfig中添加SafeDSN()方法,返回脱敏的连接信息
2. 在NewDB中使用SafeDSN()记录日志
3. 添加sanitizeErrorPassword()函数清理错误信息中的密码
修复的问题:P2-05 数据库凭证日志泄露风险
2026-04-03 10:06:14 +08:00
Your Name
fd2322cd2b
chore(supply-api): 添加必要依赖
...
添加github.com/google/uuid用于生成唯一ID
添加github.com/stretchr/testify用于测试框架
2026-04-03 09:59:47 +08:00
Your Name
d44e9966e0
fix(security): 修复多个MED安全问题
...
MED-03: 数据库密码明文配置
- 在 gateway/internal/config/config.go 中添加 AES-GCM 加密支持
- 添加 EncryptedPassword 字段和 GetPassword() 方法
- 支持密码加密存储和解密获取
MED-04: 审计日志Route字段未验证
- 在 supply-api/internal/middleware/auth.go 中添加 sanitizeRoute() 函数
- 防止路径遍历攻击(.., ./, \ 等)
- 防止 null 字节和换行符注入
MED-05: 请求体大小无限制
- 在 gateway/internal/handler/handler.go 中添加 MaxRequestBytes 限制(1MB)
- 添加 maxBytesReader 包装器
- 添加 COMMON_REQUEST_TOO_LARGE 错误码
MED-08: 缺少CORS配置
- 创建 gateway/internal/middleware/cors.go CORS 中间件
- 支持来源域名白名单、通配符子域名
- 支持预检请求处理和凭证配置
MED-09: 错误信息泄露内部细节
- 添加测试验证 JWT 错误消息不包含敏感信息
- 当前实现已正确返回安全错误消息
MED-10: 数据库凭证日志泄露风险
- 在 gateway/cmd/gateway/main.go 中使用 GetPassword() 代替 Password
- 避免 DSN 中明文密码被记录
MED-11: 缺少Token刷新机制
- 当前 verifyToken() 已正确验证 token 过期时间
- Token 刷新需要额外的 refresh token 基础设施
MED-12: 缺少暴力破解保护
- 添加 BruteForceProtection 结构体
- 支持最大尝试次数和锁定时长配置
- 在 TokenVerifyMiddleware 中集成暴力破解保护
2026-04-03 09:51:39 +08:00
Your Name
b2d32be14f
fix(P2): 修复4个P2轻微问题
...
P2-01: 通配符scope安全风险 (scope_auth.go)
- 添加hasWildcardScope()函数检测通配符scope
- 添加logWildcardScopeAccess()函数记录审计日志
- 在RequireScope/RequireAllScopes/RequireAnyScope中间件中调用审计日志
P2-02: isSamePayload比较字段不完整 (audit_service.go)
- 添加ActionDetail字段比较
- 添加ResultMessage字段比较
- 添加Extensions字段比较
- 添加compareExtensions()辅助函数
P2-03: regexp.MustCompile可能panic (sanitizer.go)
- 添加compileRegex()安全编译函数替代MustCompile
- 处理编译错误,避免panic
P2-04: StrategyRoundRobin未实现 (router.go)
- 添加selectByRoundRobin()方法
- 添加roundRobinCounter原子计数器
- 使用atomic.AddUint64实现线程安全的轮询
P2-05: 错误信息泄露内部细节 - 已在MED-09中处理,跳过
2026-04-03 09:39:32 +08:00
Your Name
732c97f85b
fix: 修复多个P0阻塞性问题
...
P0-01: Context值类型拷贝导致悬空指针
- GetIAMTokenClaims/getIAMTokenClaims改为使用*IAMTokenClaims指针类型
- WithIAMClaims改为存储指针而非值拷贝
P0-02: writeAuthError从未写入响应体
- 添加json.NewEncoder(w).Encode(resp)将错误响应写入HTTP响应
P0-03: 内存存储无上限导致OOM
- 添加MaxEvents常量(100000)限制内存存储容量
- 添加cleanupOldEvents方法清理旧事件
P0-04: 幂等性检查存在竞态条件
- 添加idempotencyMu互斥锁保护检查和插入之间的时间窗口
其他改进:
- 提取roleHierarchyLevels为包级变量,消除重复定义
- CheckScope空scope检查从返回true改为返回false(安全加固)
2026-04-03 09:05:29 +08:00
Your Name
f9fc984e5c
test(iam): 使用TDD方法补充IAM模块测试覆盖
...
- 创建完整的IAM Service测试文件 (iam_service_real_test.go)
- 测试真实 DefaultIAMService 而非 mock
- 覆盖 CreateRole, GetRole, UpdateRole, DeleteRole, ListRoles
- 覆盖 AssignRole, RevokeRole, GetUserRoles
- 覆盖 CheckScope, GetUserScopes, IsExpired
- 创建完整的IAM Handler测试文件 (iam_handler_real_test.go)
- 测试真实 IAMHandler 使用 httptest
- 覆盖路由处理器方法 (handleRoles, handleRoleByCode等)
- 覆盖 CreateRole, GetRole, ListRoles, UpdateRole, DeleteRole
- 覆盖 AssignRole, RevokeRole, GetUserRoles, CheckScope, ListScopes
- 覆盖辅助函数和中间件
- 修复原有代码bug
- extractUserID: 修正索引从parts[3]到parts[4]
- extractRoleCodeFromUserPath: 修正索引从parts[5]到parts[6]
- 修复多余的空格导致的语法问题
测试覆盖率:
- IAM Handler: 0% -> 85.9%
- IAM Service: 0% -> 99.0%
2026-04-03 07:59:12 +08:00
Your Name
6924b2bafc
fix: 修复6个代码质量问题
...
P1-01: 提取重复的角色层级定义为包级常量
- 将 roleHierarchy 提取为 roleHierarchyLevels 包级变量
- 消除重复定义
P1-02: 修复伪随机数用于加权选择
- 使用 math/rand 的线程安全随机数生成器替代时间戳
- 确保加权路由的均匀分布
P1-03: 修复 FailureRate 初始化计算错误
- 将成功时的恢复因子从 0.9 改为 0.5
- 加速失败后的恢复过程
P1-04: 为 DefaultIAMService 添加并发控制
- 添加 sync.RWMutex 保护 map 操作
- 确保所有服务方法的线程安全
P1-05: 修复 IP 伪造漏洞
- 添加 TrustedProxies 配置
- 只在来自可信代理时才使用 X-Forwarded-For
P1-06: 修复限流 key 提取逻辑错误
- 从 Authorization header 中提取 Bearer token
- 避免使用完整的 header 作为限流 key
2026-04-03 07:58:46 +08:00
Your Name
88bf2478aa
fix(supply-api): 适配P0-01修复,更新测试使用WithIAMClaims函数
...
P0-01修复将WithIAMClaims改为存储指针,GetIAMTokenClaims/getIAMTokenClaims
改为获取指针类型。本提交更新role_inheritance_test.go中的测试以使用
WithIAMClaims函数替代直接的context.WithValue调用,确保测试正确验证
指针存储行为。
修复内容:
- GetIAMTokenClaims: 改为返回ctx.Value(IAMTokenClaimsKey).(*IAMTokenClaims)
- getIAMTokenClaims: 同上
- WithIAMClaims: 改为存储claims而非*claims
- writeAuthError: 添加json.NewEncoder(w).Encode(resp)写入响应体
2026-04-03 07:54:37 +08:00
Your Name
50225f6822
fix: 修复4个安全漏洞 (HIGH-01, HIGH-02, MED-01, MED-02)
...
- HIGH-01: CheckScope空scope绕过权限检查
* 修复: 空scope现在返回false拒绝访问
- HIGH-02: JWT算法验证不严格
* 修复: 使用token.Method.Alg()严格验证只接受HS256
- MED-01: RequireAnyScope空scope列表逻辑错误
* 修复: 空列表现在返回403拒绝访问
- MED-02: Token状态缓存未命中时默认返回active
* 修复: 添加TokenStatusBackend接口,缓存未命中时必须查询后端
影响文件:
- supply-api/internal/iam/middleware/scope_auth.go
- supply-api/internal/middleware/auth.go
- supply-api/cmd/supply-api/main.go (适配新API)
测试覆盖:
- 添加4个新的安全测试用例
- 更新1个原有测试以反映正确的安全行为
2026-04-03 07:52:41 +08:00
Your Name
89104bd0db
feat(P1/P2): 完成TDD开发及P1/P2设计文档
...
## 设计文档
- multi_role_permission_design: 多角色权限设计 (CONDITIONAL GO)
- audit_log_enhancement_design: 审计日志增强 (CONDITIONAL GO)
- routing_strategy_template_design: 路由策略模板 (CONDITIONAL GO)
- sso_saml_technical_research: SSO/SAML调研 (CONDITIONAL GO)
- compliance_capability_package_design: 合规能力包设计 (CONDITIONAL GO)
## TDD开发成果
- IAM模块: supply-api/internal/iam/ (111个测试)
- 审计日志模块: supply-api/internal/audit/ (40+测试)
- 路由策略模块: gateway/internal/router/ (33+测试)
- 合规能力包: gateway/internal/compliance/ + scripts/ci/compliance/
## 规范文档
- parallel_agent_output_quality_standards: 并行Agent产出质量规范
- project_experience_summary: 项目经验总结 (v2)
- 2026-04-02-p1-p2-tdd-execution-plan: TDD执行计划
## 评审报告
- 5个CONDITIONAL GO设计文档评审报告
- fix_verification_report: 修复验证报告
- full_verification_report: 全面质量验证报告
- tdd_module_quality_verification: TDD模块质量验证
- tdd_execution_summary: TDD执行总结
依据: Superpowers执行框架 + TDD规范
2026-04-02 23:35:53 +08:00
Your Name
ed0961d486
fix(supply-api): 修复编译错误和测试问题
...
- 添加 ErrNotFound 和 ErrConcurrencyConflict 错误定义
- 修复 pgx.NullTime 替换为 *time.Time
- 修复 db.go 事务类型 (pgx.Tx vs pgxpool.Tx)
- 移除未使用的导入和变量
- 修复 NewSupplyAPI 调用参数
- 修复中间件链路 handler 类型问题
- 修复适配器类型引用 (storage.InMemoryAccountStore 等)
- 所有测试通过
Test: go test ./...
2026-04-01 13:03:44 +08:00
Your Name
e5c699c6b2
feat(supply-api): add database migration script
...
- Add migrate.sh for sequential database migrations
- Migration order: platform_core -> supply_schema -> patch -> idempotency
- Support env var configuration for DB connection
2026-04-01 11:52:24 +08:00
Your Name
ecb5fad1c9
feat(supply-api): 完善domain层和main入口
...
修改内容:
- cmd/supply-api/main.go: 完善HTTP API入口和路由配置
- go.mod: 更新依赖版本
- domain/account.go: 完善账户领域模型
- domain/package.go: 完善套餐领域模型
- domain/settlement.go: 完善结算领域模型
这些是supply-api的核心domain层实现
2026-04-01 08:53:47 +08:00
Your Name
0196ee5d47
feat(supply-api): 完成核心模块实现
...
新增/修改内容:
- config: 添加配置管理(config.example.yaml, config.go)
- cache: 添加Redis缓存层(redis.go)
- domain: 添加invariants不变量验证及测试
- middleware: 添加auth认证和idempotency幂等性中间件及测试
- repository: 添加完整数据访问层(account, package, settlement, idempotency, db)
- sql: 添加幂等性表DDL脚本
代码覆盖:
- auth middleware实现凭证边界验证
- idempotency middleware实现请求幂等性
- invariants实现业务不变量检查
- repository层实现完整的数据访问逻辑
关联issue: Round-1 R1-ISSUE-006 凭证边界硬门禁
2026-04-01 08:53:28 +08:00
Your Name
e9338dec28
feat: sync lijiaoqiao implementation and staging validation artifacts
2026-03-31 13:40:00 +08:00