git-subtree-dir: aiui git-subtree-mainline:0c4826f8ccgit-subtree-split:e30ac1d106
3.8 KiB
3.8 KiB
Session 2026-03-04
Completed This Session
1. Chat UX Changes
- History button: Changed from title-click dropdown to dedicated clock icon in ChatHeader
- Settings modal: Created
SettingsModal.vue— Memory + Advanced Settings behind gear icon, glass-card with backdrop blur - PromptIndex fix: Reverted to original behavior (current conversation only), fixed broken v-if/v-else chain where StreamingDots broke the template chain
- Chat action buttons: Wrapped hover icons in proper glass container (
bg-black/60 backdrop-blur-md border border-white/10) with divider between actions and thumbs
2. iOS HIG Integration
- Created
.cursor/rules/15-mobile-ux.mdcwith comprehensive iOS HIG values - Updated CLAUDE.md Mobile UX section
3. Web Search Fix
- All SearXNG instances were returning 429, DuckDuckGo rate-limiting
- Added Brave Search API as primary backend (
BRAVE_SEARCH_API_KEYenv var) - Expanded SearXNG pool to 8 instances with rotation
- Added HTML response guard for captcha pages
4. Content Detection Overhaul (MAJOR)
- Expanded all classifiers in
contentFiltering.ts: isNewsQuery, isMusicQuery, isBookQuery, isTVQuery, isPlaceQuery, isWebsitesQuery + response variants - Added Nostr detection:
isNostrQuery(),isNostrLikeResponse() - Added App detection:
isAppQuery(),isAppLikeResponse() - Updated
filterTabsByContext(): newhasNostr+hasAppsparams, nostr/app query priority - Updated
preferredFirstTab(): nostr + app checks
5. Bare Domain Extraction
extractBareDomainLinks(text)in contentExtraction.ts- Detects plain domains like "damus.io" not inside markdown/bold/URL patterns
- Known TLDs whitelist, file extension blacklist
6. Apps Tab (NEW FEATURE)
- Database:
packages/app/src/data/apps.ts— AppEntry interface, ~30 curated apps- Nostr clients: Damus, Primal, Snort, Amethyst, Coracle, Iris, noStrudel
- Lightning wallets: Phoenix, Breez, Zeus, Alby, Mutiny, WoS
- Bitcoin wallets: Sparrow, BlueWallet, Nunchuk, Coldcard
- Privacy: SimpleX Chat, Signal, Mullvad VPN
- Node software: Start9, Umbrel, RaspiBlitz, myNode
- Dev tools: NDK, nostr-tools, Nak
- Extraction:
extractApps(text, userQuery)— keyword matching against DB, surfaces with 1+ match for app/nostr/known-app queries, 2+ for general - UI:
AppsGrid.vue(list with search/category filter),AppDetail.vue(gradient header, how-to steps, related apps, external link) - Wired in: useContentPanel.ts (panelApps ref, selectedApp, open/close), ContentPanel.vue (registered), PromptIndex badges
7. Slash Command Palette
/code,/nostr,/design,/searchappear as commands in PromptPalette- Commands section above Templates section with
/slashprefix styling - Auto-send on select (except
/searchwhich sets text for query input) - 8px side margins (
left-2 right-2), no max-height scroll limit ChatInput.vue: simplifiedisPaletteMode— no longer excludes command names
8. App Detection Fix
- Queries mentioning known app names (e.g. "start9") now match via
queryMatchesAppcheck - Previously required explicit app/nostr query patterns like "what app" or "best wallet"
Known Issues / TODO for Next Session
- User reported "start9" search shows Brief but Apps tab was empty — FIXED in last commit
- The
/designcommand was added to palette and ChatWindow handleSend - Consider adding more apps to the curated database over time
- The plan file is at
.claude/plans/content-detection-overhaul.md(all steps complete)
Git State
- Branch:
overnight/2026-03-03 - Latest commit:
f346992— feat(chat): slash command palette, action button containers, app detection fix - Previous commit:
84ccdc7— feat(app): content detection overhaul, apps tab, chat UX, web search - All pushed to origin