swayfx-mosaic/docs/design/STEP20C_STATIC_E2_TRANSITION_AND_COMPLETION.md
fy59 4ef16a4019 test(mosaic): qualify static nested standard return and integration readiness
E2 is FEASIBLE for the measured matrix. The initial private integration candidate is BUILDABLE; its accepted comment delta is NOT REBUILT. STEP20C remains NEXT and production multi-output remains NOT YET SUPPORTED.
2026-10-13 22:28:14 +02:00

21 KiB
Raw Permalink Blame History

STEP20C static E2 transition and completion

EXPERIMENTAL. Phase B PASS; Phase C FEASIBLE for the tested matrix; Phase D initial candidate BUILDABLE, comment delta ACCEPTED / NOT REBUILT. Independent B/C/D reviews accept these bounded findings. Phase E final deep audit is PASS / ACCEPTED, with no BLOCKING finding. Publication identities are recorded in Git history and the private closeout receipt; this report does not self-reference its publication commit. Ticket: SWAYFX_MOSAIC_STEP20C_E2_COMPLETION_AND_PRIVATE_INTEGRATION_BATCH_V1. Historical freeze: c5f96a34e3924275179365938d02f3a318c0c4bf, verified on Forgejo and GitHub. The historical runtime remains INCONCLUSIVE.

Accepted bounded experiment contract

Canonical architecture, UX, limitations, roadmap, development, packaging and upstream govern. This experiment changes no production or UX contract. All historical LAB bytes remain unchanged. Historical fixture scripts are unchanged, and the repository fixtures remain byte-identical to the Phase A publication baseline c5f96a34 during B–E. The Phase A README status update and its earlier runtime-inventory binding are explicitly documented below.

The derived fixture under tooling/probes/step20c-static-e2-completion/ must share validate_applied_standard_transition(...) between offline replay and runtime. It verifies ordered applied Mosaic, targeted accepted splith IPC, applied standard and stabilized standard observations, with exact owner/root/ workspace/output attribution, absent tiled/root clips and live mapped popups. Pending state is insufficient. Multiple roots or ambiguous epochs are INCONCLUSIVE. Independent observations do not establish atomic generation. Negative tests cover all seventeen specified temporal/provenance failures, legitimate omissions and empty PASS records. The entire E2 assertion path and handoff must be independently accepted before any runtime reservation.

Sole authorized runtime, conditional on offline gates

One fresh private LAB, ticket-specific durable owner and exclusive consumed launch token. Unchanged static binary SHA256 f82557c1a9978a5e9665b9b4291b74880253725359e3df1c5b8d554921f7603b, build ID 942db64269640778ee433e5970ba1100bc60f94c; actual mapped wlroots SHA256 7edca9a7d65855addda68e29ba5db94d57c803eb5fa7d0f86db3136b90ca9837. No SceneFX dynamic mapping, compositor rebuild or pristine control. Private headless H1(-800,0), H2(0,0), each800x600, scale1/normal; runtime0700, clean environment and explicit private IPC socket on every command. Limits: run1, chain1, grabs2, complete clicks4, camera1, transition1, PNG12, positions16, maximum150 seconds. Failed runs are never refunded/retried.

Unique static H2 reference #303038, border none by actual con_id, full content. Two stabilized full-RGB references must be identical without mask/tolerance. A and B open from distinct real button serials with TOPLEVEL->A->B hierarchy, configure/ACK/map/protocol corroboration. Applied camera/owner geometry and root/tiled clips must explain measured Mosaic H1 pixels and whole-H2 equality. Targeted splith preserves workspace and mapped owner/A/B; shared temporal predicate qualifies observed clip removal. Standard H2 overflow is expected. B right press/release comes from a measured solid green interior. Explicit client close of B must be distinguished from popup_done; A retains its XDG object, map, pixels and input. Recalculate A right-click point from a new capture after B disappears. Normal owner close destroys popups; final whole H2 RGB must exactly equal the initial reference, with no A/B residual color. Preserve raw runner, terminal IPC, compositor/client codes and protocol logs, including cleanup/rescue. Terminal IPC1 alone does not undo completed science.

Conditional private integration and publication

