Repository navigation
Build the Cua Hyprland plugin from Cua's kit 1.3.0 - #1015
Merged
Merged
Conversation
The recipe rebased Cua's stable kit 1.1.0 onto the separate Driver 0.32.0 source and re-measured the Hyprland 0.56.2-4 rebuild itself. Kit 1.3.0 carries the plugin source, its packaging tooling and a profile measured on Omarchy edge, so the recipe now builds that kit as published, with the downstream patch layered on as before. The kit's profile pins all 77 packages Hyprland links against, which would block every routine Mesa or GLib update. PROFILE.json keeps Cua's profile but limits the runtime list to the ABI packages Cua's daily compatibility CI tracks, the same pins the package already carries. kit.py derives the kit the way Cua's profile_bundle.py does and refuses any other profile change; kit_test.py runs against the downloaded kit in check(). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kit.py imported profile_verify.py through the file loader, which runs a matching __pycache__ entry instead of the source. In a reused tree (--noextract, --repackage) a planted bytecode file would run before the inventory check rejected it. It now compiles the bytes it authenticated against the kit's SHA256SUMS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Codex XHigh <noreply@openai.com>
ryanrhughes
enabled auto-merge (squash)
October 13, 2026 03:47
Contributor
Author
|
I replayed this on an Omabot Omarchy edge worker running Hyprland 0.56.2-4 with the published
Not covered: the same pairing on real hardware with two monitors. Codex XHigh reviewed the change, and its finding is fixed in this branch. Copilot was requested but never started on this pull request. Merging is your call. 🤖 Generated by Opus 5.5 in Claude Code. Reviewed by Codex XHigh. |
Contributor
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.

The plugin recipe still builds from Cua's stable kit 1.1.0: it rebases that kit onto the separate Driver 0.32.0 source archive, derives its own edge profile, and re-measures Arch's Hyprland 0.56.2-4 rebuild itself. Cua now publishes kit 1.3.0 for Omarchy edge, containing the plugin source, its packaging tooling and a profile measured against Hyprland 0.56.2-4. This builds that kit as published. The Omarchy patch,
downstream.patch, is unchanged; it carries the input-method popup guard and remap-tolerant typing, and applies to the kit's 0.33.2 source without fuzz. With it applied, every source file the module is built from is identical to release 0.32.0-3's, and the module builds to the same bytes.The kit's own profile pins the exact version of all 77 packages Hyprland links against, including Mesa, GLib and OpenSSL. Published as it is, any routine update to one of them would make
omarchy updaterefuse withbreaks dependency … required by cua-hyprland-plugin, the failure this package hit when Hyprland moved from-3to-4. Eight of those 77 have already moved on edge's mirror since Cua measured the kit on 2026-10-04, so the kit as published no longer builds there.PROFILE.jsonkeeps Cua's profile and limits its runtime list to the ABI packages Cua's daily compatibility CI requalifies the plugin against, which are the pins this package already carries. Cua's profile contract asks for exactly that: exact ABI-relevant dependencies. Everything else in the profile is Cua's unchanged: the source identity, and the compositor, header, compiler and runtime hashes.kit.pyderives that kit from the downloaded archive the way Cua'sprofile_bundle.pybuilds one, and refuses a profile that changes anything else. Given the same inputs, Cua's bundler at the kit's tooling commit produces the same eleven files byte for byte.kit.pyruns the kit's verifier from the bytes it authenticated, so a stale__pycache__in a reused build tree cannot run first.kit_test.pyruns incheck()against the downloaded kit. The recipe's build, check and package steps are Cua's rendered recipe with the patch layered on, as before.Every package pin is unchanged, so this is a drop-in upgrade on edge. Any future change to those pins, including another Arch rebuild of Hyprland 0.56.2, now needs a new kit from Cua instead of a re-measurement here. Cua's compatibility feed reports it the day a channel update would break the pins.
Codex XHigh reviewed the change against Cua's tooling and the replay evidence. Merging is your call.
🤖 Generated by Opus 5.5 in Claude Code. Reviewed by Codex XHigh.