github utopusc/livinity-io v44.91

latest releases: v1.1.15-beta.2, v1.1.15-beta.1, v1.1.14...
one month ago

Phase 303 — Clipboard copy-paste in VNC streams

Bidirectional clipboard now works in every streamed surface — web apps, native apps, X11 displays, and the master-Chrome login — wired entirely in the noVNC hook (use-webapp-vnc.ts), so all four consumers get it with zero component changes.

Copy (guest → host)

When you copy inside a streamed app, it mirrors to your local OS clipboard automatically (noVNC clipboard event → navigator.clipboard.writeText). Gated on document.hasFocus() so a backgrounded/untrusted guest can't silently overwrite your clipboard.

Paste (host → guest)

Ctrl/Cmd+V over the stream now pastes your host clipboard into the guest app. The keystroke is intercepted in the capture phase (beating noVNC's own canvas handler), the host text is pushed into the guest selection, then a self-contained Ctrl+V is synthesized so the focused app pastes the fresh buffer. Cmd+V on macOS maps to a guest Ctrl+V.

Robustness (adversarial review)

  • Graceful degradation: if the Clipboard API is unavailable (insecure context), the raw Ctrl+V falls through to noVNC instead of dying.
  • Ignores OS key-repeat (one paste per press); aborts cleanly on unmount; viewOnly streams opt out.

Gates: vitest 26/26 · UI build 0 · backend untouched. Adversarial 4-lens review (22 agents): 13 findings fixed, 5 false positives rejected.

🤖 Generated with Claude Code

Full Changelog: v44.90...v44.91

Don't miss a new livinity-io release

NewReleases is sending notifications on new releases.