Only runtime FEASIBLE plus accepted review permits a private integration candidate outside production Git. Pinned source/patch provenance is mandatory; limits are one SceneFX static build, one Mosaic build, one DESTDIR stage, zero graphical runs/installations. Stage only /usr/bin/swayfx-mosaic and justified notices under /usr/share/licenses/swayfx-mosaic/. BUILDABLE is not production readiness, and the candidate binary has no graphical qualification from E2. Reviewed documentation/fixture source may be committed and pushed normally; no production source, real PKGBUILD, cumulative patch, binary, PNG or build file.

STEP20A DONE; STEP20B EXPERIMENTAL; STEP20C NEXT; STEP20D–G PLANNED. Production multi-output NOT YET SUPPORTED.

Recorded completion — 2026-10-13

This is the current results record for the ticket. The original fixture README is the sealed pre-execution protocol, preserved byte-for-byte in the accepted runtime manifest; its PREPARATION/NOT RUN wording describes that earlier state. Use README_RESULTS for the synchronized current status. Historical reports and fixtures retain their original INCONCLUSIVE verdicts. This report adds evidence, not production architecture, final popup UX, a packaging change or STEP20D implementation.

Phase A — historical preservation

Initial batch HEAD was 54392cc0; historical publication was verified at c5f96a34e3924275179365938d02f3a318c0c4bf, equal to origin/main and github/main at that gate with a clean tracked tree. This identifies the historical publication only; the completion batch has no recorded publication SHA yet. The 60-entry historical source manifest SHA256 is 263f5dbee5e96f2c49619802d063115f792718f6aeb71fa41c58c73b83eb8c91; the 178-entry historical evidence manifest is e8b2307612ce2402ff9b31e68b50a47d666ca38cd8cce1d67096297f8129034a. All entries, thirteen PNGs and raw terminal codes were verified. Historical runner/dispatch1, IPC1 and compositor/clients0 remain unchanged. Historical standard input, explicit B close/A survival and final H2 restoration remain NOT TESTED in that campaign.

The Phase A publication updated only historical repository documentation status, including the runtime fixture README. Its old 92-entry pre-execution inventory still records that README at SHA256 12d324b8cc971565c1e1f59b370cc7ada5df2567f6c6573f8b4f6cf60b8e56d8; the published README is now 9574f2ab2cd538d78f9bf57bf98484dd5fdd66203013658709ddeb02ba5332ed. The inventory and LAB copies remain intact. No new PASS92 is claimed: the final source60/evidence178 seals used here and by replay verify every entry. The final reviewer classified this documentation provenance note NON_BLOCKING.

Phase B — shared applied-transition validation, offline only

validate_applied_standard_transition(...) is shared by replay and runner. It requires source-backed applied/current Mosaic, a targeted accepted splith request, applied standard and at least two coherent stabilized standard observations. Exact owner/root/workspace/output, live XDG hierarchy, protocol and capture identity are correlated, and observed clip reactivation is rejected. Pending state or ambiguous roots/epochs cannot qualify the gate. This bounded correlation does not establish atomic transaction generation.

The old request-start timestamp was absent. Offline replay uses the explicit actual interval [181922658327071,181923034516066], reply 181923035203192, retained old root 181923034904618 and cleared standard roots 181923236944243 and 181923848675032. No old row is discarded. The historical standard PNG has content origin (-398,25), A [-298,105,350,170], B [-198,165,300,130], and H2 A3120/B13260 pixels. This is OFFLINE replay, not a new runtime or retroactive qualification of missing historical input.

The final derived fixture corrects old-configure mixing and the pre-root opening window. All 104 targeted tests pass, including seventeen temporal/ provenance negatives and fifteen explicitly synthetic handoff tests. Nonempty executed receipts are required; the 277 static assertion inventory classifies source sites and is not graphical execution proof. The independent tester reproduced 104 PASS, C17 syntax for four clients and nineteen Python AST checks. The independent reviewer reran 88 pure tests and verified all 104 actual receipts, accepting B. All B gate markers pass before dispatch.

The attempted fresh setup of the older 206-test suite retained 145 PASS and 61 errors from missing preflight native-SHM evidence and dependent source-audit setup. Its 145 preflight checks and replay passed. This setup limitation is separate from the new 104-test gate and does not rewrite the historical qualified 206 result. No synthetic execution receipts were substituted. Early failed bounded tester attempts are retained privately; the final C validation has 28 PASS.

