57 lines
1.3 KiB
Markdown
57 lines
1.3 KiB
Markdown
|
|
# T014 — 新批次提示與刪除收斂
|
|||
|
|
|
|||
|
|
> Status: `done`
|
|||
|
|
> Milestone: `M1`
|
|||
|
|
> Est. change: `~150 lines`
|
|||
|
|
|
|||
|
|
## Goal
|
|||
|
|
|
|||
|
|
完成後,背景 job 更新不會打斷目前閱讀位置,刪除 run/post 後也不會停在失效空白頁。
|
|||
|
|
|
|||
|
|
## Depends on
|
|||
|
|
|
|||
|
|
- T013
|
|||
|
|
|
|||
|
|
## Inputs
|
|||
|
|
|
|||
|
|
- 讀取 / 依賴:
|
|||
|
|
- 檔案:`apps/web/src/pages/ScoutPage.tsx`、`apps/web/src/data/JobLiveContext.tsx`
|
|||
|
|
- 既有能力 / API:jobsRevision、removeRun、removePost
|
|||
|
|
- Spec 段落:§4 流程 D/F、§9 #12–#15
|
|||
|
|
|
|||
|
|
## Outputs
|
|||
|
|
|
|||
|
|
### 程式變更(預期路徑)
|
|||
|
|
|
|||
|
|
| 路徑 | 動作 | 說明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| `apps/web/src/pages/ScoutPage.tsx` | edit | 加入新批次提示、主動 refresh、刪除後頁碼與選取收斂。 |
|
|||
|
|
| `apps/web/src/pages/ScoutPage.test.tsx` | edit | 驗證 job revision 不跳頁、run/post 刪除最後項目。 |
|
|||
|
|
|
|||
|
|
### 行為變更
|
|||
|
|
|
|||
|
|
- job 完成只提示;使用者主動刷新才更新 run page。
|
|||
|
|
|
|||
|
|
### API / 契約(若有)
|
|||
|
|
|
|||
|
|
- running run 的 409 不得當成刪除成功。
|
|||
|
|
|
|||
|
|
## Out of scope
|
|||
|
|
|
|||
|
|
- 不改 jobs 全域列表或取消流程。
|
|||
|
|
|
|||
|
|
## Acceptance
|
|||
|
|
|
|||
|
|
- [x] 新 run 完成後目前 run/page/current post 保持不變。
|
|||
|
|
- [ ] 指令:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd apps/web && npm test -- src/pages/ScoutPage.test.tsx
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
驗收結果:`npm run build`、ScoutPage 2 tests passed。
|
|||
|
|
|
|||
|
|
## Notes
|
|||
|
|
|
|||
|
|
空頁收斂以 server 新 total 計算,不以樂觀 list.length 猜測。
|