docs(local-llm): mark all roadmap phases 1-6 complete with commit links
All 27 roadmap items + 5 bugs checked off across 6 phases: - Phase 1 (040013e): N1-N3, BN1, BN2, BN5 - Phase 2 (7f04297): N4-N5, BN3, BN4 - Phase 3 (6f6baf9): N6-N10 - Phase 4 (588d21c): N11-N14 - Phase 5 (44ad8a6): F24-F28 - Phase 6 (07d3911): F29-F31
This commit is contained in:
parent
07d391101a
commit
3dc0c441a9
@ -19,19 +19,19 @@ Transform the dashboard from a model management tool into a **model intelligence
|
||||
|
||||
Issues discovered by cross-referencing the roadmap against the actual codebase (`page.tsx` ~1,885 lines):
|
||||
|
||||
- [ ] **BN1. Compare buttons show unloaded models** — `page.tsx:1809`
|
||||
- [x] **BN1. Compare buttons show unloaded models** — `040013e` — `page.tsx:1809`
|
||||
`ollama.models.filter(m => m.name !== promptModel)` shows ALL installed models for comparison, but unloaded models can't generate responses. Should filter to `ollama.running` only, or show a "load first" indicator.
|
||||
|
||||
- [ ] **BN2. No AbortController on compare stream** — `page.tsx:236-274`
|
||||
- [x] **BN2. No AbortController on compare stream** — `040013e` — `page.tsx:236-274`
|
||||
`handleCompare` fetches `/api/ollama/stream` but doesn't use an abort controller. Closing the prompt modal during comparison doesn't cancel the stream — it continues in the background wasting resources.
|
||||
|
||||
- [ ] **BN3. Chat messages lost on modal close** — `page.tsx:1524-1530`
|
||||
- [x] **BN3. Chat messages lost on modal close** — `7f04297` — `page.tsx:1524-1530`
|
||||
Closing the prompt modal clears `promptResponse` and `promptText` but does not persist `chatMessages`. Re-opening the modal starts a fresh conversation. Multi-turn history is discarded.
|
||||
|
||||
- [ ] **BN4. Logs panel has no refresh** — `page.tsx:1476-1517`
|
||||
- [x] **BN4. Logs panel has no refresh** — `7f04297` — `page.tsx:1476-1517`
|
||||
The Ollama logs panel fetches once on open (`fetchLogs` on toggle). There's no refresh button — the only way to see new logs is to close and re-open the panel.
|
||||
|
||||
- [ ] **BN5. Delete confirmation doesn't show reclaim size** — `page.tsx:1121-1153`
|
||||
- [x] **BN5. Delete confirmation doesn't show reclaim size** — `040013e` — `page.tsx:1121-1153`
|
||||
Delete confirmation exists (two-step flow via `deleteConfirm` state) but only shows "Delete this model?" without the disk reclaim amount. N14 in the roadmap was marked as new, but the dialog already exists — it just needs `formatBytes(model.size)` added.
|
||||
|
||||
---
|
||||
@ -42,14 +42,14 @@ Issues discovered by cross-referencing the roadmap against the actual codebase (
|
||||
|
||||
**Estimated effort:** ~60 minutes
|
||||
|
||||
| # | ID | Task | Status | Priority | Notes |
|
||||
| --- | --- | ---------------------------------- | ------ | -------- | ------------------------------------------------------------ |
|
||||
| 1 | N1 | Estimated RAM per model | - [ ] | High | Show `~22 GB RAM` on every model card, not just running ones |
|
||||
| 2 | N2 | "Will it fit?" indicator | - [ ] | High | 🟢 Fits / 🟡 Tight / 🔴 Won't fit, on Load button |
|
||||
| 3 | N3 | Aggregate loaded model RAM | - [ ] | High | Sum VRAM at top of panel: "2 loaded · 28.5 GB VRAM" |
|
||||
| 4 | BN1 | Fix compare to show loaded only | - [ ] | High | Filter compare buttons to `ollama.running` models |
|
||||
| 5 | BN2 | Add AbortController to compare | - [ ] | High | Cancel compare stream on modal close |
|
||||
| 6 | BN5 | Show reclaim size in delete dialog | - [ ] | Medium | Add `formatBytes(model.size)` to existing confirmation |
|
||||
| # | ID | Task | Status | Priority | Notes |
|
||||
| --- | --- | ---------------------------------- | --------------- | -------- | ------------------------------------------------------------ |
|
||||
| 1 | N1 | Estimated RAM per model | - [x] `040013e` | High | Show `~22 GB RAM` on every model card, not just running ones |
|
||||
| 2 | N2 | "Will it fit?" indicator | - [x] `040013e` | High | 🟢 Fits / 🟡 Tight / 🔴 Won't fit, on Load button |
|
||||
| 3 | N3 | Aggregate loaded model RAM | - [x] `040013e` | High | Sum VRAM at top of panel: "2 loaded · 28.5 GB VRAM" |
|
||||
| 4 | BN1 | Fix compare to show loaded only | - [x] `040013e` | High | Filter compare buttons to `ollama.running` models |
|
||||
| 5 | BN2 | Add AbortController to compare | - [x] `040013e` | High | Cancel compare stream on modal close |
|
||||
| 6 | BN5 | Show reclaim size in delete dialog | - [x] `040013e` | Medium | Add `formatBytes(model.size)` to existing confirmation |
|
||||
|
||||
**Implementation details:**
|
||||
|
||||
@ -78,13 +78,13 @@ Issues discovered by cross-referencing the roadmap against the actual codebase (
|
||||
|
||||
**Acceptance criteria:**
|
||||
|
||||
- [ ] Every model card shows estimated RAM requirement with quant-aware multiplier
|
||||
- [ ] Load button has a color-coded fit indicator with tooltip
|
||||
- [ ] Panel header shows total VRAM of loaded models
|
||||
- [ ] Compare buttons only show loaded models
|
||||
- [ ] Compare stream is abortable
|
||||
- [ ] Delete dialog shows disk reclaim amount
|
||||
- [ ] TypeScript compiles cleanly
|
||||
- [x] Every model card shows estimated RAM requirement with quant-aware multiplier
|
||||
- [x] Load button has a color-coded fit indicator with tooltip
|
||||
- [x] Panel header shows total VRAM of loaded models
|
||||
- [x] Compare buttons only show loaded models
|
||||
- [x] Compare stream is abortable
|
||||
- [x] Delete dialog shows disk reclaim amount
|
||||
- [x] TypeScript compiles cleanly
|
||||
|
||||
---
|
||||
|
||||
@ -94,12 +94,12 @@ Issues discovered by cross-referencing the roadmap against the actual codebase (
|
||||
|
||||
**Estimated effort:** ~75 minutes
|
||||
|
||||
| # | ID | Task | Status | Priority | Notes |
|
||||
| --- | --- | ------------------------- | ------ | -------- | -------------------------------------------------- |
|
||||
| 7 | N4 | RAM budget bar | - [ ] | Medium | Stacked bar: OS+Apps / Models (by name) / Free |
|
||||
| 8 | N5 | Context window size | - [ ] | High | Fetch `context_length` from `/api/show` model_info |
|
||||
| 9 | BN3 | Persist chat messages | - [ ] | Medium | Save to localStorage, restore on modal re-open |
|
||||
| 10 | BN4 | Logs panel refresh button | - [ ] | Low | Add refresh icon next to "Show/Hide Ollama Logs" |
|
||||
| # | ID | Task | Status | Priority | Notes |
|
||||
| --- | --- | ------------------------- | --------------- | -------- | -------------------------------------------------- |
|
||||
| 7 | N4 | RAM budget bar | - [x] `7f04297` | Medium | Stacked bar: OS+Apps / Models (by name) / Free |
|
||||
| 8 | N5 | Context window size | - [x] `7f04297` | High | Fetch `context_length` from `/api/show` model_info |
|
||||
| 9 | BN3 | Persist chat messages | - [x] `7f04297` | Medium | Save to localStorage, restore on modal re-open |
|
||||
| 10 | BN4 | Logs panel refresh button | - [x] `7f04297` | Low | Add refresh icon next to "Show/Hide Ollama Logs" |
|
||||
|
||||
**Implementation details:**
|
||||
|
||||
@ -119,12 +119,12 @@ Issues discovered by cross-referencing the roadmap against the actual codebase (
|
||||
|
||||
**Acceptance criteria:**
|
||||
|
||||
- [ ] RAM budget bar renders with labeled model segments
|
||||
- [ ] Bar updates live when models are loaded/unloaded
|
||||
- [ ] Context window shown for expanded models (fetched lazily)
|
||||
- [ ] Chat history persists across modal close/re-open
|
||||
- [ ] Logs panel has a refresh button
|
||||
- [ ] TypeScript compiles cleanly
|
||||
- [x] RAM budget bar renders with labeled model segments
|
||||
- [x] Bar updates live when models are loaded/unloaded
|
||||
- [x] Context window shown for expanded models (fetched lazily)
|
||||
- [x] Chat history persists across modal close/re-open
|
||||
- [x] Logs panel has a refresh button
|
||||
- [x] TypeScript compiles cleanly
|
||||
|
||||
---
|
||||
|
||||
@ -134,13 +134,13 @@ Issues discovered by cross-referencing the roadmap against the actual codebase (
|
||||
|
||||
**Estimated effort:** ~60 minutes
|
||||
|
||||
| # | ID | Task | Status | Priority | Notes |
|
||||
| --- | --- | ----------------------- | ------ | -------- | -------------------------------------------------------------------- |
|
||||
| 11 | N6 | `<think>` warning badge | - [ ] | High | DeepSeek R1 models emit reasoning traces — warn about JSON stripping |
|
||||
| 12 | N7 | Vision model indicator | - [ ] | Medium | Multimodal models need image input |
|
||||
| 13 | N8 | Architecture badge | - [ ] | Low | Show model arch as pill on card (currently in expanded only) |
|
||||
| 14 | N9 | Sort/order models | - [ ] | Medium | Dropdown: name, size, parameters, running, modified |
|
||||
| 15 | N10 | Ollama version display | - [ ] | Low | Show Ollama server version in status card |
|
||||
| # | ID | Task | Status | Priority | Notes |
|
||||
| --- | --- | ----------------------- | --------------- | -------- | -------------------------------------------------------------------- |
|
||||
| 11 | N6 | `<think>` warning badge | - [x] `6f6baf9` | High | DeepSeek R1 models emit reasoning traces — warn about JSON stripping |
|
||||
| 12 | N7 | Vision model indicator | - [x] `6f6baf9` | Medium | Multimodal models need image input |
|
||||
| 13 | N8 | Architecture badge | - [x] `6f6baf9` | Low | Show model arch as pill on card (currently in expanded only) |
|
||||
| 14 | N9 | Sort/order models | - [x] `6f6baf9` | Medium | Dropdown: name, size, parameters, running, modified |
|
||||
| 15 | N10 | Ollama version display | - [x] `6f6baf9` | Low | Show Ollama server version in status card |
|
||||
|
||||
**Implementation details:**
|
||||
|
||||
@ -173,12 +173,12 @@ Issues discovered by cross-referencing the roadmap against the actual codebase (
|
||||
|
||||
**Acceptance criteria:**
|
||||
|
||||
- [ ] DeepSeek R1 (and distilled) models show `<think>` warning badge
|
||||
- [ ] Vision models show eye indicator
|
||||
- [ ] Family/architecture shown as pill on all model cards
|
||||
- [ ] Models sortable by 5 criteria, sort persisted in localStorage
|
||||
- [ ] Ollama version displayed in stats card
|
||||
- [ ] TypeScript compiles cleanly
|
||||
- [x] DeepSeek R1 (and distilled) models show `<think>` warning badge
|
||||
- [x] Vision models show eye indicator
|
||||
- [x] Family/architecture shown as pill on all model cards
|
||||
- [x] Models sortable by 5 criteria, sort persisted in localStorage
|
||||
- [x] Ollama version displayed in stats card
|
||||
- [x] TypeScript compiles cleanly
|
||||
|
||||
---
|
||||
|
||||
@ -188,12 +188,12 @@ Issues discovered by cross-referencing the roadmap against the actual codebase (
|
||||
|
||||
**Estimated effort:** ~45 minutes
|
||||
|
||||
| # | ID | Task | Status | Priority | Notes |
|
||||
| --- | --- | ----------------------------- | ------ | -------- | -------------------------------------------------------- |
|
||||
| 16 | N11 | Last known tok/s per model | - [ ] | Medium | Persist after prompt, show on card |
|
||||
| 17 | N12 | Auto-unload countdown | - [ ] | Medium | Live countdown instead of static expiry time |
|
||||
| 18 | N13 | Session stats per model | - [ ] | Low | Prompts sent + tokens generated in this session |
|
||||
| 19 | N14 | Simultaneous load suggestions | - [ ] | Low | Suggest which models fit together based on available RAM |
|
||||
| # | ID | Task | Status | Priority | Notes |
|
||||
| --- | --- | ----------------------------- | --------------- | -------- | -------------------------------------------------------- |
|
||||
| 16 | N11 | Last known tok/s per model | - [x] `588d21c` | Medium | Persist after prompt, show on card |
|
||||
| 17 | N12 | Auto-unload countdown | - [x] `588d21c` | Medium | Live countdown instead of static expiry time |
|
||||
| 18 | N13 | Session stats per model | - [x] `588d21c` | Low | Prompts sent + tokens generated in this session |
|
||||
| 19 | N14 | Simultaneous load suggestions | - [x] `588d21c` | Low | Suggest which models fit together based on available RAM |
|
||||
|
||||
**Implementation details:**
|
||||
|
||||
@ -218,11 +218,11 @@ Issues discovered by cross-referencing the roadmap against the actual codebase (
|
||||
|
||||
**Acceptance criteria:**
|
||||
|
||||
- [ ] Previously benchmarked models show tok/s on card
|
||||
- [ ] Running models show live countdown to auto-unload
|
||||
- [ ] Session stats shown in expanded model details
|
||||
- [ ] Suggestions shown for co-loadable models
|
||||
- [ ] TypeScript compiles cleanly
|
||||
- [x] Previously benchmarked models show tok/s on card
|
||||
- [x] Running models show live countdown to auto-unload
|
||||
- [x] Session stats shown in expanded model details
|
||||
- [x] Suggestions shown for co-loadable models
|
||||
- [x] TypeScript compiles cleanly
|
||||
|
||||
---
|
||||
|
||||
@ -232,13 +232,13 @@ Issues discovered by cross-referencing the roadmap against the actual codebase (
|
||||
|
||||
**Estimated effort:** ~90 minutes
|
||||
|
||||
| # | ID | Task | Status | Priority | Notes |
|
||||
| --- | --- | ------------------------------- | ------ | -------- | ----------------------------------------------------------- |
|
||||
| 20 | F24 | Image upload for vision models | - [ ] | High | Add image input when vision model is active |
|
||||
| 21 | F25 | Markdown rendering in responses | - [ ] | High | Render markdown (headers, lists, bold, code) instead of raw |
|
||||
| 22 | F26 | Code syntax highlighting | - [ ] | Medium | Highlight code blocks in responses with language detection |
|
||||
| 23 | F27 | `<think>` block auto-collapse | - [ ] | Medium | Detect and collapse reasoning traces, show "Show reasoning" |
|
||||
| 24 | F28 | Ollama model library link | - [ ] | Low | Link to ollama.com/library in the pull input placeholder |
|
||||
| # | ID | Task | Status | Priority | Notes |
|
||||
| --- | --- | ------------------------------- | --------------- | -------- | ----------------------------------------------------------- |
|
||||
| 20 | F24 | Image upload for vision models | - [x] `44ad8a6` | High | Add image input when vision model is active |
|
||||
| 21 | F25 | Markdown rendering in responses | - [x] `44ad8a6` | High | Render markdown (headers, lists, bold, code) instead of raw |
|
||||
| 22 | F26 | Code syntax highlighting | - [x] `44ad8a6` | Medium | Highlight code blocks in responses with language detection |
|
||||
| 23 | F27 | `<think>` block auto-collapse | - [x] `44ad8a6` | Medium | Detect and collapse reasoning traces, show "Show reasoning" |
|
||||
| 24 | F28 | Ollama model library link | - [x] `44ad8a6` | Low | Link to ollama.com/library in the pull input placeholder |
|
||||
|
||||
**Implementation details:**
|
||||
|
||||
@ -254,11 +254,11 @@ Issues discovered by cross-referencing the roadmap against the actual codebase (
|
||||
|
||||
**Acceptance criteria:**
|
||||
|
||||
- [ ] Vision models show image upload area in prompt modal
|
||||
- [ ] Responses render markdown (headers, lists, code blocks, bold/italic)
|
||||
- [ ] Code blocks have syntax highlighting with language labels
|
||||
- [ ] `<think>` traces are auto-collapsed with "Show reasoning" toggle
|
||||
- [ ] Model library link available near pull input
|
||||
- [x] Vision models show image upload area in prompt modal
|
||||
- [x] Responses render markdown (headers, lists, bold, code blocks, bold/italic)
|
||||
- [x] Code blocks have syntax highlighting with language labels
|
||||
- [x] `<think>` traces are auto-collapsed with "Show reasoning" toggle
|
||||
- [x] Model library link available near pull input
|
||||
|
||||
---
|
||||
|
||||
@ -268,11 +268,11 @@ Issues discovered by cross-referencing the roadmap against the actual codebase (
|
||||
|
||||
**Estimated effort:** ~45 minutes
|
||||
|
||||
| # | ID | Task | Status | Priority | Notes |
|
||||
| --- | --- | ------------------------------ | ------ | -------- | --------------------------------------------------------- |
|
||||
| 25 | F29 | Export/import settings | - [ ] | Medium | Backup all localStorage data as JSON file |
|
||||
| 26 | F30 | Inference history log | - [ ] | Medium | Persist prompt/response pairs to localStorage with search |
|
||||
| 27 | F31 | Clear all data / factory reset | - [ ] | Low | Single button to clear all localStorage keys + state |
|
||||
| # | ID | Task | Status | Priority | Notes |
|
||||
| --- | --- | ------------------------------ | --------------- | -------- | --------------------------------------------------------- |
|
||||
| 25 | F29 | Export/import settings | - [x] `07d3911` | Medium | Backup all localStorage data as JSON file |
|
||||
| 26 | F30 | Inference history log | - [x] `07d3911` | Medium | Persist prompt/response pairs to localStorage with search |
|
||||
| 27 | F31 | Clear all data / factory reset | - [x] `07d3911` | Low | Single button to clear all localStorage keys + state |
|
||||
|
||||
**Implementation details:**
|
||||
|
||||
@ -284,10 +284,10 @@ Issues discovered by cross-referencing the roadmap against the actual codebase (
|
||||
|
||||
**Acceptance criteria:**
|
||||
|
||||
- [ ] Settings can be exported as JSON and re-imported
|
||||
- [ ] Inference history persists across page refreshes
|
||||
- [ ] Factory reset clears all dashboard state
|
||||
- [ ] TypeScript compiles cleanly
|
||||
- [x] Settings can be exported as JSON and re-imported
|
||||
- [x] Inference history persists across page refreshes
|
||||
- [x] Factory reset clears all dashboard state
|
||||
- [x] TypeScript compiles cleanly
|
||||
|
||||
---
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user