Phase C — sole new runtime, FEASIBLE for this E2 matrix

Private LAB: /home/fy59/swayfx-mosaic-e2-completion-dk1hq9an. The exclusive launch token was consumed once; post-run refusal was verified. There was no E1/pristine-control build or runtime retry. Binary SHA256 remains f82557c1a9978a5e9665b9b4291b74880253725359e3df1c5b8d554921f7603b, build ID 942db64269640778ee433e5970ba1100bc60f94c. Actual mapped wlroots is 7edca9a7d65855addda68e29ba5db94d57c803eb5fa7d0f86db3136b90ca9837. No dynamic SceneFX mapping was observed. Actual rendering used FX/GLES; an environment renderer request is not evidence of Pixman execution. Outputs were H1 (-800,0) and H2 (0,0), 800×600, scale1, normal transform.

Reference container7/PID2130252 was solid #303038 with empty decoration and full client size. Stored border width2 is valid under the observed border-none state. Owner9/PID2130263 stayed in workspace6. One camera scroll -320 changed 480→160; applied scene was (-320,0,640,600), content origin (-318,25). Native SHM420×320 remains distinct from assigned content636×573. Root 0x55b8d482ea30 carried local clip [-482,-25,800,600], global [-800,0,800,600].

Real left serial33/ACK34 opened A; real left serial42/ACK43 opened B. The wire chain was TOPLEVEL XDG9 → A XDG12 → B XDG15. Configure/ACK/map and wire/client observations corroborate both valid grabs. Mosaic A was [-218,105,350,170], B [-118,165,300,130].

Settled capture H1 A H1 B H2 A H2 B Whole H2 reference equality
Mosaic 24080 15340 0 0 Exact
Standard A+B 28880 25740 3120 13260 Ordinary overflow expected
Standard after explicit B close 50660 0 8840 0 Ordinary A overflow expected
Final owner close 0 0 0 0 Exact

Targeted [con_id=9] layout splith request 191234782728967 received accepted reply 191234785087227. First applied standard root was 191234987463354, stabilized root 191235601727206; four more standard callbacks through B input retained absent tiled/root clips. Owner/root/workspace/output and mapped popups were preserved. Standard content origin became (-398,25) with the same A/B rectangles as the old standard replay. Standard H2 popup pixels are expected ordinary overflow, not a reference-equality failure.

Measured B point (10,175) delivered right pair53/54 at local (208,10). Explicit close_b produced exact wire destruction and COMMAND close_b DONE, with no popup_done. A retained the same mapped objects and pixels. A new post-close capture selected point (10,115) and right pair59/60 at local (308,10). Normal close_owner destroyed A before TOPLEVEL and exited0. Final H1/H2 contain zero A/B colors. Reference1, reference2, Mosaic H2 and final H2 all have PNG SHA256 4471e93ccb6cf3ff4970f61fce405431a228af598d2f1f030a3b7586962ecd7a; all 480000 RGB pixels match without mask or tolerance. Twelve captures and six exact A/B geometry/occlusion masks were independently verified.

Runtime was 13.05365723601426 seconds of 150: run1, chain1, grabs2, complete clicks4, captures12, camera1, transition1, positions5/16. Runner and dispatch0; terminal IPC1 retained stderr Unable to receive IPC response; compositor, E2, filler, reference and pointer0. No rescue/watchdog was needed; private runtime /tmp/msng-znx8zrw4 disappeared and owned PIDs were reaped. Response loss during normal shutdown is compatible with these observations, not causally proven. Two startup EGL_BAD_ALLOC enumeration entries are retained; they did not prevent the measured matrix or normal exits. The 256 damage traces are sampled coverage, not complete damage or atomic-generation proof. Independent C review ACCEPTED the FEASIBLE finding; final tester C has 28 PASS.

Phase D — private initial candidate BUILDABLE, annotated delta NOT REBUILT

