githubnext/ace2Public

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

Read bounded clipboard image previews #135

Mergediamnbutlermerged 5 commits intomainfromrefs/pull/135/head
  1. IA

    Extend `desktop_clipboard_read` with optional `format: "image"` for #72 and #8. The default plain-text path keeps its existing result and limits. Image reads return one generation-consistent PNG/JPEG/TIFF representation as an oriented preview, with separate source and preview metadata.

    The GUI checks silent clipboard permission, one complete frame, a 10 MiB source limit, and 64 million pixels. Rendering runs off the GUI actor and preserves transparency with PNG when possible, using an explicitly white-composited JPEG only when needed to fit the 1,600-pixel/900 KB preview limits. The existing tool image result carries the preview directly. Reads neither change the clipboard nor release a pending paste reservation. A format parameter on clipboard-write is refused.

    Validation at `c6bd49d42a20cac963eb3c87272a12fb921ab46f`: - Type checks, formatting/lint, Swift syntax parsing, signed build, and strict app/client/dylib signature verification passed. Independent product and finite-helper source reviews passed; GitHub CI is green. - Ten real GUI cases passed: transparent PNG; 2,400→1,600-pixel resize; EXIF orientation6 checked by both dimensions and red-above-blue pixels; TIFF→white JPEG preview (627,317 bytes); absent image; and unchanged-generation refusals for multiple items, multiple frames, malformed PNG, oversized data, and unsupported GIF. - A real OpenAI `gpt-6-sol` channel used one image-read tool call. After its worker closed and reopened, exact text/image results, provider usage, tool logs, and clipboard generation were unchanged. The owned channel/project was then removed. - The user's complete prior clipboard stayed only in the fixture's GUI memory and was restored only while the fixture still owned its generation. Both phases confirmed no retained backup, owned processes, listening port, or desktop socket.

    Local evidence: `/tmp/ace-clipboard-image-check.PZS6Xk/result.json`, `/tmp/ace-clipboard-image-check.aB0564/result.json`, and the corresponding `exact-cleanup.json` files under `/tmp/ace-clipboard-image-live.jkbmSv` and `/tmp/ace-clipboard-image-live.ZUlS1O`. Image writes, files, and temporary paste remain separate slices of #72.

    ### Built in Ace

    Codex used external source, Git, build, and temporary-helper tools under the user's explicit temporary exception while #8 is implemented. Ace cannot yet host this Codex harness (#9) and has no File tab for direct source editing (#22). Runtime checks used Ace's actual signed GUI bridge, host adapter, channel worker, tool result/history path, and real provider credentials; the temporary vault preserved the clipboard privately.

  2. iamnbutlerreferenced this in fix(desktop): recognize complete native patch prefixes #137last month on GitHub

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

  4. iamnbutlerready-for-reviewlast month on GitHub

  5. iamnbutlermerged 9c561baef7d6last month on GitHub

  6. iamnbutlerclosedlast month on GitHub

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

  8. iamnbutlerreferenced this in feat(desktop): inspect exact application menus #138last month on GitHub

  9. iamnbutlerreferenced this in Add GUI-owned clipboard tools and targeted paste #75last month on GitHub