docs(local-llm): mark Sprint 1 items complete in DASHBOARD_REVIEW.md
Check off 9 items (B1, B3, B4, B5, B6, B9, B10, B11, P4) in both
the bug list and sprint tracker. Add commit 2da67c2 to commit log.
This commit is contained in:
parent
2da67c2f74
commit
9a807f64cf
@ -23,22 +23,22 @@
|
||||
|
||||
## 1. Bugs
|
||||
|
||||
- [ ] **B1. Hardcoded machine specs in header** — `page.tsx:317`
|
||||
- [x] **B1. Hardcoded machine specs in header** — `page.tsx:317`
|
||||
Subtitle reads `Apple M4 Pro · 48 GB · {system?.platform}` — should use `system?.chip` and `formatBytes(system?.memory.total)` dynamically so it works on any machine.
|
||||
|
||||
- [ ] **B2. Pull model blocks UI — no progress feedback** — `api/ollama/route.ts:84-92`
|
||||
`handlePull` calls Ollama with `stream: false`. Large models (20+ GB) block for 30+ minutes. The Next.js API route will likely timeout. Must use `stream: true` and pipe progress events to the client. _(Combined with F1.)_
|
||||
|
||||
- [ ] **B3. Dead code: non-streaming `generate` action** — `api/ollama/route.ts:69-82`
|
||||
- [x] **B3. Dead code: non-streaming `generate` action** — `api/ollama/route.ts:69-82`
|
||||
The `action === 'generate'` handler is unused — UI only uses `/api/ollama/stream`. Remove or keep as fallback with a comment.
|
||||
|
||||
- [ ] **B4. Escape key closes modal during active streaming** — `page.tsx:188-197`
|
||||
- [x] **B4. Escape key closes modal during active streaming** — `page.tsx:188-197`
|
||||
Global `keydown` handler calls `setPromptModel(null)` unconditionally. Backdrop click correctly checks `!promptLoading`. Escape should also respect `promptLoading` to prevent discarding an in-flight response.
|
||||
|
||||
- [ ] **B5. Auto-refresh (15s) fires during streaming/pull** — `page.tsx:182-185`
|
||||
- [x] **B5. Auto-refresh (15s) fires during streaming/pull** — `page.tsx:182-185`
|
||||
`setInterval(fetchAll, 15000)` runs unconditionally. During streaming this causes background churn and potential UI flicker. Should pause while `promptLoading` or `pullLoading` is true.
|
||||
|
||||
- [ ] **B6. Toast ID collision on HMR remount** — `page.tsx:156-159`
|
||||
- [x] **B6. Toast ID collision on HMR remount** — `page.tsx:156-159`
|
||||
`toastId.current` resets to 0 on component remount during dev. Use `Date.now()` or `crypto.randomUUID()` for robust uniqueness.
|
||||
|
||||
- [ ] **B7. vm_stat page size hardcoded** — `api/system/route.ts:103`
|
||||
@ -47,13 +47,13 @@
|
||||
- [ ] **B8. Whisper models dir not configurable** — `api/whisper/route.ts:24`
|
||||
Hardcoded to `~/whisper-models`. Should scan multiple known paths (`/opt/homebrew/share/whisper-cpp/models/`, `~/whisper-models`, `~/.cache/whisper/`) or accept `WHISPER_MODELS_DIR` env var.
|
||||
|
||||
- [ ] **B9. No AbortController for streaming fetch** — `page.tsx:250-289`
|
||||
- [x] **B9. No AbortController for streaming fetch** — `page.tsx:250-289`
|
||||
Closing the prompt modal doesn't cancel the underlying fetch. The `reader.read()` loop continues in the background wasting CPU/bandwidth until the model finishes generating.
|
||||
|
||||
- [ ] **B10. Brew shows "Loading..." when array is empty** — `page.tsx:936-940`
|
||||
- [x] **B10. Brew shows "Loading..." when array is empty** — `page.tsx:936-940`
|
||||
When `system.brewPackages` is `[]` (all uninstalled), displays "Loading..." instead of "No packages found". Needs to distinguish "still fetching" vs "fetched but empty".
|
||||
|
||||
- [ ] **B11. Prompt text not cleared on close without send** — `page.tsx:951-957`
|
||||
- [x] **B11. Prompt text not cleared on close without send** — `page.tsx:951-957`
|
||||
Backdrop click clears `promptText`, but Escape handler (B4 fix) should also clear it. Otherwise stale text persists when re-opening.
|
||||
|
||||
---
|
||||
@ -147,7 +147,7 @@
|
||||
- [ ] **P3. `du -sk ~/.ollama/models` on every refresh** — `api/system/route.ts:41`
|
||||
Traverses entire models directory every 15 seconds. Cache with 60-second TTL.
|
||||
|
||||
- [ ] **P4. No fetch timeout on Ollama calls** — `api/ollama/route.ts:5-12`
|
||||
- [x] **P4. No fetch timeout on Ollama calls** — `api/ollama/route.ts:5-12`
|
||||
`fetchOllama` has no `AbortSignal` or timeout. If Ollama hangs, the dashboard hangs. Add 5-second timeout.
|
||||
|
||||
- [ ] **P5. `system_profiler` slow on first load** — `api/system/route.ts:52-53`
|
||||
@ -172,17 +172,17 @@
|
||||
|
||||
### Sprint 1 — Critical Bug Fixes _(est. 1–2 hrs)_
|
||||
|
||||
| # | ID | Task | Effort | Commit |
|
||||
| --- | --------- | ----------------------------------------- | ------ | ------ |
|
||||
| 1 | - [ ] B4 | Guard Escape key during streaming | 5 min | |
|
||||
| 2 | - [ ] B5 | Pause auto-refresh during prompt/pull | 10 min | |
|
||||
| 3 | - [ ] B9 | Add AbortController to streaming fetch | 15 min | |
|
||||
| 4 | - [ ] B1 | Dynamic chip/RAM in header | 5 min | |
|
||||
| 5 | - [ ] B11 | Clear prompt text on Escape close | 5 min | |
|
||||
| 6 | - [ ] P4 | Add timeout to Ollama fetch calls | 10 min | |
|
||||
| 7 | - [ ] B3 | Remove dead generate action (or document) | 5 min | |
|
||||
| 8 | - [ ] B6 | Use Date.now() for toast IDs | 2 min | |
|
||||
| 9 | - [ ] B10 | Fix brew "Loading..." vs "empty" state | 5 min | |
|
||||
| # | ID | Task | Effort | Commit |
|
||||
| --- | --------- | ----------------------------------------- | ------ | --------- |
|
||||
| 1 | - [x] B4 | Guard Escape key during streaming | 5 min | `2da67c2` |
|
||||
| 2 | - [x] B5 | Pause auto-refresh during prompt/pull | 10 min | `2da67c2` |
|
||||
| 3 | - [x] B9 | Add AbortController to streaming fetch | 15 min | `2da67c2` |
|
||||
| 4 | - [x] B1 | Dynamic chip/RAM in header | 5 min | `2da67c2` |
|
||||
| 5 | - [x] B11 | Clear prompt text on Escape close | 5 min | `2da67c2` |
|
||||
| 6 | - [x] P4 | Add timeout to Ollama fetch calls | 10 min | `2da67c2` |
|
||||
| 7 | - [x] B3 | Remove dead generate action (or document) | 5 min | `2da67c2` |
|
||||
| 8 | - [x] B6 | Use Date.now() for toast IDs | 2 min | `2da67c2` |
|
||||
| 9 | - [x] B10 | Fix brew "Loading..." vs "empty" state | 5 min | `2da67c2` |
|
||||
|
||||
### Sprint 2 — Pull Progress + Metrics _(est. 2–3 hrs)_
|
||||
|
||||
@ -243,9 +243,9 @@
|
||||
|
||||
_Commits will be added here as work progresses._
|
||||
|
||||
| # | Date | Commit | Sprint | Items Completed |
|
||||
| --- | ---- | ------ | ------ | --------------- |
|
||||
| 1 | | | | |
|
||||
| # | Date | Commit | Sprint | Items Completed |
|
||||
| --- | ------ | --------- | -------- | ------------------------------------ |
|
||||
| 1 | Feb 19 | `2da67c2` | Sprint 1 | B1, B3, B4, B5, B6, B9, B10, B11, P4 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user