2026-05-25backend
Post search API and sidebar combobox added
- Change:
app/api/search/route.tsadded as a GET endpoint that delegates to a newsearchPosts()query inactions.ts(ILIKE on title + description, ranked by match position).app/_component/sidebar-search-combobox.tsxprovides a keyboard-navigable search UI embedded in the sidebar utility box. - Why: Posts list is paginated; search provides a direct path to any post.
- Affected Modules:
app/api/search/route.ts,app/lib/actions.ts,app/_component/sidebar-search-combobox.tsx,app/_component/sidebar-utility-box.tsx - Trade-offs:
- Pro: ILIKE with ranked ordering is simple and does not require a full-text index for this data scale.
- Con: Full client-side search component is loaded on every page because it lives in the sidebar (which is always rendered); a debounce or lazy-load may be needed at scale.