thread-master/docs/product/brand-product-radar/tasks/T774-product-match-race-met...

47 lines
1.2 KiB
Markdown
Raw Permalink Normal View History

2026-08-13 02:22:24 +00:00
# T774 — product match race metering regression
> Status: `todo`
> Milestone: `M7` · Phase D
> Kind: `test` · Est. change: `~190 lines`
## Goal
證明多 worker重試不重複 ProductMatch 或 AI 計費Sweep counters 與實際資料可對帳。
## Depends on
- T770T773
## Inputs
- radar worker/sweep/repository/usage fake harness
- `../spec.md` §4.2、§5.5、§8、驗收 #12
## Outputs
| 路徑 | 動作 | 說明 |
|------|------|------|
| `apps/backend/internal/module/radar/usecase/product_race_meter_test.go` | add | same/different product worker race、retry |
| `apps/backend/internal/module/radar/usecase/sweep_counter_test.go` | edit/add | evaluated/merged/rejected/truncated reconciliation |
| usage integration tests | edit | `radar.product_fit` exactly-once semantics |
## Behavior
-`(opportunity, product)` 最多一次適配計費。
- 不同 Product 可各計一次但仍一 Opportunity。
- job guarded update、Redis lock value=workerID 規則不變。
## Out of scope
- 真 AIThreads 網路壓測
- 新 usage meter
## Acceptance
- [ ] race detector 綠資料筆數counterusage records 對帳。
```bash
cd apps/backend && go test ./internal/module/radar/... ./internal/module/usage/... -race -count=1
```