docs(local-llm): Rich Features PRD rev 2 — comprehensive review + expansion
Review findings addressed (20+ issues):
Structure additions:
- Target Users section with 5 personas (solo dev, tinkerer, privacy pro, writer, power user)
- Non-Goals section (8 explicit out-of-scope items for v4)
- Risks & Mitigations table (10 risks with impact/likelihood/mitigation)
- New API Routes section (4 new routes with security notes)
- Settings Expansion section (full tree: General, Router, Models, Input, Tasks, Data, About)
- New Dependencies table (idb ~1KB, fuse.js ~6KB, cron-parser ~3KB)
- Error Handling appendix (12 edge cases with expected behavior)
Data model fixes:
- Conversation/Message split into separate IndexedDB stores (scalability)
- Message gets conversationId FK, promptTokens field, size/language on Attachment
- Design decision note explaining why messages are stored separately
Feature spec improvements:
- 3.1 Conversations: context window management (token bar, auto-summarize at 80/95%)
- 3.2 Quick Actions: expanded Cmd+K palette spec (5 result types, ranking)
- 3.3 Agents: tools marked v4 vs v5, duplicate-from-builtin, unlink on delete
- 3.4 Model Router: full resolveModel() with 4-level fallback chain + availability
- 3.5 Multi-Modal: attachment size limits, Whisper error handling
- 3.6 Response: hover-only action bars, rating aggregation per task type
- 3.7 Cron: built-in templates table, runtime constraints, security (execFile)
- 3.8 Orchestration: full data model, chain/race/vote UI specs, step limits
- 3.9 Projects: system context detail, project stats, unlink behavior
Acceptance criteria added to ALL 9 features (was missing on 5).
Competitive analysis expanded with local competitors (Open WebUI, LM Studio, Jan.ai).
Success metrics improved with measurement methodology and rationale.
Open questions restructured as decision table with recommendations.
IndexedDB schema with explicit indexes and compound keys.
Migration strategy: 7-step v3→v4 with safety (no delete until confirmed).
681 lines → 1149 lines (+69% content)