Releases: prime-radiant-inc/clipfan
Releases · prime-radiant-inc/clipfan
v1.0.9
Clipfan 1.0.9
Fixed
- Fixed Clipfan idle CPU regressions by removing the menu app's hidden background daemon polling and backing off the daemon clipboard poll after repeated idle reads.
- Prevented stale tmux servers that still have old global buffer hooks from recirculating daemon writebacks through
clipfan copy. - Daemon upgrade detection now compares the bundled helper bytes with the installed helper instead of trusting matching version strings, so stale same-version payloads are replaced.
v1.0.8
Clipfan 1.0.8
Fixed
- App-launched macOS daemons now get the local and Homebrew tool paths they need to detect screenshot and Preview image copies when the menu app starts the daemon itself.
v1.0.7
Clipfan 1.0.7
Fixed
- Large clips (up to the 64 MiB stream payload limit) now sync: the daemon's
/v1/currentapply endpoint accepts bodies up to the stream frame limit instead of silently truncating at 1 MiB and failing signature verification with a 401. - A clip a peer cannot apply no longer kills the sync stream or poisons the reconnect loop: the gateway answers with a
rejectedack and keeps serving, and the sending daemon drops the rejected clip from its pending queue instead of resending it on every reconnect. - The gateway now tolerates transient local-daemon poll failures (up to ~10 s) instead of tearing down the stream on the first error.
- Clips larger than the stream payload limit are skipped at publish time with a logged warning instead of wedging the per-peer send queue.
- The daemon now logs the stderr of its ssh sync processes, so remote gateway errors (previously discarded) are visible in the daemon log.
v1.0.6
Clipfan 1.0.6
Fixed
- Fixed a copy-triggered menu bar lockup by replacing the status item
TimelineViewanimation with a bounded sequence of pre-rendered frames.
v1.0.5
Clipfan 1.0.5
Added
- The menu bar now shows Install Update… when Sparkle finds a new app release, and startup probes recommend available app updates through Sparkle's standard installer.
Fixed
- Fixed the menu bar copy animation so new cards slide into the stack in the same staged fan motion as the prototype.
v1.0.4
Clipfan 1.0.4
Fixed
- Restored subtle menu bar card faces so dark mode and the copy animation read as a stacked hand without regressing to a solid square.
v1.0.3
Clipfan 1.0.3
Fixed
- Fixed the menu bar icon rendering as a black square by switching the compact status glyph to outline template artwork with enough negative space.
v1.0.2
Clipfan 1.0.2
Added
- Animated the menu bar icon so new local clipboard writes fan a card into the stack.
Changed
- Removed row icons from the menu bar dropdown.
- Open Clipfan windows now participate in the macOS app switcher.
- Aligned the app icon, About screen icon, and menu bar card stack artwork.
Fixed
- Removed the global tmux buffer hooks from the installed tmux integration so daemon writebacks, unrelated tmux sockets, and stale paste buffers cannot re-submit as fresh local copies.
- Prevented mesh-heal from scanning virtual/private bridge address piles by filtering Docker, bridge, VM, and tunnel interfaces before roster-read advertises LAN candidates.
- Mesh-heal now fails closed when a host reports an oversized LAN candidate list, keeping the primary address instead of keyscanning hundreds of self-reported candidates.
v1.0.0
Clipfan 1.0.0
Removed
- Removed the disabled peer HTTP sync runtime, including the
/v1/clipreceive route, peer HTTP push client, daemon fanout path, peer HTTP release gates, and Swift peer-version probing/update-offer UI.
Changed
clipfan copyand the SSH gateway now apply clipboard updates to the local daemon through the signed loopback/v1/currentendpoint.- Fleet sync is SSH-stream-only, and config v2 writes are now treated as baseline release behavior instead of a generated transport gate.
- Current docs and release-gate scripts now describe the SSH sync architecture rather than the removed peer HTTP implementation.
v0.4.3
Clipfan 0.4.3
Fixed
- mesh-heal now heals a peer that shares only a LAN with the rest of the fleet (a peer on a different tailnet): when a host's Tailscale address is unreachable from a peer it must mesh with, mesh-heal falls back to a LAN address that peer can reach, verified by the host's SSH key (so a shared docker/bridge address can't be mistaken for the peer). Resolves the cross-tailnet known limitation noted in 0.4.0.