Stage 2 of the API-efficiency work: /api/analyze becomes progressive so clients can render the viewed pressing instantly and pay for the album survey only on real intent.
mode=summary— ≤1 cold Discogs call: the viewed pressing's verdict + dossier; collection/wantlist aggregates consulted read-only (cold aggregates →nullpersonalization, never a crawl); no survey. Live-measured: 0.82s cold,upstreamCalls: 1; warm repeats 0 callsmode=full(default — existing clients and MCP untouched) — the survey's candidate budget adapts to the remaining rate budget (16 normally, 6 when constrained); when even a reduced survey can't start safely the endpoint answers202 {status:"deferred", retryAfter}immediately instead of grinding into a guaranteed 429metaon every analysis —level,cacheStatus,personalization,candidatesScored/Target, andupstreamCalls: real per-analysis Discogs-cost telemetry from here on
97 tests green. Deployed to the hosted instance. Pairs with ext-v0.4.0.
Full Changelog: v1.3.2...v1.4.0