The most fragile moment in a demo is a first-time visitor searching an address that has never been resolved — that path hits the Google Solar API, downloads GeoTIFFs, and runs sharp, which is slow on Heroku Basic and likely to time out on Render free. It also burns Solar API quota on strangers. The project's own architecture already provides the fix: locations are cached, and the cache is provider-agnostic. Pre-seeding a handful of known-good Malaysian locations means the demo path is always a cache hit, which simultaneously de-risks task 10's CPU constraint, protects the API budget, and shows the product at its best. This is not a workaround — it is the cache constraint working as designed.
Scope: prisma/seed.ts, frontend/src/components/map/CoverageNoticeModal.tsx, frontend/src/locales/{en,ms,zh}/map.json
Depends on: #4, #5
Checklist
Priority: High · Phase 12 task 11 of the maintainer's migration plan.
The most fragile moment in a demo is a first-time visitor searching an address that has never been resolved — that path hits the Google Solar API, downloads GeoTIFFs, and runs
sharp, which is slow on Heroku Basic and likely to time out on Render free. It also burns Solar API quota on strangers. The project's own architecture already provides the fix: locations are cached, and the cache is provider-agnostic. Pre-seeding a handful of known-good Malaysian locations means the demo path is always a cache hit, which simultaneously de-risks task 10's CPU constraint, protects the API budget, and shows the product at its best. This is not a workaround — it is the cache constraint working as designed.Scope:
prisma/seed.ts,frontend/src/components/map/CoverageNoticeModal.tsx,frontend/src/locales/{en,ms,zh}/map.jsonDepends on: #4, #5
Checklist
HIGH-quality Solar API coverage in the areas the coverage modal already names (Klang Valley, Ipoh, Sungai Petani) — the rescuedLocationrows from task 1 are the best source, since they are already known-goodLocationrows and their R2 objects survive the migration intact and are markedreadyen,ms,zh) — the app is fully localised and a monolingual addition would regress thatsolar.googleapis.comcalls in the backend logpnpm dlx impeccable detect <changed frontend files>reports 0 unwaived findings (note:AGENTS.mdbansnpxin this repo, so usepnpm dlx)Priority: High · Phase 12 task 11 of the maintainer's migration plan.