87 lines
4.7 KiB
Markdown
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.
|