Your Name
fc3c1fe0a8
docs(gates): consolidate legacy tok archives
2026-04-14 07:26:28 +08:00
Your Name
ec62c801d8
docs(gates): admit verified 2026-04 snapshots
2026-04-13 21:47:19 +08:00
Your Name
e54cba9feb
docs(gates): admit local staging evidence
2026-04-13 21:45:35 +08:00
Your Name
af3b9943be
chore(cleanup): resolve pending supply-api files
2026-04-13 21:20:24 +08:00
Your Name
ecdead0a03
docs(plan): define gate archive admission roadmap
2026-04-13 21:15:32 +08:00
Your Name
24e85cab43
docs(gates): backfill archive csv snapshots
2026-04-13 21:07:26 +08:00
Your Name
9ad3980ae2
docs(gates): add root archive index
2026-04-13 21:03:44 +08:00
Your Name
10d79be2c3
docs(cleanup): add committable cleanup plan
2026-04-13 20:31:05 +08:00
Your Name
73eac84361
docs: 验证所有PRD对齐问题
...
验证结果:
- TASK-32: INV-SET-003 金额平衡 ✅ 已实现
- TASK-33: Outbox 消费幂等 ✅ FOR UPDATE SKIP LOCKED
- TASK-34: 分区清理任务 ✅ 后台goroutine每小时运行
- TASK-35: Idempotency-Key ✅ middleware正确实现
结论: PRD对齐问题已全部验证通过
2026-04-09 22:44:57 +08:00
Your Name
da385ee744
fix: P0-02 修复提现竞态条件
...
使用 SELECT ... FOR UPDATE SKIP LOCKED 实现原子化提现创建
问题:
- HasPendingOrProcessingWithdraw 和 CreateInTx 分开调用导致竞态
- 两个并发请求可能同时通过检查并创建提现
解决方案:
- 新增 CreateWithdrawTx 方法,先锁定 pending 记录再检查插入
- 使用 FOR UPDATE SKIP LOCKED 防止并发插入
涉及文件:
- internal/repository/settlement.go: 新增 CreateWithdrawTx
- internal/adapter/adapter.go: 实现 CreateWithdrawTx
- internal/domain/settlement.go: 使用 CreateWithdrawTx
- internal/storage/store.go: 实现内存存储版本
- sql/postgresql/settlement_withdraw_constraint_v1.sql: 文档说明
测试: go test -short ./... 通过
2026-04-09 22:16:08 +08:00
Your Name
2012e23278
feat: 更新TDD任务清单并验证所有安全问题
...
- TASK-25: domain覆盖率已达72.0% (目标70%+)
- TASK-27: DSN密码设计安全验证完成
- 确认请求超时中间件已正确实现
- 所有go vet问题已修复
剩余未解决项:
- SEC-005: 开发模式鉴权禁用(设计决定)
- SEC-010: TokenCache多实例(需Redis)
2026-04-09 20:44:11 +08:00
Your Name
e9523ea7a3
fix: 修复验证报告SEC-001和SEC-003安全问题
...
SEC-001: 移除硬编码"123456"测试码
- 修改DefaultSMSVerifier.Verify返回错误,强制要求配置真实SMS服务
- 添加ErrSMSServiceNotConfigured错误定义
- 更新相关测试使用mock SMS verifier
SEC-003: 添加IP欺骗防护
- AuthConfig添加TrustedProxies配置项
- getClientIP添加可信代理验证参数
- 仅在请求来自可信代理时信任X-Forwarded-For头
- 添加isTrustedProxy和containsCIDR辅助函数
架构重构:
- 创建internal/adapter包,包含存储适配器
- 创建internal/outbox包,包含OutboxProcessorRunner
- 创建internal/compensation包,包含补偿执行器
- main.go从891行减少到349行
TDD方法:
- 为每个修复编写测试用例
- 测试通过后再提交代码
2026-04-09 20:28:23 +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
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