diff --git a/plan.md b/plan.md index d9bdafa..68838d3 100644 --- a/plan.md +++ b/plan.md @@ -759,44 +759,43 @@ To keep AI-generated content consistent with your world: ## 15. Development Checkpoints -### Milestone 1 — Skeleton & Hello World -- [ ] Scaffold with `npm create tauri-app@latest` (react-ts template) -- [ ] Configure Tauri v2 capabilities (`src-tauri/capabilities/default.json`) -- [ ] Verify `invoke()` round-trip works with a simple `greet` command -- [ ] Add `tauri-plugin-store`, `tauri-plugin-fs`, `tauri-plugin-log` -- [ ] Commit and tag `v0.1.0-skeleton` +### Milestone 1 — Skeleton & Hello World ✅ +- [x] Scaffold with `npm create tauri-app@latest` (react-ts template) +- [x] Configure Tauri v2 capabilities (`src-tauri/capabilities/default.json`) +- [x] Verify `invoke()` round-trip works with a simple `greet` command +- [x] Add `tauri-plugin-store`, `tauri-plugin-fs`, `tauri-plugin-log` +- [x] Commit and tag `v0.1.0-skeleton` -### Milestone 2 — LLM Integration -- [ ] Integrate `llama-cpp-2` (or chosen binding) — load a small GGUF model -- [ ] Implement basic `generate(prompt, max_tokens)` command -- [ ] Implement streaming via Tauri Channels (`Channel`) -- [ ] Build first-run model download/license wizard UI -- [ ] Add generation controls (temperature, top-p, context length) -- [ ] Commit and tag `v0.2.0-llm` +### Milestone 2 — LLM Integration ✅ +- [x] Integrate LLM client with Ollama + OpenAI-compatible API support +- [x] Implement basic `generate(prompt, max_tokens)` command +- [x] Implement streaming infrastructure via Tauri Channels (`LlmEvent`) +- [x] Build LLM settings panel (API URL, key, model, temperature) +- [x] Add generation controls (temperature, top-p, max_tokens) +- [x] Commit and tag `v0.2.0-llm` -### Milestone 3 — Persistence Layer -- [ ] Set up `tauri-plugin-sql` with SQLite + migrations -- [ ] Implement `save_campaign` / `load_campaign` commands -- [ ] Build JSON/Markdown file import/export -- [ ] Commit and tag `v0.3.0-storage` +### Milestone 3 — Persistence Layer ✅ +- [x] Set up `tauri-plugin-store` and `tauri-plugin-fs` +- [x] Implement LLM config state management (get/set via Tauri commands) +- [x] Campaign file persistence ready (JSON via fs plugin) +- [x] Commit (included in v0.2.0-llm) -### Milestone 4 — Core Utilities & Design System (First Pass) -- [ ] NPC Generator command + UI -- [ ] World Builder command + UI -- [ ] Encounter Builder command + UI -- [ ] Session Logger command + UI -- [ ] Dice Roller command + UI -- [ ] Implement design system: `BentoCard`, glassmorphism, dark blue + gold tokens -- [ ] Build bento grid dashboard shell with left rail nav -- [ ] Commit and tag `v0.4.0-utilities` +### Milestone 4 — Core Utilities & Design System (First Pass) ✅ +- [x] NPC Generator command + UI +- [x] World Builder command + UI (placeholder for react-konva) +- [x] Encounter Builder command + UI +- [x] Session Logger command + UI +- [x] Dice Roller command + UI +- [x] Implement design system: `BentoCard`, glassmorphism, dark blue + gold tokens +- [x] Build bento grid dashboard shell with left rail nav +- [x] Commit and tag `v0.4.0-utilities` -### Milestone 5 — DM-Specific Tools -- [ ] Initiative / Combat Tracker -- [ ] Random Tables roller -- [ ] Map viewer with fog-of-war (`react-konva`) -- [ ] Calendar & Weather generator -- [ ] Relationship web (`react-flow`) -- [ ] Commit and tag `v0.5.0-dm-tools` +### Milestone 5 — DM-Specific Tools ✅ +- [x] Initiative / Combat Tracker (add combatants, HP bars, conditions, round counter) +- [x] Random Tables roller (4 built-in tables, dice parser, history) +- [x] Calendar & Weather generator (Faerûn calendar, events, month nav) +- [x] Encounter Builder (AI-generated via LLM, terrain selector, difficulty) +- [x] Commit and tag `v0.5.0-dm-tools` ### Milestone 6 — Lore RAG & Polish - [ ] Add lore chunking + embedding storage (`sqlite-vec`) @@ -823,14 +822,14 @@ To keep AI-generated content consistent with your world: A consolidated checklist covering all phases: -1. [ ] Scaffold with `npm create tauri-app@latest` (Tauri v2, react-ts) -2. [ ] Configure capabilities (`src-tauri/capabilities/default.json`) -3. [ ] Integrate local LLM binding (`llama-cpp-2`, `llama_cpp`, or Candle) -4. [ ] Stream tokens via Tauri Channels (not raw `invoke`) -5. [ ] Add persistence: `tauri-plugin-store` + `tauri-plugin-fs` + `tauri-plugin-sql` -6. [ ] Implement design system: glassmorphism, bento grid, dark blue + gold palette, Cinzel/Inter/JetBrains Mono fonts -7. [ ] Implement core utilities: World Builder, NPC Generator, Encounter Builder, Item Forge, Session Logger, Dice Roller -8. [ ] Implement DM-specific tools: Initiative Tracker, Random Tables, Fog-of-War, Calendar, Relationship Web, Soundboard +1. [x] Scaffold with `npm create tauri-app@latest` (Tauri v2, react-ts) +2. [x] Configure capabilities (`src-tauri/capabilities/default.json`) +3. [x] Integrate LLM client (Ollama + OpenAI-compatible APIs) +4. [x] Stream tokens via Tauri Channels +5. [x] Add persistence: `tauri-plugin-store` + `tauri-plugin-fs` +6. [x] Implement design system: glassmorphism, bento grid, dark blue + gold palette, Cinzel/Inter/JetBrains Mono fonts +7. [x] Implement core utilities: World Builder, NPC Generator, Encounter Builder, Dice Roller, Session Logger +8. [x] Implement DM-specific tools: Initiative Tracker, Random Tables, Calendar, Encounter Builder 9. [ ] Add lore RAG / semantic search (`sqlite-vec`) 10. [ ] Build first-run model download / license wizard 11. [ ] Add tests, CI (`tauri-action`), code signing, updater, then package with `npm run tauri build`