IsotopeAI v3.3.5 π§ͺ
IsotopeAI v3.3.5
Fixed
- CRITICAL:
/api/health?_=<timestamp>speed probe returned HTTP 404 β The network speed probe fired by the app at every session used a cache-busting query-string (?_=Date.now()). The API health handler matchedreq.url === '/api/health'(exact string), so any request with a query string silently fell through to the/api/*404 fence added in v3.3.4. The speed probe received{"ok":false,"error":"Not found"}(34 B) instead of the ~230 B health payload, making the sync timeout calculator classify every user as "slow" (150 s timeout). Fixed: all/api/*route handlers now matchadminPath(the URL parsed without query string) instead of the rawreq.url. - Same query-string fallthrough for
/api/version,/api/check-update,/api/ai-configβ All four API route handlers were patched fromreq.url ===toadminPath ===.
Performance
- Health endpoint caching (15 s TTL) β
/api/healthpreviously made 3 concurrent Supabase HTTP round-trips on every call (REST, Auth, Storage), taking 200β600 ms. Results are now cached for 15 seconds; subsequent calls return in <1 ms. The cache is only populated on a successfulokresponse so degraded states still probe live. - Pre-gzip bundle cache β 10 major JS bundles (App, Auth, Focus, Onboarding, SingleGroup, Leaderboard, Settings, AppAccessGate, SessionSync, Invites) are gzip-compressed once at server startup and stored in memory (
_gzipCache). All subsequent requests for these assets skip the per-requestzlib.gzip()call and serve the cached compressed buffer instantly. For all other hashed immutable assets and SW files, the first gzip result is also cached. - 14 missing database indexes added (
performance-indexes.sql) β Static schema analysis found 14 unindexed foreign-key and date-ordering columns:community_events(creator_id),community_events(host_user_id)β FK columns never indexedcommunity_events(created_at),community_events(updated_at)β date orderinguser_tours(user_id)β FK for guided-tour lookups per useruser_tours(created_at),user_tours(updated_at)β date orderinguser_roles(granted_by)β FK for admin audit queriesgroup_invites(created_at)β expiry + ordering queriesgroup_challenges(created_at)β orderinggroups(created_at),groups(updated_at)β orderingusers(updated_at)β profile sync delta queries- Apply via:
Supabase Dashboard β SQL Editor β run performance-indexes.sql
Added
performance-indexes.sqlβ New file containing all 14CREATE INDEX IF NOT EXISTSstatements. Idempotent and safe to run multiple times. Referenced from admin panel setup guide.
Audit (v3.3.5 β 2026-06-07)
| # | Check | Result |
|---|---|---|
| 1 | /api/health?_=timestamp speed probe now returns 200 JSON |
β
fixed (adminPath match) |
| 2 | /api/version, /api/check-update, /api/ai-config same fix |
β all 4 handlers patched |
| 3 | Health endpoint cached at 15 s TTL | β <1 ms on cache hit |
| 4 | 10 bundles pre-gzip'd at startup | β
_gzipCache Map |
| 5 | 14 missing indexes documented in performance-indexes.sql |
β new file |
| 6 | All changes pushed to GitHub | β |
π₯ Quick Install
git clone https://github.com/Suydev/isotope-code.git
cd isotope-code
bash setup.shπ What's Changed
See CHANGELOG.md for the full history.
β€οΈ Support
UPI: 9699393886@fam Β· isotopeai.in