Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Manual Search UI

  • Status: Accepted
  • Date: 2026-03-15
  • Context:
    • ERD_INDEXERS_CHECKLIST.md still had manual and interactive search UI unchecked even though the API already exposed search request creation and page reads.
    • The current web UI had no route or feature slice for indexer search, which blocked category-filtered searches and bulk handoff into the download client.
    • AGENTS.md requires minimal dependencies, strict module boundaries, a task record, and completion through the just quality gates.
  • Decision:
    • Add a dedicated crates/revaer-ui/src/features/search/ slice with pure request-shaping helpers, a feature-local API shim, and a Yew page mounted at /search.
    • Reuse the existing indexer search endpoints (/v1/indexers/search-requests and search page reads) instead of introducing new backend schema or service churn.
    • Push selected results into the existing torrent add flow by reusing the shared ApiClient and preferring magnet links over download URLs when both are present.
    • Alternatives considered: building a broader indexer management UI first, or adding new listing endpoints before search. Those options were larger and did not unblock the missing ERD-backed manual search slice as directly.
  • Consequences:
    • Positive outcomes:
      • Revaer now exposes an end-to-end manual search flow in the UI with query parameters, Torznab category filtering, explainability, sealed page inspection, and bulk add-to-client actions.
      • The feature fits the repo’s UI architecture by keeping transport in a feature-local API module and request normalization in pure helpers with tests.
      • No new dependencies were added.
    • Risks or trade-offs:
      • The search feature currently uses explicit refresh actions rather than live page streaming inside the page itself.
      • Labels are English-first with fallback text for the new navigation item instead of a full locale pass.
  • Follow-up:
    • Implementation tasks:
      • Add richer live refresh and search history once the broader indexer read/list surfaces exist.
      • Extend the feature toward search-profile-aware presets when list/read endpoints are available.
    • Review checkpoints:
      • Keep just ci and just ui-e2e green.
      • Revisit the remaining unchecked checklist items for indexer management, health, and connectivity views.