[object Object]

← back to Dw Photo Capture

iOS OOM-freeze root cause (found via mobile screenrecord 5x): app fetched /api/twil = 36MB/88,319 items on EVERY page load (default filter=twil) and render() built a DOM card for all 88k → browser hit 13GB and crashed the tab, starving the device so photo capture froze. Fix: RENDER_CAP=500 cards max + 'narrow your search' note; defer the 36MB loadTwil() off page-load (lazy on skip/TWIL-chip)

0bd9187ad41b6db1f7c0986608d376cb5100d946 · 2026-07-09 08:40:40 -0700 · Steve Abrams

Files touched

Diff

commit 0bd9187ad41b6db1f7c0986608d376cb5100d946
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Jul 9 08:40:40 2026 -0700

    iOS OOM-freeze root cause (found via mobile screenrecord 5x): app fetched /api/twil = 36MB/88,319 items on EVERY page load (default filter=twil) and render() built a DOM card for all 88k → browser hit 13GB and crashed the tab, starving the device so photo capture froze. Fix: RENDER_CAP=500 cards max + 'narrow your search' note; defer the 36MB loadTwil() off page-load (lazy on skip/TWIL-chip)
---
 public/index.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/public/index.html b/public/index.html
index b58eb1a..9e0eb0e 100644
--- a/public/index.html
+++ b/public/index.html
@@ -2018,7 +2018,7 @@ $('#simInput').addEventListener('change',async e=>{
   collapsed=false; await recognizePattern(f);
 });
 applyCamCapture(); syncCamBtn();   // apply saved camera choice to capture inputs + header toggle
-load(); loadNew(); loadTwil(); loadFav(); loadRecent();
+load(); loadNew(); loadFav(); loadRecent();   // NOTE: loadTwil() (36MB/88k) is now lazy — fires on 'skip'/TWIL view, not page-load (iOS memory)
 setInterval(()=>{ if(filter!=='any'&&filter!=='shop'&&filter!=='fav'&&filter!=='recent'&&filter!=='similar') load(); }, 60000);
 </script>
 </body>

← 036d130 auto-save: 2026-07-09T08:39:40 (2 files) — public/index.html  ·  back to Dw Photo Capture  ·  CLIP /similar: DW-safe guard — only return storefront produc 41d871a →