Migrate shared_db (sellers/market_comps) from SQLite to Postgres
settings: currency preference — display listing prices in user's preferred currency
Async search endpoint: return job_id immediately, scrape in background
ux: accept pay.ebay.com/rxo checkout URLs as listing input
art: Avocet seed-sorting animation — branding asset + video generation test case
SSE/WebSocket live score push for background enrichment
Implemented in feature/near-term-ux: SSE enrichment streaming via _update_queues + GET /api/updates/{session_id}. Async search (#49) extends this to stream initial listings too.
feat: document cf_text and cf_voice as trunk service backends in llm.yaml.example
Backport Vue SPA feature parity to self-hosted Streamlit UI
Closing — Streamlit UI is deprecated. The Vue 3 SPA is now the only frontend for all tiers. No new Streamlit work. See issue #104 reference in CLAUDE.md.
Backport Vue SPA feature parity to self-hosted Streamlit UI
settings: currency preference — display listing prices in user's preferred currency
preferences: add currency_code field + shared currency formatting utility
Async search endpoint: return job_id immediately, scrape in background
Cache search results to avoid redundant scrapes for repeated queries
Browser pool: pre-warm Chromium instances to eliminate cold-start latency on search
feat: broadcast trust score verdicts to Fediverse communities via cf-core.activitypub
feat: wire community feed posts to cf-core.activitypub (Fediverse publishing)
feat: add circuitforge_core.activitypub module (MIT) — ActivityPub actor management and Lemmy/PieFed integration
survey/analyze blocks workers — needs async task queue
feat: cooked leftovers shelf-life estimator
Migrate shared_db (sellers/market_comps) from SQLite to Postgres