Add temporary clipboard paste and lifecycle validation
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 12/100
Rechercherichtung
Start with the linked architecture doc (docs/architecture.md, the team section) and the earlier clipboard work in githubnext/ace2#122, #135, #139, #142 and #147, which this issue summarizes. The remaining scope is temporary image/file paste, image export, and Stop, disconnect and shutdown cleanup, built on Peekaboo's native clipboard transaction gate. Done means the clipboard is restored only when no paste was dispatched and the generation is still current, and hosted and local validation pass.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Status (Oct 6): persistent text, image and file-reference read/write are complete through githubnext/ace2#122, githubnext/ace2#135, githubnext/ace2#139, githubnext/ace2#142 and githubnext/ace2#147 (merge note). Remaining here: safe temporary image/file paste, image export, and the lifecycle (Stop, client death/disconnect, graceful shutdown) and hosted validation below. Draft githubnext/ace2#75 was closed as superseded; its timed 150 ms restoration must not ship. Unresolved-paste ownership validation is githubnext/ace2#78.
Complete the clipboard part of githubnext/ace2#8's input slice through Ace's embedded native bridge, under the channel owner's desktop-tools setting (see githubnext/ace2#8 and the current architecture).
Progress: Plain-text read/write landed in githubnext/ace2#122 (2c36c49). Bounded image reads landed in githubnext/ace2#135 (9c561ba): generation-consistent PNG/JPEG/TIFF previews, explicit orientation/transparency/size metadata, and the existing tool image result. Both have real native and model/durable-reopen proof. Image validation covered ten native cases (including rotation direction, transparent PNG, resizing, white JPEG fallback, absence and bounded refusals), exact persisted text/image results without new calls or usage, and private clipboard restoration with complete owned-runtime cleanup. Persistent text writes use githubnext/ace2#67’s existing unresolved-paste reservation gate; they do not preserve or restore prior contents. Literal text insertion’s temporary paste already landed in githubnext/ace2#67. Read-only file-list access landed in githubnext/ace2#139 (aa48e892): desktop_clipboard_read({format: "files"}) returns at most 32 ordered advertised local file URLs and decoded paths in a complete 24,000-byte JSON result, without opening files, checking existence, canonicalizing paths, or fetching resources. Nine actual native cases and one real model/durable-reopen check passed with private clipboard restoration and full owned-runtime cleanup. macOS filtered three unsupported URL forms before Ace could see them; these correctly returned absent and do not count as native guard coverage. AppKit rejected the legacy-format fixture before a product read, so that guard has source review only. Persistent image writes landed in githubnext/ace2#142 (a8417c9), validated at exact head 86e0c1e: one bounded execution-host image file, GUI validation, original PNG/JPEG/TIFF bytes and UTI, and the existing unresolved-paste reservation gate. Four exact-byte native cases and nine refusals passed, plus one real Claude Opus 5.5 write/read with distinct-worker durable reopen and one actual delayed-paste reservation refusal followed by admission after the exact receiver exited. All phases restored the original clipboard privately and cleaned every owned runtime. File-reference writes landed in githubnext/ace2#147 (f24257b). Safe temporary paste (including temporary image/file paste), image export, and the remaining lifecycle/hosted validation below stay open.
Expose explicit clipboard read/write and targeted temporary paste for text, images, and real file URL items. The clipboard belongs to the execution host. Keep clipboard access and the full temporary-paste lifecycle in Ace's long-lived GUI process, where OS clipboard permission applies; a short-lived native client cannot own reliable cleanup after Stop or disconnect.
Reuse Peekaboo's native clipboard transaction gate and generation claim. Capture all prior items/representations within a bounded preservation budget before writing, retain the exact focused-target receipt and snapshot lease, dispatch the guarded paste, and clean up even after caller cancellation. Restore prior contents only when both hold: no paste input was dispatched or meaningful consumption was observed, and the temporary generation is still current. Otherwise keep the replacement and its unresolved ownership (#78); a current generation alone is not enough, because a delayed paste may still be pending. Preserve a newer human update. Report delivery uncertainty and cleanup outcome separately, and verify the resulting target rather than claiming that dispatch proves consumption. A crash/force-kill cannot promise restoration; never restore stale persisted clipboard contents on a later launch.
The typed text clipboard extension added in githubnext/ace2#122 uses the existing authenticated Bridge transport and operation coordination. Extend that same boundary for images and files. Do not create another clipboard authority, authentication scheme, agent approval, or parallel message/history store. File-content payloads are not file-reference clipboard support: implement real multi-item file URLs. Return bounded text/image previews and file metadata; keep prior clipboard contents out of history unless explicitly read.
Done when real native and pi workflows read/write/copy/paste text, images, and files; temporary paste preserves previous multi-item contents and newer human changes; Stop, client death/disconnect, and graceful Ace shutdown exercise cleanup; local and hosted workspace behavior is verified. Handle native clipboard access refusal through Ace's existing OS permission experience. Keep unverified routes and inevitable cross-process clipboard races explicit.
- Vorherrschende Sprache
- Swift
- Sterne
- 0
- Forks
- 0
- Ø Merge
- 15 Min.
- Gemergte PRs (30 T.)
- 94
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus githubnext/desktop-tools
-
ace documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
githubnext/desktop-tools#104 ·
Maintainer antworten meist innerhalb von 1 Tag
-
documentation
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
githubnext/desktop-tools#75 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 55/100
githubnext/desktop-tools#42 · 29 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 15/100
githubnext/desktop-tools#27 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
question
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 8/100
githubnext/desktop-tools#24 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in githubnext/desktop-tools
Ähnliche Issues
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 92/100
Maintainer antworten meist innerhalb von 1 Tag
-
test(BrainBar): inject synthetic observabilityCadence in BackupsHealth/one-page fixtures (DCI-1)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
EtanHey/brainlayer#1367 ·
Maintainer antworten meist innerhalb von 1 Tag
-
cmux-next: new workspaces show no name instead of workspace-NEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offenarea: workspaces
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
manaflow-ai/cmux#21357 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100