C's accepted FEASIBLE gate enabled the conditional private integration dossier at LAB/integration-candidate/. Pinned sources: SwayFX fd71a6bdc061bd633b488ae7b83e8a6981d22f86, Mosaic cd550382b311efdbfe3ed892f4e1d281d852e754, SceneFX 37ccd723bef49e6891156ffafce8f549f01446cc, wlroots d783533489e1f75d6886c2ab5c5960090ef268f8. Archive reconstruction and eight historical patches passed applicability and source-equivalence checks. One SceneFX static build, one Mosaic build, one model test1/1 and one DESTDIR stage passed. Zero graphical runs and zero installations occurred. The private initial binary is 616aa504334d88aada5b1596df624957f39b0f1ae975a1a04105fbf73aea6dd0, build ID a0a46860f3b0f1b9dcc7f9044acca7f8489cceec; it differs from C and is graphically NOT TESTED. Private cumulative SwayFX patch SHA256 is 8acde9a9755e0db16fee4c49c479649414bd23f0dab399e4e6a4aa2e1053b1d3, SceneFX 768372773f8755083aa02be5547863b1269ef9facb2131b0a7acc5574c822856. These private patches are not published in the fixture or production patch. No additional Meson delta was needed beyond the existing private static pkg-config selection. PKGBUILD.future syntax passed; recipe execution is NOT RUN and the production PKGBUILD remains unchanged.

The complete stage has exactly five regular owned files:

  • /usr/bin/swayfx-mosaic;
  • /usr/share/licenses/swayfx-mosaic/INCORPORATED-NOTICES;
  • /usr/share/licenses/swayfx-mosaic/SceneFX-LICENSE;
  • /usr/share/licenses/swayfx-mosaic/SwayFX-LICENSE;
  • /usr/share/licenses/swayfx-mosaic/wlroots-LICENSE.

The one-binary Meson manifest is the intermediate stage before notice addition; the final five-file manifest is complete. An initial tester concern about absent notices was corrected against that final manifest. Relocation checks pass; 85 overlapping symbols are characterized, 17 structs/six offsets were locally checked with C17 and 71 transitive libraries inventoried. Semantic ABI maintenance is NOT ESTABLISHED. Conservative notice inventory covers 895 inputs, 599 headers,12 shaders,7 XML,16 generated inputs and282 full notice blocks. Exact extraction/header obligations and legal release clearance remain open: legal compliance NOT APPROVED. Named release/security roles remain required.

The initial independent D review was CORRECTION_REQUIRED on P2 source comments. One bounded comment-repair/ derivation annotated four files in two private patches: SceneFX 21f057ff4180bb5dd35af35070aa4a95923be83f81abb864793e5bfb93643b01, Mosaic 7fee137101abc0cd5024cea172c5904268ddf995bc5855c570e4dfabd643c970. Lexical checks preserve all active C tokens; exact patch application and parent/ annotated hashes pass. Delta review ACCEPTED / P2 RESOLVED. This is COMMENT-ONLY / NOT REBUILT: the original sources/builds/binary/manifests are unchanged; inserted lines may affect __LINE__ diagnostics. The initial recipe was neither amended nor executed for these annotated copies. A future annotated recipe must add both patches after the eight historical patches and requires separate rebuild authorization. D BUILDABLE means initial build evidence plus resolved comment obligation, never a compiled annotated candidate. The sealed results/final-gate.json retains its original review-PENDING snapshot. The authoritative appended /batch/phase-d-gate.json records the accepted final D gate without rewriting that snapshot.

Provenance and independent review bindings

/batch below means /home/fy59/swayfx-mosaic-e2-batch-hyrd8qm1; LAB means the sole C laboratory above. All referenced private manifests and entries were verified; artifacts, raw logs, PNGs, builds and integration patches remain outside Git. The 23 accepted fixture source files, including the original README, remain byte-identical. The current results README is a documentation append, not a modification of the reviewed runtime inputs.

