The TickerFilter triggered a query on every keystroke, causing re-renders
that stole focus from the input. Now uses a local input state with a
300ms debounce before updating the query, keeping focus on the text box
while typing.
Backend: assemble_trend_with_evidence now deduplicates document IDs
via dict.fromkeys() (the rollup code already did this, but the base
assembly didn't — same doc could appear multiple times from different
intelligence extractions).
Frontend: Trends.tsx deduplicates via Set before rendering as a safety
net for existing data already stored with duplicates.
- EvidenceRef component now fetches document details via useDocument()
hook and displays the title instead of 'doc:43156423…'
- TanStack Query deduplicates and caches lookups for repeated doc IDs
- Pattern IDs still render as before (e.g. 'pattern META other (1d)')
- Override Trade button changed from brand-600 to red-600
- Pattern IDs (pattern:META:other:1d) shown as 'pattern META other (1d)'
- Document UUIDs shown as clickable 'doc:43156423…' links to document detail
- Unknown formats shown truncated as fallback