Skip to content

Auto-Match should reuse cached batch results when opening rows (avoid redundant Match API calls) #2410

@filiperochalopes

Description

@filiperochalopes

Related to #2227

User story

As a user, I want candidate results fetched during Auto-Match to be reused when I open individual rows so the system avoids repeating the same expensive Match API calls.

Use case

Run Auto-Match on a Map Project, then open individual rows to review candidates without triggering a new per-row API request for already-fetched data.

Requirements

  • After Auto-Match runs, store the batch results client-side keyed by row identifier (e.g., __index or concept UUID).
  • When opening a row after Auto-Match, load candidates from the stored batch results instead of calling the Match API again.
  • Only call the Match API again when no cached data exists or the user explicitly requests a refresh.
  • Prefer a storage approach that survives normal UI state resets (e.g., localStorage, IndexedDB, or another persistent client-side store).

Acceptance criteria

  • Given Auto-Match completed, when the user opens a row, then no new Match API call is made if cached results exist for that row.
  • Given cached results do not exist for a row, when the user opens it, then the system falls back to calling the Match API.
  • Given the user requests a refresh (manual override), then the system re-calls the Match API and updates the stored results.

More details (collapsible)

Context
  • Current behavior: Auto-Match triggers a batch call, but opening each row triggers another API call for the same data.
  • Impact: unnecessary time/cost, especially when Match API is compute-heavy (~20s/row; AI rerankers/vector search).
  • This is an architectural concern raised after closing Redundant API calls when opening rows after Auto-Match in Map Project #2227 as "completed" despite the underlying redundancy concern.

Metadata

Metadata

Labels

bugSomething isn't working

Type

Projects

Status

No status

Relationships

None yet

Development

No branches or pull requests

Issue actions