Switch to @mariozechner/clipboard fork with musl support

fixes #533
This commit is contained in:
Mario Zechner 2026-01-08 04:50:37 +01:00
parent b1fb910625
commit bf9a415541
5 changed files with 155 additions and 150 deletions

View file

@ -31,6 +31,7 @@
- OpenAI Codex context window reduced from 400k to 272k tokens to match Codex CLI defaults and prevent 400 errors ([#536](https://github.com/badlogic/pi-mono/pull/536) by [@ghoulr](https://github.com/ghoulr))
- Context overflow detection now recognizes `context_length_exceeded` errors.
- Key presses no longer dropped when input is batched over SSH ([#538](https://github.com/badlogic/pi-mono/issues/538))
- Clipboard image support now works on Alpine Linux and other musl-based distros ([#533](https://github.com/badlogic/pi-mono/issues/533))
## [0.37.8] - 2026-01-07

View file

@ -38,7 +38,7 @@
"prepublishOnly": "npm run clean && npm run build"
},
"dependencies": {
"@crosscopy/clipboard": "^0.2.8",
"@mariozechner/clipboard": "^0.3.0",
"@mariozechner/pi-agent-core": "^0.37.8",
"@mariozechner/pi-ai": "^0.37.8",
"@mariozechner/pi-tui": "^0.37.8",

View file

@ -1,4 +1,4 @@
import Clipboard from "@crosscopy/clipboard";
import Clipboard from "@mariozechner/clipboard";
import { spawnSync } from "child_process";
export type ClipboardImage = {

View file

@ -17,7 +17,7 @@ vi.mock("child_process", () => {
};
});
vi.mock("@crosscopy/clipboard", () => {
vi.mock("@mariozechner/clipboard", () => {
return {
default: mocks.clipboard,
};
@ -54,7 +54,7 @@ describe("readClipboardImage", () => {
mocks.clipboard.getImageBinary.mockReset();
});
test("Wayland: uses wl-paste and never calls @crosscopy/clipboard", async () => {
test("Wayland: uses wl-paste and never calls @mariozechner/clipboard", async () => {
mocks.clipboard.hasImage.mockImplementation(() => {
throw new Error("clipboard.hasImage should not be called on Wayland");
});
@ -107,7 +107,7 @@ describe("readClipboardImage", () => {
expect(Array.from(result?.bytes ?? [])).toEqual([9, 8]);
});
test("Non-Wayland: uses @crosscopy/clipboard", async () => {
test("Non-Wayland: uses @mariozechner/clipboard", async () => {
mocks.spawnSync.mockImplementation(() => {
throw new Error("spawnSync should not be called for non-Wayland sessions");
});