swayfx-mosaic/tooling/probes/step20c-static-runtime-followup/README.md

76 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Static focus/input/standard-return fixture
EXPERIMENTAL / FROZEN HISTORICAL FAILURE. No production integration.
Read the [protocol](../../../docs/design/STEP20C_STATIC_RUNTIME_FOCUS_INPUT_STANDARD_PROBE.md).
The previous static campaign remains sealed and is never replayed.
This fixture creates one campaign-owned LAB outside Git, copies the hash-qualified
static compositor unchanged and rebuilds only three historical C17 clients from
manifest-verified source/generated protocols. The old client executables were
not manifest entries, so their observed hashes are contextual only. An exclusive
`~/swayfx-mosaic-static-followup-v1.owner` file binds the campaign to one LAB.
Never delete/reset it, its ledger, or replace the LAB to retry.
Offline checks before launch:
```sh
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-static-runtime-followup/test-budget.py
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-static-runtime-followup/test-offline.py
```
Historical commands, preserved for provenance only — DO NOT execute prepare.py
or run.py again; the historical budget is exhausted:
```sh
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-static-runtime-followup/prepare.py
# Use the printed LAB path; execute the retained exact fixture copy there.
PYTHONDONTWRITEBYTECODE=1 python "$LAB/fixture/run.py" "$LAB"
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-static-runtime-followup/collect.py "$LAB"
```
The flock ledger reserves run, PNG, named click, camera and pointer moves before
execution. No refund/reset. Runtime is private mode 0700; all swaymsg use explicit
-s, child environments discard inherited desktop sockets. Only owned process
groups are stopped. The deadline is 150 seconds, per-log bound 64 MiB. Sources,
raw protocol/client/scene logs, PNGs, IPC snapshots, timestamps, serials, exit
codes and result manifests stay external. The collector creates manifests once;
verification is read-only with `collect.py "$LAB" --verify`.
Reference border none is applied to its measured con_id, never to the shared
App ID (which also identifies the H1 filler). H2 full RGB must be identical
before input; no crop/tolerance. Clicks use measured painted interiors. The
standard-return command explicitly targets the H1 con_id after H2 gains focus.
Popup tests and native output-buffer/PNG identity remain NOT TESTED.
The protocol describes independent source reconstruction for a future authorized
campaign if historical binaries disappear. Do not silently rebuild or substitute
the compositor in this campaign. Historical LAB paths identify retained evidence,
not a permanent production dependency.
## Actual execution — no retry permitted
LAB `/home/fy59/swayfx-mosaic-static-followup-nhwejz6u`, run consumed.
Verdict INCONCLUSIVE, architecture UNDECIDED. The runner stopped before the
first PNG because it incorrectly required current_border_width=0 after border
none. Actual IPC had border none, stored width 2, empty deco_rect and 800×600
window_rect. The filler retained normal decorations; target/workspace 1 were
focused. The source confirms that border none changes the border enum, not
stored thickness. This is a fixture defect, not an observed rendered border.
The executed runner is intentionally unchanged, including the erroneous predicate.
It is historical experimental source, not a validated replay harness. A future
authorized campaign must correct that semantic check and add its regression
before a separately budgeted run; this campaign may not be resumed or repeated.
No PNG, click or splith command was executed. Camera 0→160 and applied clip were
observed. All principal RGB/input/standard gates remain NOT TESTED. The collector
records those omissions explicitly and verifies owned-process/socket cleanup.
## Freeze receipt
The preservation task verified every entry of the original 24-source and
46-evidence manifests without rewriting them. All Python files match the
sealed final-fixture; run.py matches the historical executed fixture, including
the invalid width assertion. Offline tests and --verify remain read-only
checks of this exhausted campaign. Publication preserves INCONCLUSIVE /
UNDECIDED, zero PNG and zero clicks; it does not convert the fixture into a
validated runner. A new campaign uses a separate directory and budget.