- web/logos.js: high-precision alias map (description regex -> brand domain)
feeding the Brandfetch logo CDN; only attaches a logo when a merchant
confidently maps to a known brand, else a coloured-initial fallback.
- Logos rendered in: top-merchants list, category breakdown rows, ledger.
- scripts/resolve-logos.mjs: offline resolver (alias + Brandfetch search) that
measures coverage and writes merchant-logos.json. Current: 33 brands cover
~35% of expense txns (Uber, MercadoPago, Apple, Rappi, Santa Isabel, Copec,
etc.); the long tail is local businesses with no brand -> fallback.
- Client ID is public (CDN); no secret key in the repo.
- web/dashboard.html: overview dashboard with KPI cards, type breakdown
bars, entity list with accounts, movements table with filters, and a
slide-in origin/destination tree panel for any movement
- src/server.js: serve web/ as static files (GET /), add CORS headers
so the dashboard works from file:// too; default route is dashboard.html