mirror of
https://github.com/earendil-works/pi.git
synced 2026-10-27 07:03:23 +08:00
Replace the external clipboard dependency with small macOS, Windows, and X11 helpers and integrate them into coding-agent. Run native clipboard operations on worker threads and make command fallbacks asynchronous. Preserve incremental X11 transfers, legacy text encodings, native image formats, and existing Wayland and platform tools. Include native prebuilds with ARM64 page alignment, packaging updates, and regression coverage.
Linux clipboard helper
Provides asynchronous X11 text and image reads using libxcb.so.1. Prebuilds support x64 and arm64 on glibc and musl. Reads have bounded waits; if a native operation stalls, the helper remains unavailable until it finishes.
Coding-agent falls back to command-line tools when native reads are unavailable. Wayland reads use wl-paste; all Linux writes use the existing command-line or terminal clipboard paths.
Building
Install a C compiler and XCB development headers, then run from the repository root on each supported Linux architecture:
npm --prefix packages/tui run build:native:linux
Testing
Install the build dependencies plus pkg-config, Xvfb, and xclip, then run from packages/tui:
node --test test/native-clipboard-linux.test.ts
Tests use isolated X11 servers, not the desktop clipboard. They skip when dependencies are missing.