githubnext/ace2Public

Ace: a collaborative coding environment on the team's own machines

Add GUI-owned clipboard tools and targeted paste #75

Closediamnbutlerclosed 1 commit intocodex/desktop-keyboardfromrefs/pull/75/head
  1. IA

    Add clipboard read/write and temporary, target-bound paste to Ace's existing desktop tools for #72 and #8. Values support text, one PNG/JPEG/TIFF image, and multiple ordinary file/folder URLs on the channel's execution host.

    The embedded GUI owns temporary paste from complete bounded preservation through generation-checked restoration. It leases the observed focused window, uses claim-guarded Cmd+V, preserves newer clipboard updates, and reports delivery, cleanup, and unverified app consumption separately. Mutation replies never echo prior contents or image/file payloads. The host handles file staging and image previews, and Settings reports the native clipboard read policy. Mutations retain pi's existing unsafe/no-replay path and the current collaborator-agent switch.

    **Draft — real native clipboard/paste, restoration/newer-generation, Stop/disconnect, local/hosted model and replay, and Settings permission validation have not run because the desktop is locked.** A disposable real AppKit receiver has been compiled and signed but not launched. A GUI crash or force-kill cannot guarantee restoration; there is no restore journal.

    ### Validation

    - Passed all package type checks and formatting/lint checks. - Passed Swift release compilation, the complete signed desktop build, and deep/strict codesign verification. - Verified the pinned clipboard patch applies forward to its saved base and passes reverse/idempotence checks in repeated desktop builds; existing click and typing patches remain intact. - Real host FIFO input with no writer refused before native dispatch in 3 ms. - Reviewed all 13 changed files through Ace's changes/patch surface. Coordinating and independent native source reviews found no remaining blocker after correcting unreadable clipboard representations and confining payload filesystem access to the host/client. - React Doctor reported no findings in this PR's changed files; its five warnings concern existing files elsewhere.

    ### Built in Ace

    Dependency installation, builds, checks, the real host FIFO check, Git, and GitHub commands ran through dedicated Ace terminals. Final diffs were read through Ace's changes/patch API.

    Codex coordinated agents and used external filesystem tools for source edits, reads, and temporary validation helpers because Ace cannot yet host/resume Codex as a harness (#9) and lacks its File tab for direct editing (#22). No desktop interaction or native clipboard calls were performed while the Mac was locked.

  2. iamnbutlerreferenced this in Add temporary clipboard paste and lifecycle validation #72last month on GitHub

  3. iamnbutlerreferenced this in [Meta] Complete native computer use in Ace #8last month on GitHub

  4. iamnbutlerreferenced this in Preserve literal newlines when inserting text into web composers #76last month on GitHub

  5. iamnbutlerreferenced this in Add literal desktop insertion with reserved clipboard ownership #67last month on GitHub

  6. iamnbutlerreferenced this in Keep clipboard ownership while a native paste is unresolved #78last month on GitHub

  7. iamnbutlerreferenced this in Validate native text insertion on hosted channels and under interruption #65last month on GitHub

  8. iamnbutlerreferenced this in Land desktop inspection/actions and tab API from feat/github-cache #89last month on GitHub

  9. iamnbutlerreferenced this in feat(desktop): add plain-text clipboard tools #122last month on GitHub

  10. IA
    Author

    Extracted the first focused slice into draft #122 at `3aff2bf`: explicit plain-text read/write, with complete bounded reads and persistent writes admitted by the existing pending-paste gate. It does not add temporary paste, image data or file references. Existing literal-insertion ownership code remains unchanged.

    The old #75 branch is preserved for reference; its timed 150 ms restoration must not ship because it can expose private prior contents to a delayed paste. Image/file access and temporary paste will be separate follow-ups using meaningful consumption and ownership.

    Types/lint, Swift parsing, independent source reviews, signed build/signature checks and real patch-stack application/repeat-build/drift checks pass. #122 remains draft while runtime permission, clipboard preservation, reservation, model and replay checks are completed. No live clipboard write has been performed for this candidate yet.

  11. IA
    Author

    Closing as superseded (not merged; branch `codex/desktop-clipboard` kept for reference). Its scope shipped in focused PRs: #122 (plain-text clipboard read/write), #135 (bounded image previews), #139 (file-reference reads), #142 (bounded image writes) and #147 (ordered file-reference writes).

    Remaining safe temporary paste / image-export work stays tracked in #72. Per https://github.com/githubnext/ace2/pull/75#issuecomment-6001503432, this branch's timed 150 ms restoration must not ship: it can expose private prior clipboard contents to a delayed paste. Follow-ups must use meaningful consumption and ownership instead.

  12. iamnbutlerclosedlast month on GitHub