cua-session
| Version | 2026.261.1747 |
| Repo | box/github.com/opencharly/layer-cua:v2026.269.1859 |
Wires Cua Driver into the logged-in graphical session as systemd USER units —
the daemon (cua-driver serve) and its MCP endpoint (cua-driver mcp behind
supergateway on :3000). The driver cannot run outside the session (it needs
WAYLAND_DISPLAY / XDG_RUNTIME_DIR / the AT-SPI bus), so the units are gated on
graphical-session.target and carry ConditionEnvironment=WAYLAND_DISPLAY. The
desktop account is resolved from uid 1000 at install time, so the candy
composes onto any single-user desktop. Verifiable on the built image: the two
unit files exist and are enabled under graphical-session.target.wants.
Acceptance plan
Section titled “Acceptance plan”This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.
| Intent | Step |
|---|---|
run |
install supergateway (the stdio→Streamable-HTTP MCP bridge the driver-mcp unit runs) — best-effort; the MCP endpoint is optional and the daemon works without it |
run |
write the Cua Driver session units (global systemd user units) |
run |
enable the units for the desktop user’s graphical session (global user units; systemd enables them for every user) |
check |
the two Cua Driver session units exist |
check |
the driver daemon unit is enabled for graphical-session.target |
check |
the units gate on a live Wayland session (the driver cannot run outside it) |