23f32872a583bd008b469fca20f8d63e7522c128
The Locate tab (mosque/halal/cemetery) hardcoded a single public Overpass API endpoint. Public Overpass instances are individually flaky under load — confirmed live: the same query returned 429 from one mirror and 504 from the primary a few minutes apart, with no retry or fallback, surfacing as a hard failure to the user. Added a short fallback chain (overpass-api.de, then overpass.kumi.systems) that retries on 429/503/504 and only reports failure once every mirror has failed, with an honest 'try again shortly' message distinct from a genuine empty-results state. A third mirror (overpass.osm.ch) was tried too but dropped after finding something worse than a failure: it returned a 'successful' 200 with 0 results for a query the other two mirrors correctly answer with 30 (diet:halal=yes near Kuala Lumpur) — a stale/incomplete regional replica that would have short-circuited the fallback loop and silently told users nothing was nearby when it actually was. e2e-khairat-lifestyle.cjs gains a tightened assertion (halal search must return >0 results at a known-good test coordinate, not just 'results or empty') to catch this exact silently-wrong-mirror class of bug in the future, plus a filter so expected fallback-path 429/504s don't fail the 'no console errors' check — those are the retry mechanism working, not a bug. Verified live against the deployed app: 30 real results returned.
Nur Falah — Estate & Waqf Suite
Horizon 1 (Prevention Suite) + Horizon 2 (Unlock Programme, pre-pilot demo) from the
Nur Falah PRDs, built as a standalone Svelte 5 + Vite PWA, styled to match the visual
system of the live moslem03.falahos.my (Nur Falah Muslim Companion) app.
Modules
| Module | Horizon | Status |
|---|---|---|
| Faraid Calculator | 1 | Shared calc core, 14 classical cases passing (src/lib/calc/faraid.test.js) |
| Asset Registry | 1 | Local-first, feeds every other module's estate total |
| Wassiyah Generator | 1 | 1/3 meter, heir-exclusion block, jurisdiction-aware export |
| Hibah Tracker | 1 | Shared marad al-mawt guardrail |
| Family Waqf Designator | 1 | Built ahead of scholarly sign-off — see below |
| Digital Beneficial Claims | 2 | Pre-pilot demo only — see below |
Important: two governance gates were overridden for this build
Per explicit product direction, this build proceeded past two gates stated in the project's own PRDs and review log:
- Family Waqf Designator (Horizon 1 PRD §8.5) is gated on scholarly sign-off.
scholarly-review-log.md(in thedigital-waqifdocs repo) tracks OPEN-01 — whether a healthy-state waqf is subject to the one-third cap — as unresolved. This module ships anyway; the in-app copy states the open question rather than presenting invented certainty. - Horizon 2 (Digital Beneficial Claims) PRD states: "No engineering work begins until Phase 0 (legal opinion + signed institutional partner agreement) is complete." No confirmation of Phase 0 completion was available. The Claims module ships as a local, non-custodial demonstration of the data model and transfer restriction only — no real legal wrapper, no institutional integration, no real claims issued. It carries a persistent in-app banner saying so.
Both are flagged here, in deploy/DEPLOY.md, and in the relevant module's source
comments so this isn't silently presented as production-ready.
Development
npm install
npm run dev # http://localhost:5173
npm run test # classical faraid test suite
npm run build
Deploy
See deploy/DEPLOY.md. Target: moslem04.falahos.my.
Description
Nur Falah Horizon 1 Prevention Suite + Horizon 2 Unlock demo. Deploy target moslem04.falahos.my
Languages
Svelte
51.9%
JavaScript
47.9%
HTML
0.1%