2026-05-25backend

Post search API and sidebar combobox added

  • Change: app/api/search/route.ts added as a GET endpoint that delegates to a new searchPosts() query in actions.ts (ILIKE on title + description, ranked by match position). app/_component/sidebar-search-combobox.tsx provides 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.