Files
archy/aiui/.claude/memory/session-2026-03-04.md
T
archipelago 7ba3109b6d Add 'aiui/' from commit 'e30ac1d1069532fb6d652d87e2d4a2fe9d1b4773'
git-subtree-dir: aiui
git-subtree-mainline: 0c4826f8cc
git-subtree-split: e30ac1d106
2026-08-03 15:07:11 -04:00

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.mdc with 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_KEY env 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(): new hasNostr + hasApps params, 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, /search appear as commands in PromptPalette
  • Commands section above Templates section with /slash prefix styling
  • Auto-send on select (except /search which sets text for query input)
  • 8px side margins (left-2 right-2), no max-height scroll limit
  • ChatInput.vue: simplified isPaletteMode — no longer excludes command names

8. App Detection Fix

  • Queries mentioning known app names (e.g. "start9") now match via queryMatchesApp check
  • 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 /design command 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