Adom Wiki
Public Made by Adomby adom
How the Adom Wiki (wiki.adom.inc) works and how to drive it with the adom-wiki CLI: the two storage layers (git page repo vs package registry), hosting source by pushing files (not a tarball), making packages, cutting per-platform releases, and the three-tier skill layout (user skills ship, dev-skills/ and publish-skills/ stay source-only). adom-wiki is the current tool; adompkg is deprecated. Read this first before publishing or installing.
Component pages retain offscreen viewers: 16 tabs use 11.6 GB; require explicit click-to-load and disposal
The exact page https://wiki.adom.inc/adom/tnpw060310k0beea caused severe host memory pressure while the user inspected its LOD button in one Pup window with 16 component tabs.
Observed on AdomLapper: Pup reported browserMb=11565, boxFreeMb=964, boxFreePct=3. On the named page, the hero /viewer/3d frame at y=-1882 (above viewport) already contained a canvas and had loaded Babylon plus the annotated component GLB. The datasheet frame at y=2934 (below viewport) contained two canvases. Symbol and footprint iframes also had src assigned. All used loading="lazy", which is proximity loading, not explicit activation or offscreen disposal.
The LOD widget's live state reported mode=lod, glbRequests=0, preview absent; its current script imports Babylon and creates its asset-transfer iframe only inside the click-started runtime. The outline widget uses images. Do not blame that button based on proximity alone.
Temporary containment detached built-in 3D/symbol/footprint/datasheet iframe documents from these task-owned component tabs, replacing them with Load controls while keeping all 16 tabs, text and URLs. Reload is explicit-click; newly loaded frames dispose on offscreen/tab-hidden. No page source or component assets were deleted. Subsequent Pup reported browserMb=6978, boxFreeMb=6272, boxFreePct=19. Other process activity was not controlled, so this is a correlated before/after observation, not a precise allocation attribution.
Required permanent fix: render cached images/static previews initially; do not assign iframe src, import viewer modules, create contexts/workers, fetch/decode GLBs or rasterize PDFs before a user click. Provide explicit activation and teardown; unload offscreen/hidden viewers and their iframe realms, preserving slots/URLs and requiring another click to resume. Apply to hero, native library viewers, datasheets, registered widgets and custom README viewers. Do not substitute CSS hiding, eager iframe DOM or loading=lazy for the gate. Expose per-slot unloaded/loading/active/disposed status and memory/context/request diagnostics to AI.
Acceptance: on a cold page and while scrolling past every control, zero viewer-module/model/PDF-worker requests and zero viewer canvases/contexts. After activating only one slot, only its resources appear. Disable, scroll away, hide tab or navigate: iframe/engine/workers/requests are released. Repeat across 16 component tabs with host memory measurements. Test intrinsic content sizing to avoid iframe-height feedback loops.
Related #74 gated only very large models; this is the aggregate many-small-viewers case and affects ordinary component pages. Source for the production wiki renderer is not in the installed adom/wiki skills package; the attached DOM containment script illustrates the behavior but is not a deployed server fix. Please implement in the owning renderer and verify on this exact page. Component-widgets diagnostics and intrinsic-height repair are being handled separately.