feat: command palette (⌘K), RIS import, settings page, global search#157
Conversation
Four power-user features: - Command palette (⌘K/Ctrl+K): fuzzy-matched navigation, theme toggle, and jump-to for the user's lists and projects, mounted in WikiLayout. Backed by a small fuzzy matcher (exact > word-aligned > acronym > subsequence scoring). - RIS import: src/lib/citation/importers/ris.ts mirrors the BibTeX importer (20+ TY types, authors/editors/translators, dates, pages, continuation lines). The cite page Import tab auto-detects BibTeX vs RIS and accepts .ris uploads. - Settings page (/settings): device-local defaults for citation style, source type, and access type plus a theme picker, stored in localStorage. The cite page applies them on load; URL params win. Option lists moved to src/lib/citation-options.ts, shared between the cite and settings pages. - Global search (/search + GET /api/search): searches project and list names/descriptions and citations (title, authors, formatted text, tags, notes) across all the user's lists, grouped results, linked from the signed-in nav and the palette. 695 tests (27 new: fuzzy matcher, RIS importer, search route). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThis pull request implements a complete search ecosystem with companion features: a ChangesSearch, Settings, Command Palette, and Citation Features
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Summary
Four high-value, low-effort features for the power-user audience:
Command palette (⌘K / Ctrl+K)
WikiCommandPalettemounted inWikiLayout, available on every pagesrc/lib/fuzzy-match.tsscorer: exact > word-aligned substring > acronym ("ml" → My Lists) > scattered subsequenceSHORTCUTS, so it shows in the?overlay and the keyboard-shortcuts docs page automaticallyRIS import
src/lib/citation/importers/ris.tsmirrors the BibTeX importer: 20+ TY types mapped to source types, authors/editors/translators, dates, page ranges, DOI, wrapped continuation lines, BOM handling, derived citekeys for the multi-entry picker.risaccepted on upload (closes the Zotero/EndNote/Mendeley interop gap)Settings page (
/settings)src/lib/preferences.tssrc/lib/citation-options.ts, shared between cite and settings; linked from the user menu and palette; public route since prefs are device-localGlobal search (
/search)GET /api/search?q=searches project/list names and descriptions plus citations (title, authors, formatted text, tags, notes) across all the user's lists, capped at 50 citation hitsTesting
lint,typecheck, andbuildall clean locally🤖 Generated with Claude Code
Summary by CodeRabbit