Skip to content

Update cua-driver-bin to 0.27.0 - #395

Merged
spencerbull merged 1 commit into
omacom:masterfrom
f-trycua:chore/cua-driver-0.27.0
Sep 12, 2026
Merged

Update cua-driver-bin to 0.27.0#395
spencerbull merged 1 commit into
omacom:masterfrom
f-trycua:chore/cua-driver-0.27.0

Conversation

@f-trycua

@f-trycua f-trycua commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Update cua-driver-bin from 0.26.1 to 0.27.0 for both supported architectures.

The package retains its same-length installer URL rewrite and pacman-only pm.sh stand-in. Driver 0.27.0 normally detects pacman ownership itself, but failed or timed-out ownership queries are intentionally treated as unmanaged; keeping the package backstop ensures both direct CLI and resolved MCP executable paths fail closed instead of invoking the upstream installer outside pacman and Omarchy's release gate.

The complete vendor tree remains under /usr/lib/cua-driver, with only the two embedded installer URLs rewritten in place so binary size and build identity stay stable. The 24-hour release gate has elapsed, and the live hook selects 0.27.0 with the declared x86_64 and aarch64 checksums.

This is the intended Driver package for the optional Hyprland plugin in #346; that PR's native-input replay and publication gates remain separate.

No issue.

🤖 Generated by GPT-5.6 Sol in T3 Code. Reviewed by GPT-5.6 Sol XHigh.

@spencerbull

Copy link
Copy Markdown
Contributor

Omabot E2E review — NEEDS AUTHOR

Reviewed exact head 9cc3ca867457da38199387283392d14a5fb033a8 against its recorded base c31ef469c5f0dde2654770f5ce578e8b2e559193 on a fresh credential-free Omarchy worker. The package's normal build, install, daemon, capture, accessibility-action, upgrade, and removal paths work, but this is not good to go yet.

Finding

  • P2 — package self-update containment is fail-open. PKGBUILD lines 9–10 remove the unconditional package-side refusal and rely on upstream 0.27.0's ownership probe. That probe deliberately returns “unmanaged” when /usr/bin/pacman -Qoq fails or exceeds 500 ms (ownership source), after which update --apply may run curl -fsSL https://cua.ai/driver/install.sh | bash (installer source). In a mount namespace, I kept the exact pacman-owned 0.27.0 binary in place but forced the ownership query to exit 2: check-update immediately exposed real upstream 0.28.0 and the curl installer command, and update --apply invoked an intercepted fake curl then incorrectly printed Installed cua-driver 0.28.0. The fake curl prevented any mutation and both user-local install paths remained absent. Please keep a fail-closed package shim or make upstream ownership failure/time-out refuse the installer for this packaged executable.

Verified

  • ./bin/build --package cua-driver-bin passed natively for x86_64 on edge, rc, and stable from the exact head; the published x86_64 and ARM archive checksums match the recipe and release assets.
  • The 24-hour gate elapsed during this run; at 2026-09-12T04:30:20Z, the live unmodified hook selected 0.27.0, publication time 2026-09-11T04:30:14Z, and exact checksums 331af677… / 2d973a8d…, while newer 0.28.0 remained quarantined.
  • Fresh install produced cua-driver-bin 0.27.0-1; /usr/bin/cua-driver resolved to /usr/lib/cua-driver/cua-driver; package verification reported 20 files and 0 altered; installed and running binary SHA-256 both equaled bb1b65394e912246220f9f758c9efbbf6260cec16e3562e62a361fa95329377f.
  • The packaged daemon's health_report returned overall: ok: version, session, AT-SPI, native Wayland capture, foreign-toplevel, screencopy, image-copy, output-source, virtual-pointer, and wl_shm checks passed.
  • Using only cua-driver call, the driver launched Omacalc, returned fresh snapshot-bound accessibility tokens and window PNGs, pressed 123 × 456 = through eight fresh background accessibility actions, and a fresh capture visibly showed 56088; verify_state independently observed the exact window across two stable samples.
  • Upgrade from a worker-built master package 0.26.1-1 to the exact PR artifact passed, removed the old tracked pm.sh, retained 0 altered package files, and the normal update --apply path refused with pacman guidance without creating ~/.local/bin/cua-driver or a release tree. Removal then deleted /usr/bin/cua-driver and /usr/lib/cua-driver.
  • The package-specific Cua hook fixtures pass. The exact-head full self-test has four unrelated stale 1Password fixture failures; the same suite passes at current master 5083e0272297d670b3769f1b6899402b9541d19c, which includes merged test: stabilize 1Password sync fixture #396.

Remaining gates

  • GitHub reports this head CONFLICTING with current master, which advanced cua-driver-bin to 0.26.1. Rebase, preserve the 0.27.0 intent, fix the fail-closed updater boundary, and rerun the head-sensitive checks.
  • The x86 worker's ARM/QEMU build attempt failed before makepkg because emulated sudo lost setuid under the container mount; ARM checksums were verified, but no native ARM build or runtime is claimed.
  • PR Add optional ABI-pinned Cua Hyprland plugin package #346's production Hyprland input plugin was intentionally not installed in this package-only review. Raw terminal typing returned the expected background_unavailable, and authorized foreground escalation truthfully refused with production Hyprland input plugin is unavailable; the Omacalc accessibility route proves this driver package's capture and hands path, while the native raw-input replay remains part of the planned exact-pair validation for Add optional ABI-pinned Cua Hyprland plugin package #346.
  • Worker 9001 was destroyed after evidence retrieval. Nothing was pushed or merged. This item is waiting on the author.

Screenshots

Fresh Cua window capture after eight snapshot-bound accessibility actions:

