swayfx-mosaic/tooling/probes/step20c-static-nested-grab/README.md

87 lines
4.7 KiB
Markdown

# Static nested valid-grab fixture
EXPERIMENTAL / FROZEN FAILURE EVIDENCE. No production integration.
Read the [protocol](../../../docs/design/STEP20C_STATIC_NESTED_VALID_GRAB_PROBE.md).
One exclusive laboratory, one existing immutable static binary, client-only
C17 builds; no SceneFX/Mosaic build or pristine run. Original nested source is
retained separately; `placement.patch` adds only legal static_cross anchors.
`prepare.py` verifies identity/provenance and compiles clients outside Git.
`check.py` exercises actual historical observations and labelled synthetic
negative fixtures, ledger concurrency/exhaustion/corruption, lifecycle and exit
classification before run reservation. `run.py` shares those predicates,
consumes reservations before every action, and preserves real terminal codes.
`collect.py` records only measured states and seals inventories once.
```sh
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-static-nested-grab/prepare.py
# Use only the LAB printed and registered by prepare; no second LAB or reset.
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-static-nested-grab/check.py "$LAB"
# Only after STATIC_NESTED_GRAB_FIXTURE_PREFLIGHT=PASS:
PYTHONDONTWRITEBYTECODE=1 python "$LAB/fixture/run.py" "$LAB"
PYTHONDONTWRITEBYTECODE=1 python "$LAB/fixture/collect.py" "$LAB"
```
Budgets: 1 run, 2 chains, 4 grabs, 2 calculated camera corrections (one per
chain), 1 splith transition, 9 complete clicks, 16 PNGs, 24 positions, 150 s.
Failed actions consume budget. Private sockets/groups only, no desktop IPC.
Generated protocol/client binaries/logs/JSON/PNG/build files stay outside Git.
Fixture preflight success is not graphical evidence. Results appended after
collection; every unexecuted matrix cell remains NOT TESTED.
## Completed campaign: INCONCLUSIVE, do not rerun
LAB `/home/fy59/swayfx-mosaic-static-nested-grab-m0a5e2qh`; run exhausted1/1.
Only E1 toplevel mapped: two stable full #303038 H2 images, computed camera
480→160 by -320, measured applied tiled clip, H1 blue182214 pixels. No popup,
click or grab occurred. Runner exits1 on its painted-height320 assertion;
actual height573. A further IPC window_rect.y=0/titlebar y25 assertion was
invalid but unreached. The original run.py here and LAB/fixture remain exact
failed evidence, **not a qualified replay runner**. Before any fresh separately
authorized campaign, repair/replay all geometric assertions offline. No runtime
retry is permitted by this ticket; unused chain/click/capture capacity is not
a new run authorization. The recipes above describe the preparation/run that
was attempted, not permission to repeat it.
`check.py` now counts ValueError from a deliberately removed-button negative
as rejection; the initial immutable checker is retained in LAB/fixture and the
corrected preflight checker in LAB/preflight-correction. Recorded preflight PASS
covers its tests, but the full geometric source/assertion audit was insufficient.
No historical gate/runtime status or manifest is rewritten. `geometry_audit.py`
rechecks actual SHM/configure/ACK/map, scene/IPC/paint, reference RGB, zero
popup/button/grab and terminal codes without launching a graphical process.
Post-run collector/diagnostic copies are in LAB/postrun-fixture, separate from
the executed fixture. Source/evidence inventories include these distinctions.
Terminal swaymsg actual1 (response receive failure), compositor0, all four
clients/injector0, no rescue or residual process/socket. Earlier measurement
failure is preserved; shutdown success cannot qualify scientific success.
Budget: run1, chain1, grab0, camera1, transition0, click0, move1, PNG3,
5.485246415 seconds. New Mosaic/SceneFX builds0, pristine runs0.
Source30 entries SHA256
`9b76aae162faa631bf1930677d484359dfc3e29ace237b9aee2daa3d5cd68dc4`;
evidence96 entries SHA256
`5750d1e74636c2d276800f795ed0214c3e12999908149855af0b382a2da9bfb4`.
Both are sealed once and verified. Root/nested input, crossings, dismissal,
standard-return/input/residues and related damage remain NOT TESTED.
Read-only completed-lab checks (never rerun collect or regenerate manifests):
```sh
PYTHONDONTWRITEBYTECODE=1 python "$LAB/postrun-fixture/geometry_audit.py" "$LAB"
PYTHONDONTWRITEBYTECODE=1 python - "$LAB" <<'PYCODE'
import sys
from pathlib import Path
lab = Path(sys.argv[1])
sys.path.insert(0, str(lab / 'postrun-fixture'))
from support import verify
for name in ['fixture-freeze', 'source', 'evidence']:
print(name, verify(lab / 'results' / (name + '-sha256.txt')))
PYCODE
```
Verdict SWAYFX_MOSAIC_STATIC_NESTED_VALID_GRAB_PROBE=INCONCLUSIVE.
Architecture UNDECIDED. STEP20C NEXT; multi-output NOT YET SUPPORTED.
This historical failure fixture is frozen for publication. The separate new
offline geometry-review fixture remains local, uncommitted and unpublished.