Files
archy/PROGRESS.md
T
DorianandClaude Opus 4.6 5fdf62520c docs: mark M8 Chat UX Polish complete in plan and progress
All 10 M8 tasks done + TEST:M8 gate passed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 23:16:53 +00:00

96 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AIUI Progress
## Current Status
**Active Milestone**: M8 — Chat UX Polish (PLAN2.md)
**Overall**: M0M7 complete. 116 tasks planned across M8M20 in PLAN2.md
## Roadmap
### M0: Foundation ✅
- [x] Chat interface with streaming (Claude/OpenRouter/Mock)
- [x] 11 content type renderers (film, song, podcast, book, TV, image, place, article, magazine, nostr, code)
- [x] Responsive layout (mobile three-column + desktop overlays)
- [x] Glass morphism design system (Tailwind CSS)
- [x] Claude proxy + web search (SearXNG/DDG)
- [x] PWA support (auto-update, installable)
- [x] Music player (Plyr-based PlayerBar)
- [x] Dev chat persistence (Vite middleware)
- [x] ESLint flat config (packages/app + packages/core)
- [x] CI baseline (pnpm test, lint, typecheck passing)
- [x] Progress tracking automation
### M1: Stability & Polish ✅
- [x] ErrorBoundary.vue component created
- [x] Error boundaries wrapping all major sections
- [x] Unit tests — contentExtraction composable (10 extraction functions, 49 tests)
- [x] IndexedDB persistent storage (conversations survive refresh)
- [x] Unit tests — useAI composable (16 tests, mocked fetch/SSE)
- [x] E2E test expansion (8 new tests: streaming, content cards, mobile, etc.)
### M2: Content Experience ✅
- [x] Markdown rendering in chat (markdown-it, XSS safe)
- [x] Music source resolution + queue management (next/prev, queue panel)
- [x] Virtual scrolling for chat (@tanstack/vue-virtual)
- [x] Nostr feed integration (relay WebSocket, kind:1 notes)
### M3: Plugin System ✅
- [x] Activate plugin registry at runtime (claude-provider adapter)
- [x] Renderer plugin registration (film/song as plugins)
### M4: Social & Discovery ✅
- [x] Social embeds (Nostr notes inline via nostr: URI)
- [x] Federated search across content types (/search command)
- [x] Bookmarks/favorites (Pinia + IndexedDB, heart toggle)
### M5: Security & Privacy ✅
- [x] E2E encryption (Web Crypto API, AES-256-GCM, PBKDF2)
- [x] Encrypted storage layer (PassphraseDialog, all stores encrypted)
- [x] API key vault (encrypted at rest, masked UI)
### M6: Payments & Identity ✅
- [x] Lightning wallet deep-links (LNURL-pay, BIP21, QR code)
- [x] Cashu token support (parse + display inline, never a wallet)
- [x] Nostr identity NIP-07 (browser extension login, event signing)
### M7: Platform ✅
- [x] MCP server integration (content surfaces as MCP tools)
- [x] Multi-provider AI normalization (Claude/OpenRouter/Ollama adapters)
- [x] Tauri desktop build (transparent window, system tray, global shortcut)
- [x] Offline mode (cache strategies, offline banner, cached content browsing)
## Session Log
<!-- Entries below are auto-populated by the post-push Claude Code hook -->
<!-- Format: ### YYYY-MM-DD HH:MM — branch-name -->
### 2026-03-03 — overnight/2026-03-03
**Completed M3M7 (15 tasks)**:
- M3.1: Plugin registry + Claude provider adapter
- M3.2: Film/song renderer plugins with lazy loading
- M4.1: Nostr social embeds (bech32 NIP-19 decoder, NostrEmbed.vue)
- M4.2: Federated search (/search command, SearchResults overlay)
- M4.3: Bookmarks/favorites (Pinia + IDB, FavoriteButton, FavoritesGrid)
- M5.1: E2E encryption (AES-256-GCM, PBKDF2 100K iterations)
- M5.2: Encrypted storage layer (PassphraseDialog, transparent encrypt/decrypt)
- M5.3: API key vault (encrypted IDB, ApiKeyManager.vue, vault integration in useAI)
- M6.1: Lightning wallet deep-links (BOLT11 parser, PaymentButton, LightningInvoice)
- M6.2: Cashu token support (cashu.ts parser, CashuToken.vue inline in chat)
- M6.3: Nostr identity NIP-07 (useNostrIdentity.ts, NostrLogin.vue, bech32 encode)
- M7.1: MCP server integration (tool definitions + handlers for library search)
- M7.2: Multi-provider AI normalization (adapter pattern: Claude/OpenRouter/Ollama)
- M7.3: Tauri desktop build scaffold (frameless window, tray, global shortcut)
- M7.4: Offline mode (useOffline.ts, enhanced PWA image/API caching)
### 2026-03-03 (cont.) — overnight/2026-03-03
**Completed M8 Chat UX Polish (10 tasks)**:
- M8.1: Message editing & regeneration (pencil icon, re-send clears subsequent)
- M8.2: Conversation branching (BranchSwitcher.vue, fork from any assistant msg)
- M8.3: Reply-to threading (quoted excerpt in input, `> quote` prepend)
- M8.4: Conversation search (Cmd+F glass panel, match nav, jump to message)
- M8.5: Auto-title generation (background Haiku call after first exchange)
- M8.6: Context window visualiser (ContextBar.vue, token estimate, orange→red)
- M8.7: Conversation export (Markdown/JSON/text, File System Access API)
- M8.8: Import conversations (AIUI JSON + Claude.ai format parser)
- M8.9: Context menus (ContextMenu.vue + ContextMenuItem.vue, right-click)
- M8.10: Scroll position memory (Map per conversation, restore on switch)
- TEST:M8: All 74 tests pass, typecheck + lint clean