Omacalc showing 123 multiplied by 456 equals 56088

Fresh full-desktop Cua capture showing the test terminal, Omacalc result, and the session-owned agent cursor:

Omarchy worker desktop showing the Cua Driver 0.27.0 E2E terminal and Omacalc result

GPT-5.6 Sol XHigh in T3 Code ran the review and reproduced the installed fault path. A separate GPT-5.6 Sol XHigh T3 source reviewer flagged the P2; GPT-6 Astra XHigh inspected the exact head and independently confirmed that protection depends on a successful pacman query, although it did not classify that dependency as actionable before the worker reproduction. Filesystem-level independence is not guaranteed.

🤖 Generated by GPT-5.6 Sol in T3 Code. Reviewed by GPT-6 Astra XHigh and GPT-5.6 Sol XHigh.

@spencerbull

Copy link
Copy Markdown
Contributor

Small changes. Making updates from my end.

Co-Authored-By: GPT-5.6 Sol XHigh <noreply@openai.com>
@spencerbull
spencerbull force-pushed the chore/cua-driver-0.27.0 branch from 9cc3ca8 to 427720b Compare September 12, 2026 05:11
@spencerbull

spencerbull commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Omabot follow-up E2E review — GO

Reviewed updated exact head 427720b02cff70f7113abdb671c3868aaa96851a against current master fa2010ae6313933bbe3271a745d38471d35b89b3. The prior P2 is fixed: this branch keeps the package's same-length installer URL rewrite and pm.sh refusal while updating Cua Driver to 0.27.0, and GitHub now reports the draft mergeable with both checks green.

Fixed finding

  • The original head trusted upstream's pacman probe, which treats a failed or >500 ms ownership query as unmanaged and can invoke the vendor installer. The updated package rewrites both embedded https://cua.ai/driver/install.sh strings to the equal-length file:///usr/lib/cua-driver/pm.sh; the package helper prints pacman guidance and exits 1.
  • Mutation proof is direct: the original 0.27.0 artifact exposed upstream 0.28.0, reached an intercepted fake curl, and falsely reported installation when pacman exited 2. With the updated artifact, both pacman exit 2 and a simulated 1-second timeout selected only the packaged pm.sh, update --apply returned 1, and neither ~/.local/bin/cua-driver nor ~/.cua-driver/packages/releases was created. The normal pacman-owned path also refused before offering an installer.

Verified

  • The final head passed the complete ./bin/sync-upstream self-test, exact-head x86_64 edge build, fresh install, pacman -Qkk with 21 total files and 0 altered, and removal on a credential-free Omarchy worker. Its package/build inputs are SHA-identical to the immediately preceding rebase tested through ./bin/build --package cua-driver-bin on edge, rc, and stable; the intervening base change touched only Hermes Desktop.
  • The installed CLI reported cua-driver 0.27.0; /usr/bin/cua-driver resolved to /usr/lib/cua-driver/cua-driver; the packaged binary SHA-256 was 72a5d34ace1eed0937bf48f1873de79f3d3f04a72828c4ce25fce2220d483551; it contained zero vendor installer URLs and exactly two packaged-helper URLs. The serving /proc/<pid>/exe hash matched that installed binary.
  • health_report returned overall: ok, including AT-SPI, native Wayland screencopy, foreign-toplevel, image-copy, output-source, virtual-pointer, and wl_shm. Using only Cua Driver calls, the driver launched Omacalc, refreshed the accessibility snapshot before every action, pressed 123 × 456 = through eight background accessibility actions, and a fresh window capture visibly showed 56088; verify_state independently observed the exact window over two stable samples.
  • A worker-built current-master 0.26.1-1 package upgraded cleanly to 0.27.0-1, retained the package-owned refusal helper with 0 altered files, and uninstalled without leaving /usr/bin/cua-driver, /usr/lib/cua-driver, or user-local install paths. The live upstream hook reported no newer eligible release and left the 0.27.0 recipe unchanged.
  • The aarch64 release archive matched checksum 2d973a8d82714cc7a80b99d107bfc68abb6bf0a81e98ff225cc85b0acfebefb3; it contained exactly two vendor URLs, and applying the recipe's replacement produced zero vendor URLs, two packaged-helper URLs, and an unchanged 46,396,216-byte binary.

Remaining boundary

  • Native aarch64 build/runtime is not claimed: the earlier ARM/QEMU attempt stopped before makepkg because emulated sudo lost setuid under the container mount. This does not affect the native x86 proof or ARM checksum/rewrite proof.
  • PR Add optional ABI-pinned Cua Hyprland plugin package #346's production Hyprland input plugin remains a separate validation and publication gate. This package review proves the Driver's capture, accessibility hands path, package ownership, and updater containment; it does not claim that Add optional ABI-pinned Cua Hyprland plugin package #346's native raw-input replay has been installed here.
  • Both disposable workers used for this update were destroyed after evidence retrieval. The PR remains draft and was not merged.

Screenshot

Fresh Cua window capture after eight snapshot-bound background accessibility actions:

Omacalc showing 123 multiplied by 456 equals 56088

GPT-5.6 Sol XHigh in T3 Code ran the worker reproduction and exact-head verification. A separate GPT-5.6 Sol XHigh Codex review and its independent T3 delta reviewer found no source defects; filesystem-level independence is not guaranteed.

🤖 Generated by GPT-5.6 Sol in T3 Code. Reviewed by GPT-5.6 Sol XHigh in Codex.

@f-trycua
f-trycua marked this pull request as ready for review September 12, 2026 05:18
@spencerbull
spencerbull merged commit ecb967a into omacom:master Sep 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants