# Delegation plan — computer-use UI parity + backend polish Units: 6. Mode: single-agent sequential execution (subagents not authorized for this session; ledger kept for ordering and verification evidence). Recon basis: docs/computer-use-cua/codex-ui-recon-2026-09-21.md. | # | Unit | Files (mine) | Worker | Acceptance | Status | | --- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | 1 | Cursor life: visual-only glide + press pulse for compact cursor (no input latency added) | apps/desktop/patches/cua-driver/0001-synara-native.patch | self | Patch still applies cleanly to pinned upstream; embedded rust tests extended + pass if buildable; motion is post-dispatch only | verified — patch regenerated (sha 62403065 after comment scrub), applies clean + byte-identical tree; 55 cursor-overlay + 421 platform-macos tests green; PNG dump eyeballed; rev-21 binary provisioned, metadata reports 21 | | 2 | Preview working orb + visual polish: animated "agent working" glyph in status pill, softer cursor halo | apps/web/src/components/chat/ComputerPreviewPopover.tsx (+ small new component if warranted) | self | Vitest suites pass; visuals verified via verify skill or component tests; reduced-motion honored | verified — sonar ping while agentActive + cursor-halo glide transition (motion-reduce honored); 62 focused tests green; react-doctor 63/100 (was 62), file carries no giant-component/refs findings | | 3 | Preview placement: detach popover into a draggable floating card, re-dock on close | apps/web/src/computerPreviewStore.ts, apps/web/src/components/chat/ComputerPreviewPopover.tsx, .logic.ts, ChatView.tsx, apps/web/src/components/computer/useComputerPreviewFloat.ts | self | Store machine gains floating phase w/ re-dock; drag persists per thread; tests updated | verified — per-thread floating map w/ clamp-on-render, portal + pointer-capture drag, dock/pop-out buttons, rail inset released while floating; store/logic/component suites green | | 4 | Driver frame-attach suppression on tree-only reads (get_state p95) | apps/server/src/computer/CuaComputerBackend.ts, computerCallContext.ts (+ tests, flag docs) | self | Tree-only replies omit cached frame; protocol rev bumped if wire-visible; tests updated | verified — source read shows pinned upstream `7fe7c33f` already gates attach on `should_capture` (rev-17 bug was old upstream code, fixed upstream); found instead that `SYNARA_CUA_AX_ONLY_GET_STATE`'s omit-fields shape triggered the driver's DEFAULT-capture path — flag removed, explicit `include_screenshot:false` now always sent; 156 tests green | | 5 | Backend polish sweep: bloat/latency/reliability wins found during the above | scoped to findings | self | Each change small, tested, atomically committed | verified — audited observe/settle/reuse/health paths; rejected driver-query forwarding (projection not provable superset of host labelContains semantics) and run-step tree reuse (post-action listings must be fresh); found + fixed real bug: tree-only get_state failures marked captureFailed (health reported capture unavailable though no pixels requested) — gated mark on wantsPixels, regression test added; 113 backend tests green | | 6 | Sync agent/computer-use-preview with upstream | n/a | self | Clean sync, tests still green, no push | verified — merged upstream/main (56 commits) as 6acea1155; merge chosen over rebase: branch is published + 15 intentional merges would flatten; 11 conflicts resolved as semantic unions (capability leases + spawn DI, shared framer + upstream resync subsumed, session-stop + computer-intent order, cache-review guard + computer dispatch fields); typecheck server/web/shared clean; 594 conflicted-file + 540 computer-use tests green; no push | | 7 | Cua desktop flavor: isolated identity (synara-cua:// origin, synara-cua userData, .synara-cua home, .cua bundle id) + trusted-origin + clipboard-scheme coverage | packages/shared/src/desktopIdentity.ts (+test), apps/server/src/trustedOrigins.ts (+test), apps/desktop/src/clipboardPermissions.ts (+test) | self | Cua resolves its own identity; trusted origins + clipboard scheme include cua; focused tests green | verified — resolver/identity/CORS/clipboard all carry cua; 7+10+12 focused tests green; packaged artifact confirmed: synaraCommitHash=0405318f8, bundled driver 0.28.2 rev 21, synara-cua userData + scheme live at runtime | Notes: approval-card app icons and per-app playbooks are deferred — both are larger surface changes (icon bridge / guidance schema) best sequenced after the core visual pass lands.