Record Entries / status SHA256
B/C source handoff 73 verified entries b90bd1564acfdd78276843a5fe5ddb2ba1b5fb75fdd5f097fa64f073d0a89cbc
C evidence 66 verified entries 1f3723db89a6a5dca05f094d8e7c370feebcc640c922838b7abecb99167b6067
D initial source 1003 verified entries fca097b0376694fd563b33fb49923086a19d1a5a9cfe5ba9fc045707b07bc61f
D initial evidence 172 verified entries 4be20af63e0ee4f4b5c2187584bbb7087ece1be5cd9d5576246ae5a62eda2957
/batch/review-b-report.md ACCEPTED eddefb3dfbde5410c32b1addf940977d0b2a176c91009597bf4130ba4929ef82
/batch/review-c-report.md ACCEPTED / FEASIBLE e506b42e64a18fd237cea5199f67d49745436ee9a10f01798f07eb2072050f68
/batch/review-d-delta.md ACCEPTED / P2 RESOLVED 6a7299e530ce3abde51997572b0bccccc61c5d88180c15925dcecc6cb76a32d7

The original D review /batch/review-d-initial.md, earlier tester failures, raw terminal failures and historical fixtures remain available unchanged.

Consolidated boundary and next gate

Domain Evidence now recorded Remaining qualification
Static tiled clip Prior static RGB/input/standard retest Wider graphics/daily use NOT QUALIFIED
Static grabbed popups in Mosaic Historical E1 and new C E2 sampled pixels/hierarchy/grabs Other popup families/geometries NOT TESTED by C
Static standard return/input/lifecycle C E2 FEASIBLE, B then A input and explicit normal close Universal click-through/final popup UX UNDECIDED
Hidden-owner guard Historical private evidence New static C hidden-owner matrix NOT TESTED
Saved-buffer continuity Separate historical saved-target evidence Static C continuity NOT TESTED; lifetime gate open
Blur/shadow/effects Historical PARTIALLY_FEASIBLE with retained limits New static C effects NOT TESTED
Scale/rotation/vertical geometry Historical bounded private probes Generalized static pair NOT QUALIFIED
Output migration/resize Historical bounded ownership evidence Static C/D migration NOT QUALIFIED
Damage/stale pixels Settled restoration and 256 sampled C traces Complete/intermediate-frame coverage NOT QUALIFIED
Transaction generation Ordered applied observations Atomic transaction/render/input identity NOT ESTABLISHED
ABI and maintenance D local header/symbol/relocation characterization Maintained semantic ABI, upgrades/security gates open
Private static packaging D initial BUILDABLE, exact five-file stage Annotated source NOT REBUILT; recipe NOT RUN; legal NOT APPROVED
Production integration/distribution No source/package/UX change STEP20C NEXT, production multi-output NOT YET SUPPORTED

Phase E documentation prepares the authorized second publication with intended message test(mosaic): qualify static nested standard return and integration readiness. The final deep batch audit is PASS / ACCEPTED, with no BLOCKING finding. Normal publication identities are recorded by the accompanying Git commit and /batch/closeout.json; no self-referential commit SHA is embedded here. Any graphical qualification of the D binary or annotated rebuild requires a separate bounded authorization; C's result cannot qualify D. STEP20A DONE; STEP20B EXPERIMENTAL; STEP20C NEXT; STEP20D–G PLANNED.

Final audit and gate record

The independent Astra final review is preserved at /batch/final-review.md, SHA256 088f1b0e9d32095d20c842400d865a3e880cf122ce51b952cbf342c99ee3fe3f. It reran 88 pure tests, recalculated all claimed A/C/D manifest entries and C's actual geometry/RGB/input/lifecycle evidence, and accepted publication. No additional runtime, build or staging was executed during closeout.

STATIC_NESTED_RUNTIME_FREEZE=PASS
E2_TEMPORAL_REPLAY=PASS
E2_TEMPORAL_NEGATIVES=PASS
E2_ASSERTION_AUDIT=PASS
E2_OFFLINE_TESTS=PASS
E2_INDEPENDENT_REVIEW=ACCEPTED
STATIC_E2_RUNTIME_PREPARATION=PASS
STATIC_E2_RUNTIME_HANDOFF=PASS
SWAYFX_MOSAIC_STATIC_E2_COMPLETION=FEASIBLE
STEP20C_PRIVATE_INTEGRATION_CANDIDATE=BUILDABLE

BUILDABLE refers to the initial D build; the accepted annotated source delta remains COMMENT-ONLY / NOT REBUILT. Final remote identities and publication outcome are recorded separately in /batch/closeout.json after direct checks.