Skip to content

Releases: jmylchreest/clipferry

v0.0.3

Choose a tag to compare

@jmylchreest jmylchreest released this 15 Sep 17:29
v0.0.3
f588244

Changed

  • W→X claims capture the payload before taking the X11 selection, so
    they no longer depend on the Wayland source outliving the claim.
    Bytes still move only on paste for X→W, and for the W→X copies the
    backstop never claims — which is most of them — but a claim we do
    make now costs one transfer. --eager-max-size bounds the capture;
    over-cap types are dropped and logged at WARN, since here "degrade to
    lazy" means the type is lost. Pastes arriving mid-capture are held
    and replayed rather than refused (event=park / event=unpark).

Fixed

  • Screenshots (and any other Wayland copy) no longer need to be made
    twice before an X11 or Xwayland app can paste them. Two defects, both
    triggered by the same 0.3 ms echo:
    • Taking the X11 selection makes xwayland-satellite republish that
      claim onto the Wayland clipboard, which cancels the source being
      proxied — wl-copy exits and the content is gone before the first
      paste arrives (event=paste reason=empty-source). Lazy proxying
      cannot survive that, so the W→X path now captures first (above).
    • That republished claim was not recognised as our own: satellite
      re-exports our X11 TARGETS list minus TARGETS itself, so the
      mirror comes back carrying TIMESTAMP — a superset of what we
      advertised, which failed the subset test. Content types are now
      compared with X11 protocol atoms filtered out of both sides, and
      any such atom fingerprints the offer as a bridge mirror outright
      (event=coexist action=observe-own-claim). The mirror fingerprint
      likewise no longer demands both TARGETS and TIMESTAMP, which
      satellite's mirrors never satisfy.
  • Copies made while an X11 app holds the display no longer need to be
    made twice before they can be pasted. When the backstop filled the
    X11 gap, the Xwayland WM mirrored that proxy claim straight back as a
    Wayland offer (~0.3 ms later); clipferry read it as a fresh copy and
    destroyed the offer it was proxying, cancelling the real source — so
    the whole chain, including a paste already streaming, dead-ended on
    nothing. Our own claim is now recognised by identity and observed
    rather than bridged (event=coexist action=observe-own-claim).
  • A Wayland source that goes away mid-transfer is refused instead of
    being served as a successful empty payload: requestors were caching
    that emptiness as the clipboard contents rather than retrying or
    falling back to another target (event=paste reason=empty-source).

Full changelog: v0.0.2...v0.0.3

snapshot 0.0.3-dev.25+gf5882447

Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Sep 17:28
f588244

Continuous snapshot build from main at f588244.

v0.0.2

Choose a tag to compare

@github-actions github-actions released this 11 Jul 08:53
c4fb2d4

Added

  • backstop mode — claims land only in voids (§10.1) (#14)
  • level= as a first-class logfmt field (#12)
  • logfmt-style structured logging with journald priorities (#11)
  • M5 — Landlock sandbox, packaging, release enablement (#7)
  • M4 — translation table, eager mode, --primary, --skip-sensitive (#6)
  • M3 — all-MIME passthrough and INCR in both directions (#5)
  • M2 — bidirectional text sync with loop prevention by identity (#4)
  • M1 — lazy Wayland→X11 text bridging (#3)

Fixed

  • refresh stale claims on gap-fill; refuse mimes absent from the live offer (#19)
  • causality pairing — a side updating while its fill is pending is the answer, not a new copy (#15)
  • bound zero-progress waits at 2s — silence must never reach requestors (#13)
  • abort X→W transfers when the owner window is destroyed (#10)
  • synthesize text/uri-list for gnome-copied-files-only Wayland offers (#9)

Other

  • release v0.0.1 (#1)
  • tighten README — merge quickstart/install, drop completed roadmap (#17)
  • quickstart, flags reference with defaults, changelog catch-up (#16)
  • bootstrap repository

v0.0.1

Choose a tag to compare

@github-actions github-actions released this 04 Jul 21:59
3a373db

Added

  • backstop mode — claims land only in voids (§10.1) (#14)
  • level= as a first-class logfmt field (#12)
  • logfmt-style structured logging with journald priorities (#11)
  • M5 — Landlock sandbox, packaging, release enablement (#7)
  • M4 — translation table, eager mode, --primary, --skip-sensitive (#6)
  • M3 — all-MIME passthrough and INCR in both directions (#5)
  • M2 — bidirectional text sync with loop prevention by identity (#4)
  • M1 — lazy Wayland→X11 text bridging (#3)

Fixed

  • causality pairing — a side updating while its fill is pending is the answer, not a new copy (#15)
  • bound zero-progress waits at 2s — silence must never reach requestors (#13)
  • abort X→W transfers when the owner window is destroyed (#10)
  • synthesize text/uri-list for gnome-copied-files-only Wayland offers (#9)

Other

  • tighten README — merge quickstart/install, drop completed roadmap (#17)
  • quickstart, flags reference with defaults, changelog catch-up (#16)
  • bootstrap repository