56 lines
1.4 KiB
Markdown
56 lines
1.4 KiB
Markdown
|
|
# T811 — mock review state repository
|
|||
|
|
|
|||
|
|
> Status: `done`
|
|||
|
|
> Milestone: `M1`
|
|||
|
|
> Est. change: `~180 lines`
|
|||
|
|
|
|||
|
|
## Goal
|
|||
|
|
|
|||
|
|
完成後 mock repository 可對 pending/completed/removed 做完成、移除、復原與 tombstone 再命中,且所有操作零點數。
|
|||
|
|
|
|||
|
|
## Depends on
|
|||
|
|
|
|||
|
|
- T801、T810
|
|||
|
|
|
|||
|
|
## Inputs
|
|||
|
|
|
|||
|
|
- `apps/web/src/data/mock/radarRepo.ts`
|
|||
|
|
- `apps/web/src/data/fixtures/**`
|
|||
|
|
- Spec §3.1–§3.3、驗收 #2–#4
|
|||
|
|
|
|||
|
|
## Outputs
|
|||
|
|
|
|||
|
|
### 程式變更(預期路徑)
|
|||
|
|
|
|||
|
|
| 路徑 | 動作 | 說明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| `apps/web/src/data/mock/radarRepo.ts` | edit | review state transition、reason、previous state、tombstone |
|
|||
|
|
| `apps/web/src/data/mock/radarRepo.test.ts` | add/edit | idempotency、復原與不扣點測試 |
|
|||
|
|
| `apps/web/src/data/fixtures/radarInbox.ts` | add | inbox 固定資料集 |
|
|||
|
|
|
|||
|
|
### 行為變更
|
|||
|
|
|
|||
|
|
- removed 再次命中只更新 matched metadata,不建立第二張卡、不恢復、不重判。
|
|||
|
|
|
|||
|
|
### API / 契約(若有)
|
|||
|
|
|
|||
|
|
- Mock method 形狀與 T800 的 review-state API 一致。
|
|||
|
|
|
|||
|
|
## Out of scope
|
|||
|
|
|
|||
|
|
- 不做 live repository、不做 AI 調校。
|
|||
|
|
|
|||
|
|
## Acceptance
|
|||
|
|
|
|||
|
|
- [x] 完成、移除、復原、重送操作結果穩定。
|
|||
|
|
- [x] 所有 review 操作 credits_used 維持 0(mock repository 不產生計點事件)。
|
|||
|
|
- [ ] 指令:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd apps/web && npm run test -- radarRepo
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Notes
|
|||
|
|
|
|||
|
|
移除原因 `other` 必須要求 note;duplicate target 必須同 owner。
|