55 lines
1.4 KiB
Markdown
55 lines
1.4 KiB
Markdown
|
|
# T061 — Scout live 載入與完成提示
|
|||
|
|
|
|||
|
|
> Status: `done`
|
|||
|
|
> Milestone: `M6`
|
|||
|
|
> Est. change: `~170 lines`
|
|||
|
|
|
|||
|
|
## Goal
|
|||
|
|
|
|||
|
|
完成後,ScoutPage 使用 live run APIs,job 完成只提示新批次且不下載全部 posts 或打斷目前頁面。
|
|||
|
|
|
|||
|
|
## Depends on
|
|||
|
|
|
|||
|
|
- T014、T060
|
|||
|
|
|
|||
|
|
## Inputs
|
|||
|
|
|
|||
|
|
- 讀取 / 依賴:
|
|||
|
|
- 檔案:`apps/web/src/pages/ScoutPage.tsx`、`JobLiveContext.tsx`
|
|||
|
|
- 既有能力 / API:listRuns、listRunPosts、jobsRevision
|
|||
|
|
- Spec 段落:§4 流程 D/E、§9 #12/#13
|
|||
|
|
|
|||
|
|
## Outputs
|
|||
|
|
|
|||
|
|
### 程式變更(預期路徑)
|
|||
|
|
|
|||
|
|
| 路徑 | 動作 | 說明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| `apps/web/src/pages/ScoutPage.tsx` | edit | 移除剩餘全量 refreshPostsOnJobRevision,接 live page loading 與 new-run banner。 |
|
|||
|
|
| `apps/web/src/pages/ScoutPage.test.tsx` | edit | 以 live-shaped fake 驗證 job 完成、手動 refresh 與選取保持。 |
|
|||
|
|
|
|||
|
|
### 行為變更
|
|||
|
|
|
|||
|
|
- job revision 不自動切批次;running run 顯示進度、不顯示半套 posts。
|
|||
|
|
|
|||
|
|
### API / 契約(若有)
|
|||
|
|
|
|||
|
|
- run result 只在選取 run/page 改變時請求。
|
|||
|
|
|
|||
|
|
## Out of scope
|
|||
|
|
|
|||
|
|
- 不改全域 JobsPage 或 websocket/polling 架構。
|
|||
|
|
|
|||
|
|
## Acceptance
|
|||
|
|
|
|||
|
|
- [x] 監看測試 call log,沒有 listPosts 全量呼叫或非目前 run 的 result request。
|
|||
|
|
- [x] 指令:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd apps/web && npm test -- src/pages/ScoutPage.test.tsx
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Notes
|
|||
|
|
|
|||
|
|
TodayPage 可繼續呼叫舊 listPosts,不在本 task 遷移。
|