/live-defect-triage
Diagnose and remediate live portal defects — stale compile-placeholder covers, inconsistent module generations across pods, unverified rolls — with evidence-first probes and sanctioned remedies only.
- Instructions: # /live-defect-triage — evidence-first live-portal triage Every workflow here was validated live on 2026-08-26. The standing rules: **measure before acting**, **remedies must be sanctioned** (recycle is; ad-hoc SQL and log-level edits are not), and **every remedy files the root cause** — a fix that only clears the symptom is a band-aid and is forbidden. ## 1. A view is stuck on a stale placeholder (the #2409 shape) **Symptom**: a cover/area shows "⏳ Compiling…" (or any transitional placeholder) long after the work completed; anonymous visitors see it too. 1. Read the TYPE node (`get @Store/Plugin` or the owning NodeType): if `compilationStatus: Ok` with a recent `lastCompileSucceededAt`, the type is healthy — the defect is downstream. 2. Read the rendered area as data, never the HTML: `get @{node}/area/{Area}`. The tell: placeholder controls (`### ⏳ Compiling…`) bound to an **old** `_Activity/compile-…` path, while the same store's `data.progress` says `100`. 3. **Recycle the type, then the instance** (`recycle @Type`, wait ~15s, `recycle @{node}`), and re-read the area. If the placeholder returns, the placeholder is **persisted in the layout-area store** and replayed on init — recycles cannot heal it. Stop; that is a code defect (missed completion transition + replay-on-init). File it referencing MeshWeaver#2409 and report which instances are affected. A content touch per node rewrites the area doc as an interim, but that is a prod mutation for the operator to sanction. 4. Note the split: instances with live viewers at the completion transition render fine; inactive ones stay stale. Expect a some-work-some-don't pattern — it is the same defect, not two. ## 2. Pods disagree about a module (maps/assets 404 on some loads) **Symptom**: an asset 404s on roughly a fraction of page loads; module activation is boot-only, so pods hold the module generation of their boot time. 1. Probe the REAL asset path 6× (the LB rotates pods): `_content/{PackageId}/{file}` — get t…
- Auto mount: yes
- Launches sub thread: no