Session handover — 2026-07-18 pt2¶
The corpus went from "vehicle built" to running. Two owner's calls opened the session (corpus proceeds WITHOUT the Wix-key widening; EC2 port first); the EC2 port then landed in one slice (positive control 87.3 vs the 87.2 deployed baseline, same sole veto); Cathal's wixbuilds.csv pick was probed and merged (42 corpus hosts); and the 42-site corpus run launched on EC2 ~14:20 — in flight overnight at close, ETA 12–16 h. Mobile surfaced as a question and was banked with a trigger, not scoped.
Where to look¶
- scope-2026-07-18-cms-batch-runner
— criterion (e) CLOSED with the EC2 numbers; new EC2 runbook section
(box facts, bundle-sync mechanics, the
NODE_OPTIONS=--max-old-space-size=2560requirement, the stale-crawl trap, the detached launch command, measured wall-clocks). - known-issues — Slice 6 entry gains the two owner's-call amendments (videoDebt reads as "shortfall, cause UNATTRIBUTED" until the key is widened; EC2 port complete — only the run itself remained at close). NEW entry: mobile is unmeasured on both sides — Wix mobile is a separately authored view, so the fidelity target itself is undefined; 10-site live-mobile-vs-live-desktop divergence probe + Cathal's build-practice answer are the reopen trigger. No new dimension before corpus evidence.
calibration/corpus-hosts.txt— 42 sites (3 reference/blind + 39 from the pick). Exclusions with reasons + the pick tally live in its comments.- Commits:
9aa84b9(EC2 port + owner's calls),1ac1965(corpus hosts),77668a5(mobile entry), plus this handover.
What shipped¶
- EC2 port (the slice). Incremental git-bundle sync (
a500dab..bfd407f; the box's May-era dirty tree is preserved on branchrescue/pre-0718-sync— verified no unpushed commits first);.dev.varsby scp; npm ci + Playwright Chromium. One real incident, as scoped in risks: the apps/cmsastro buildSIGABRTs (134) at Node's default ~1 GB heap cap on the 2 GB box — fixed withNODE_OPTIONS=--max-old-space-size=2560+ a 4 G swapfile; the loud-fail machinery captured the full stderr tail in the batch report exactly as designed. Control re-run: S 82.3 / T 100 / G_det 84.4 → 87.3 HOLD(videoDebt) vs Windows 82.1/100/84.4 → 87.2.batch-scorecardconsumed it on EC2 (the two blind sites loud-skip there — their artifacts live on the Windows box only). Regression check: N/A — no shared canonical surface touched; the runner itself was not modified. - Corpus picks probed before committing the night to them. 41 sites from
wixbuilds.csv: all normalized, zero first-label collisions, zero redirect drift, 39×200+Wix-markers. Excluded dead-at-source (no live render → zero calibration signal):sinnotts.com(TLS cert expired) andasesoria-consulting.ie(Wix-served 404 on www AND apex) — both are broken for real visitors today; worth flagging to the clients. Pick tally (the handover ask): e-commerce 0/41, booking 1/41 (svco.ie) — Woo-lane prevalence in this pool is nil. - The 42-site corpus run, launched. Detached on EC2
(
~/corpus-run-0718.log,EXIT:is the completion marker), sequential, resumable from artifacts if it dies. Startup verified healthy (WCP skipped its fresh artifacts, rebuilt, seeded local D1). Check:ssh cathals-demo 'tail -5 ~/corpus-run-0718.log; grep -c "=====" ~/corpus-run-0718.log' - Disk sized before launch: WCP's 972 M decomposes to ~260 M of CMS-lane
artifacts + 712 M of demoted static-lane residue — the run fits in the
22 G free with reserves (
~/.npm3.8 G,~/replatform2.9 G reclaimable).
The honest parts¶
- The corpus outcome is unknown at close — the run was ~1 site in when the session ended. Per-site failures are corpus data (capture robustness), not slice failure; the mesh-generation count among them is the segmentation gap's reopen number.
- Every site pays ~3 min of
cms-build(the baked seed is per-site; no artifact skip possible) — that's most of the sequential wall-clock. - EC2 is at
1ac1965— two wiki commits behind local; harmless (the runner reads none of them); the next bundle-sync picks them up. - The 18 legacy pre-crawled sites on the box are not in the corpus (not
picked); if ever added, the presence-only
crawlskip rule makes their May-era artifacts a stale-crawl trap —--force crawl,theme(runbook). - The corpus is deliberately light:
--slidesoff (carousel heroes render poster-only on our side — instrument config, not site debt), desktop-viewport only, no video acquisition. Read scores accordingly; label from what the instrument sees.
Next¶
- Morning: check
EXIT:in~/corpus-run-0718.log→node scripts/batch-scorecard.mjs calibration/corpus-hosts.txton EC2 → skimbuilds/cms-batch-report.jsonfailures (count 0-section mesh sites — the segmentation gap's prevalence number). - Cathal labels ship / needs-polish / hold per site (the human half of Slice 6). Desktop-only instrument — note mobile-only concerns separately, don't fold them into the labels.
fit-calibration→ review the candidate → promote only iffitted:trueand precision holds (the CLI refuses to overwritecalibration.jsonby design).- Fix from the aggregated ranked list — inline-left's trigger already fired (salttherapysolutions); mesh gap ranks by its measured prevalence; videoDebt rows stay unattributed until the key question reopens.
- Watch emdash #1158 for an upstream response (save race — product blocker per ADR-0013 §4).
- Post-corpus: the mobile divergence probe (known-issues trigger) + Cathal's build-practice answer (did the team author Wix mobile views?).