swayfx-mosaic/tooling/probes/step20c-minimal-core-gate/README.md

6.2 KiB

Minimal private core gate — preserved experimental fixtures

This is the source archive of the consumed SWAYFX_MOSAIC_STEP20C_MINIMAL_CORE_BUILD_RUNTIME_AND_GPU_FIELD_GATE_V1 campaign, not a production dependency or a new execution authorization. Scientific result: PARTIALLY_ADVANCED. Recommendation: PRIVATE_CORE_NEEDS_TARGETED_EVIDENCE. STEP20C remains NEXT; production multi-output remains NOT YET SUPPORTED.

The private laboratory is /home/fy59/swayfx-mosaic-minimal-core-2l7riqt_. The ledger has 12 distinct consumed runs out of 14, 88 output-capture debits out of 180, one initial core build per component, one diagnostic GPU build pair and one DESTDIR stage. Failed attempts remain consumed. The two optional slots are not retry slots. No existing run, build, stage or test is to be repeated under this archive. No production installation was performed.

Contents and provenance

provenance.json binds every copied file byte-for-byte to the private LAB and references the larger immutable manifests and receipts by SHA-256. Generated extracted .inc bodies, functional private core patches, fork sources, clients' binaries, build trees, PNG captures, raw GPU readbacks and large logs remain outside Git. This is deliberately not a self-contained compositor source kit.

  • c-tests-fixed/: C17 geometry tests and exact-byte extraction/command scripts. The private finite-scroll correction passed 184 assertions in normal, UBSan and ASan+UBSan variants; the original six UB reproductions remain in the LAB. Extraction requires mosaic-fixed/ and scene-core/ under the private LAB and generates the excluded core bodies. The reduced adapters do not reproduce full compositor ownership or ABI.
  • c-tests-lifecycle/: real core slice extraction and reduced adapters using native Wayland listeners and Pixman regions. Ordinary variants passed; targeted sidecar allocation failure terminated each variant with raw -6 / SIGABRT. OOM_ABORT_EXPERIMENTAL, availability risk P1, is not an accepted production contract. Its README describes the exact coverage and the preserved first fixture failure.
  • graphics/: the final R2 Python fixture sources, sealed configurations, C17 client/protocol sources, input trace fixture and bounded repair tests. run.py, gate.py, prepare.py and seal.py retain historical laboratory assumptions; moving them does not establish a valid source freeze, binary identity, accepted independent review or durable ticket ledger.
  • gpu-field/: frozen readback validator, analysis and offline test source. test_native_hash.py requires the excluded diagnostic header under scene/render/fx_renderer/gpu_field_private.h; its earlier ten CPU hash cases passed, but no new execution is claimed by preservation.
  • evidence/: final consumed budget, independent E/F review transcription, GPU rejection/layout audit, local ABI provider summary and the separate correction of an aggregate R2 exit-count error. Transcriptions are labelled as such; original runtime receipts are unchanged.

The exact core binary is 29baf31aa3eeed259825c87d0799fa5d3dc83710afb967154604eb1c6657f965 (Build ID 1b42e557e38db3440ae8dcf7ac967e4132223365). The GPU diagnostic is 1905a20fa72ebcc7ec47d1584a4653654280288096a20005199eb75673ac0383 (Build ID 1505e31c3dc08d2a7799c2ee9e1b2705eb61f5fe). Their runtime data are distinct. Both used the measured wlroots library 7edca9a7d65855addda68e29ba5db94d57c803eb5fa7d0f86db3136b90ca9837.

Recorded execution and limits

The historical C commands were python run.py from the corresponding private C test folder; each command, stdout/stderr and raw return code is retained there. Graphical runs were reserved through python -B graphics/run.py <ID> and the sole G1 through python -B gpu-field/runner.py, with private runtime directories, sockets, reviewed byte freezes and local/global debits. These commands describe consumed evidence; they are not instructions to launch again. Any future reproduction requires a separately authorized scope and budget, exact parent replay, new private source/binary identities and independent gates. Never point these scripts at a daily desktop socket or reuse a consumed token.

E0 controls and the vertical cell stopped before captures on a fixture error. E1's first chain, fractional/R90 and resize/migration provide sampled evidence; standard return and fullscreen policy are not qualified by comparable controls. E5's chain was dismissed by outside input before camera return. E6 observed a natural timeout before late ACK, but its frozen validator still failed. E7 classic blur was exercised; shadows were not. Whole-H1 A/A-return retained 33,789 different pixels without mask or tolerance. Exact sampled H2 does not prove complete damage, native saved identity, GPU lifetime or atomic generation.

G1 stopped after nine first-A sample records and 8,312,048 raw bytes because the frozen validator rejected the auxiliary DMA-BUF plane stride. No accepted epoch receipt, B/A-return epochs or causal analysis exist. Read success remains NOT PROVEN, the GL error queue UNOBSERVED and whole-field causality INCONCLUSIVE. The modifier audit explains the invalid per-plane stride assumption without changing the validator, accepting rejected bytes or refunding the run.

Runner exits, terminal IPC exit 1, compositor/client exits and normal client closure are separate evidence. A runner's scientific_cleanup=PASS here is its process-recovery gate; E1/E6 normal close was not acquired and E2 helpers show error 32 despite nested owners closing normally. G1 scientific cleanup remains INCONCLUSIVE. Mechanical process recovery alone is not a GPU lifetime proof.

Read the build/C report, graphics qualification, lifetime/damage report, GPU follow-up and ABI/integration decision for the actual scientific matrix and remaining gates. Publication of this source archive does not authorize merging the private core, distribution or daily use.