← 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 →