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:
saravanakumardb1 2026-02-19 23:30:11 -08:00
parent 07d391101a
commit 3dc0c441a9

View File

@ -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
---