build(cua-driver): add profile-based Hyprland rebuild kits - #3698
Merged
Conversation
Refs #3550. Preserve Driver 0.24.0 plugin source and separate tooling, environment, and native evidence identities. Add explicit Inkscape-only qualification harness profile without widening production admission.
This was referenced Sep 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
Refs #3550. Adds a profile-based native rebuild kit and qualification harness
for the optional Hyprland plugin. Downstream integration remains in
Omarchy package PR #346.
Published Driver 0.24.0 source assets remain unchanged. Schema 1 retains its
original-source restriction; schema 2 identifies separately reviewed repaired
source. Source integrity, compiler/compositor compatibility, mandatory tests,
production build flags, opt-in installation, and fresh-session replacement
remain required. The initial application profile covers native Wayland
Inkscape on stable x86_64 with two trusted owners in one desktop account.
Earlier repaired-candidate qualification
Tested native harness:
136ceee6850ee08a2c1c092e55478196a4db8f63.At that checkpoint, PR head
a9a1481be945847e89543a7646605eba18b8669eincluded the main sync,schema 2 usage/README corrections, documentation alignment with the tested
duplicate-notification contract, and merged repair #3702. The executable
profile tooling and native qualification harness remain unchanged from the
tested harness; the repair adds its separately tested fault-policy fixture.
Repair #3702 merged as
648c251400ebb356f6d7dbc3d0c835690b9bb4b4, withthe same complete plugin subtree as package source
f256623c97a4f59931f37599d7209e7cb50802ac, whoseexecutable product source equals
e1a41547901acef248d64773ec4f99cffd79dded.The diagnostic proofs use that repaired source with installed Driver 0.24.0.
takeover cancellation and fresh recovery passed. Unsupported-layout and
settled-lock refusal passed without dispatch. Deliberate lock/takeover
transitions remain outside continuous-isolation claims.
claims cover the separately traced action intervals. Same-client passive
hover refusal and original-owner-lane recovery passed; active-lease conflict
and other-lane recovery are not claimed.
pidfd termination, resource pruning, bounded connection retirement, a fresh
click-selection transition, and runtime-close cleanup. All 20 trace rows
were checked. Two primary motion notifications retained the exact unchanged
position; no displacement, focus, held-input, or foreground-input violation
occurred. Recovery cleanup permits approved inert pointer presence with no
reservation or input authority. The preceding attempt remains failed on
cleanup; earlier failures are also retained. Interrupted actions were not
replayed.
The trace-disabled candidate download recipe passed fresh, extraction-reuse,
repackage with
--nocheck, and--skipintegpaths. Each passed all 16 mandatoryCTests. A tampered archive was rejected even with
--skipinteg. All four pathsproduced identical module and build-provenance bytes; package archive hashes
are recorded separately. This used a preseeded candidate archive and does not
prove a published download. Separate native production-package results follow.
65e362aba8b0b6c187b1952791e5a57705cf22262ec100b1c8c6d9ed18215324978d085e985694a339dcc617b57a41ea079abd27df0dab06cdc55dc9a93872c8The kit tooling is independently pinned to
1a9c4985b3e1575ad3bd95182bede74c76789cff; the wrapper qualification usedharness
e4dfabbe0ceb95391f3e7cfd476bda5a85922ea4. The candidate source versionstring 0.26.0 is not the published 0.26.0 release. Its final source must match
the correct immutable component tag before publication.
Further completed gates on the repaired candidate:
delivery, saved SVG effects, and no unexpected primary motion, focus, or
held-input violations. Two owners retained their lanes while a third received
exact
background_unavailable/lane_busywith zero dispatch. The diagnosticwarp-and-return control correctly failed the isolation detector.
by a fresh compositor mapping the exact installed trace-disabled module.
Cold rollback, re-upgrade, removal, and reinstall also passed, each with a
distinct fresh compositor. Installed states mapped the exact expected module;
removal left no payload or plugin mapping and retained desktop capture.
Driver/Inkscape saved-output checks passed after each installed transition.
These are representative checks, not new continuous-isolation claims. The
chained transaction archive SHA-256 is
dcbb935b35758f06133370974f813fb8afe4e1e013dce088ba2d35b34a597e66.cua-driver-bin 0.24.0-1binary, two independent Inkscapeclients passed Ctrl+A/Right/save and click/scroll/drag/save proofs. Saved SVG
and screenshot oracles verified the effects. The independent primary observer
covered all six keyboard and 10 pointer action intervals while its left mouse
button stayed held. Two pointer-motion notifications repeated the exact same
primary object and position; focus, input, and foreground interaction were
unchanged. Any real displacement remains a failure.
return despite equal endpoints. This production negative control proves the
detector remains sensitive; it is not an isolation pass for that action.
Production proofs are bounded
production-package-smokeevidence, notcontinuous compositor attribution or complete desktop-matrix coverage.
Local verification ran 591 harness tests with one Linux-only skip on macOS,
plus 113 release/profile tests without failures.
The unchanged complete Linux runner passed on native Hyprland with source-built
Driver 0.24.0 at
4b3396d9fe4bd3cf723b0eb8db83c18a8764b520and the repairedinstalled plugin: 128 unique cells, 87 delivered, 41 expected refusals, zero
failures, and zero skips. Independent verification checked every required lane,
video/evidence validation, run identity, source/fixture/executable identities,
package, and mapped module. The source-built executable is distinct from the
packaged Driver used above; this is not current-main or Driver 0.26.0 coverage.
The retained review archive SHA-256 is
709da61e4865d98df738aff49c00b613949744c30aaf111578452bca94a56d1e.Final released-source package evidence
The schema-2 profile selects exact component tag
cua-driver-rs-v0.26.1atcc54254464c0c9aebfd6547fe7e4a0ceaf0456d7. Source archives generated locallyand by the release workflow are byte-identical. Kit tooling is pinned to this
PR's final candidate
67f89ceb47edd973aa748820eadd02ddbfb3d3e4.a89bfa7f6490f598719dfabdd2a5badc137e27b0764fd25e6a05e1f9694335207beb736adfd334eed52e84070177634269e3a09f8bb25971b38606933ff4c99751a50ea69db126bcc043bb8721df17477124cdaeceab646486c8586ce308b99aaaa4b39fc32e7b8c74ab14c9801a7e787107674f1f873364dfe50c8d0bdf5016All four final native build paths passed every one of the 16 mandatory CTests;
tampering was rejected under
--skipinteg. Independent comparison confirms themodule, source inventory, native profile, and executable tooling are identical
to the repaired candidate qualified above; only release/provenance metadata
changed. Final build evidence archive:
4bf3fabfe1b0ebedac72b4f5b3c123653aa0ac4c242a665f41d60a38692d0417.A guarded cold upgrade passed package integrity and consumer compatibility,
followed by a new compositor mapping the exact final module. Transaction digest:
4cc3b4ce835f24a80b96476b8fa472e481c0d91aba74cf69a344d1e691149917.A fresh background Ctrl+A/Right/save through actual packaged Driver 0.24.0-1
moved the Inkscape rectangle by two document units and saved the SVG while the
foreground fixture stayed selected. Result digest:
9a07dd3ef1ce8e1c66cbe340228c674a56eef5190a93f273c403ffd79f8c7b21.All five setup clients were subsequently retired through Driver and ordinary
Driver services remained active. This final smoke is representative app proof,
not a new concurrency or continuous-isolation claim. Earlier stale-helper and
setup-service lifetime failures stopped before package mutation or app input,
respectively; those attempts remain retained as failures.
Historical evidence and remaining gates
Original Driver/plugin 0.24.0 qualification passed production-package pointer
and keyboard effects, diagnostic two-lane overlap and capacity, and a complete
full-resolution canonical Linux run with 128 results and no failures or skips.
The default resized-image path remains affected by #3700. Those historical
passes retain their original identities and do not certify repaired bytes.
The original later-motion app-recovery defect is tracked in #3701 and repaired
separately in #3702.
This PR merged as
a7d1645fbeb62782e25d8ec63ac37330a1a99645, with anidentical tree to candidate
67f89ceb47edd973aa748820eadd02ddbfb3d3e4.All 113 packaging tests passed again at the merge SHA. The source repair and
Driver 0.26.1 release PR #3707 are merged; the immutable component tag resolves
to
cc54254464c0c9aebfd6547fe7e4a0ceaf0456d7and its release is public.Profile kit 1.1.0
is published without replacing earlier release assets. Anonymous source/kit
downloads match the qualified files. The exact downstream wrapper fetched
the public kit into a fresh native directory and passed
makepkg --verifysource.The qualification record
documents the final identities and bounded claims.
The final kit's native build matrix, byte comparison, cold upgrade, fresh
compositor mapping, and saved-output Inkscape smoke passed. Test clients were
retired and ordinary Driver services remained active. Final cold evidence
archive:
d41718ed8a1b003565d1fad693e1d9b7c6c016f25fcfc7dc85e0e2384510e27e.Final app/retirement archive:
b2535555560e211d7c09518dc4b8a1e2e3907c721528ba1060042cff2bb9b7f8.Omarchy owns integration, Omabot replay, and signing/publication. A named
downstream release owner and fresh signed installation remain required.
Downstream #346 remains held and excluded from scheduled builds until
Omarchy's own gates pass. A Fleet qualification is not an Omabot replay.