Repository navigation
Conversation
Noah's call (2026-11-02): images up to 8 MB as they are, bigger ones
re-encoded to fit; the cap raised for kind 32 alone.
- Wire (additive): a host's list says clipboard 2; a device subscribes with
{"accepts":2} and gets images only then ({} stays text alone, so a device
from before is unchanged); `image` is Saffsanity#66's field, PNG or JPEG, at most
8 MiB (Clipboard.maxImageBytes). Kind 32 may be 12 MiB either way
(StreamMessage.maxClientPayload(for:) and maxHostPayload(for:)); every other
kind's cap is as before.
- ClipboardImage.fitted (ImageIO, both ends): a PNG or JPEG within 8 MB as it
is; a TIFF (macOS's own copies) or HEIC as PNG when that fits; else JPEG
at 0.85, scaled down until it fits.
- Host: with no text on the pasteboard, its PNG, JPEG or TIFF goes to the
subscribers that take images, never for a copy of files (their icons); a
device's image is written to the pasteboard (marked as this launch's) and
forwarded to the other image subscribers.
- Device: the Mac's image is written to the clipboard (10 minutes, local
only); the chip offers an image too while the Mac takes them; the Paste
button takes images then (text still wins), fitted off the main thread.
- Words: the Mac's footnote, the Paste hint, a too-big note, README,
privacy.html and support.html.
- sillclient: --clipboard-images.
Checks: clipboard 368 checks; its mutants, 13 new and 7 repointed, caught
(the I4 hole found and closed); compatibility 152; message-reader; run-all.sh
all passed; swift build -c release; the iOS Debug simulator build. Live on a
synthetic host's own pasteboard: a PNG to an image subscriber as is (1,636
bytes), a 15 MB TIFF as a 4.4 MB JPEG, nothing to a {} subscriber; a device's
PNG written byte for byte and forwarded to the image subscriber alone.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The clipboard now carries images both ways, as decided on 2026-11-02: up to 8 MB as they are, bigger ones re-encoded to fit, with the cap raised for the clipboard's messages alone.
What changed
clipboard2.{"accepts":2}and only then gets images.{}stays text alone, so every iPhone and iPad from before is unchanged.imageis the field Sill Viewer: a Mac controlling another Mac #66 already used.accepts, and this device offers it no images. An older device subscribes with{}and gets text alone.Problems found, and how they were fixed
Checks
clipboard: 368 checks, including real PNG, JPEG and TIFF images and a noise PNG over 8 MB fitted to a JPEG within it. Its mutants: 13 new, 7 repointed, all caught.compatibility: 152 checks.message-readerpasses.run-all.sh: all passed.swift build -c release: only the known CaptureProbe warning.{}client got neither.Not checked: a real iPad: the Paste button with an image, a photo's HEIC, writing the Mac's image to the iPad's clipboard. The Mac's real pasteboard. A copy of over 8 MB from the device: the check covers it, but a command line can't carry it.
Risk: a device's image is checked only by its first bytes (PNG or JPEG) before it goes on the Mac's pasteboard, the same trust a device's text gets today. Re-encoding it on the Mac would parse it inside Sill instead. That's your call.
@Saffsanity: on the iPad with this build, take a screenshot on the Mac (⌃⇧⌘4) and paste it in Notes on the iPad. Then copy a photo on the iPad, tap Paste in Sill, and paste it in a Mac app.