From 8f56e2f780651eddfef9e81d631d0744c0ada7cd Mon Sep 17 00:00:00 2001 From: Logan Date: Thu, 15 Oct 2026 17:08:29 -0400 Subject: [PATCH] docs(journal): log WATUT fix and harness v2 session --- .pi/journal.md | 35 +++++++++++++++++++++++++++++++++++ analysis/state/README.md | 5 +++++ 2 files changed, 40 insertions(+) diff --git a/.pi/journal.md b/.pi/journal.md index 31a6236..8551086 100644 --- a/.pi/journal.md +++ b/.pi/journal.md @@ -475,3 +475,38 @@ State of the effort at capture: **Phase 2 begun, zero matrix blocks run.** Next follow `analysis/state/04-plan.md` §"Next actions" (WATUT → verify uncapped frametimes → finish S4 → B0→B14 → ship → report). `analysis/state/` itself is uncommitted — fold it into the next commit. + +## Session 2026-10-15 (b) — WATUT crash root-caused + fixed; harness v2 + +Commits: `a84319b` (fix(mods): MidnightLib 1.10.0 + `analysis/state/`), `e18bd3c` +(feat(bench): harness v2). Not pushed. + +- **WATUT crash = victim, not cause.** Fright's Delight 1.4.8 jar-in-jars MidnightLib + 1.9.2; its `MidnightConfig.init` races under NeoForge parallel mod construction → + `ConcurrentModificationException` → broken mod state → `mod_resources` never loads → + WATUT's unguarded `reloadShaders` mixin throws on `particle.json`. Fix: standalone + `midnightlib` 1.10.0 (`side=both`; upstream fix 1fe69729, synchronizedMap). FML picks + it over the JiJ copy (log: "Attempted to select a dependency jar ... Using Mod File"). + Verified 10/10 cold launches to world join, 0 CME, all on 1.10.0. Frightsdelight + doesn't touch `entries` (binary-compat risk checked). **Dedicated server still runs + 1.9.2 until its next restart + jar install** — server-side exposure untested. +- **Uncapped frametimes verified**: C1/S1 p50 2.9 ms, p99 9.5 ms, avg 297 fps + (harness v2 smoke, `~/onion-bench/results/session.jsonl`, label `smoke`). The earlier + 60 fps row in `harness-results.csv` is void. +- **Harness v1 was silently broken**: KDE Plasma is Wayland; xdotool into Xwayland `:1` + drops input when a native window has focus → no `/function`, no markers, ever. Also: + partial `options.txt` re-triggered the accessibility onboarding screen (blocks + `--world`), and FTB Backups fired ~7 s after every join (inside capture windows). +- **Harness v2** (`analysis/client-perf/harness/bench.py`, `analyze.py`, `tests/`, + README): `boot --n N --join` reliability loop; `session` drives scenes via a + per-session generated datapack (armed only during the session, disarmed in + `finally`), log markers with ms timestamps, CSV picked by birth time, validity flags, + full metadata JSONL; `analyze.py` applies the BENCH-MATRIX win rule. 18 offline tests. +- Bench-instance-only edits: FTB Backups `auto: false` + (`config/ftbbackups3-server.snbt`); harness pins in `options.txt` (re-applied per run). +- Observed noise: the idle dedicated server uses 23–78 % of a core; amdgpu DPM is + `auto`; the bench window shares the owner's live desktop. + +Next: owner calls on noise controls (see harness README / session report), then S4 +build → B0 (`bench.py session --variant C0 --plan s1 --reps 3 --label B0`, ×3 +sessions) → matrix. diff --git a/analysis/state/README.md b/analysis/state/README.md index c418a95..de9c4d5 100644 --- a/analysis/state/README.md +++ b/analysis/state/README.md @@ -4,6 +4,11 @@ Captured **2026-10-14 ~23:45 EDT** (Manjaro bench machine), at git **HEAD `e5e36 (`chore(bench): add client bench harness and Phase 2 handoff`), branch `main`, pushed. Pack: **217 mods**, MC **1.21.1**, NeoForge **21.1.251**. +> **Update 2026-10-15 (b):** WATUT crash FIXED (`a84319b`, MidnightLib 1.10.0 — root +> cause was a MidnightLib CME); uncapped frametimes VERIFIED; harness v2 (`bench.py`) +> replaces `run_scene.py` (`e18bd3c`). See `.pi/journal.md` latest entry. Plan steps +> 1–2 of `04-plan.md` are done; next is S4 build → B0. + ## Where we are (one paragraph) The client-performance initiative is in **Phase 2 (benchmarking)**, which has just