57 lines
1.6 KiB
Markdown
57 lines
1.6 KiB
Markdown
# T060 — Live Run repository mapping
|
||
|
||
> Status: `done`
|
||
> Milestone: `M6`
|
||
> Est. change: `~170 lines`
|
||
|
||
## Goal
|
||
|
||
完成後,前端 live ScoutRepo 能正確呼叫 run APIs、映射 pagination/counters/times 並保留舊 listPosts。
|
||
|
||
## Depends on
|
||
|
||
- T020、T034、T052
|
||
|
||
## Inputs
|
||
|
||
- 讀取 / 依賴:
|
||
- 檔案:`apps/web/src/data/live/m5Repos.ts`、`apps/web/src/data/repos.ts`
|
||
- 既有能力 / API:apiRequest、mapScoutPost、query helpers
|
||
- Spec 段落:§5.1、§5.2
|
||
|
||
## Outputs
|
||
|
||
### 程式變更(預期路徑)
|
||
|
||
| 路徑 | 動作 | 說明 |
|
||
|------|------|------|
|
||
| `apps/web/src/data/live/m5Repos.ts` | edit | mapScoutRun,實作 listRuns/listRunPosts/removeRun,scan 映射 run。 |
|
||
| `apps/web/src/data/live/m5Repos.test.ts` | add/edit | 驗證 URL/query/envelope、unknown time、shortfall 與 error propagation。 |
|
||
|
||
### 行為變更
|
||
|
||
- live list 呼叫只取得目前頁;HTTP 錯誤不轉成成功空 page。
|
||
|
||
### API / 契約(若有)
|
||
|
||
- page/pageSize 使用 camelCase;path run ID encode;時間原樣映射供顯示。
|
||
|
||
## Out of scope
|
||
|
||
- 不重寫 apiRequest、不移除 listPosts。
|
||
|
||
## Acceptance
|
||
|
||
- [x] request/response mapping 與 mock ScoutRepo contract tests 等價。
|
||
- [x] 指令:
|
||
|
||
```bash
|
||
cd apps/web && npm test -- src/data/live/m5Repos.test.ts
|
||
```
|
||
|
||
驗收結果:live ScoutRepo 已實作 runs/run posts 分頁、filter、encoded run path、Run counters/shortfall/時間映射與刪除;HTTP error 直接拋出,舊 listPosts 保留。Live mapping tests 與 web build 通過。
|
||
|
||
## Notes
|
||
|
||
前端不得使用 Number 排序 unix ns;順序完全採 server list。
|