Skip to content

Add Web Serial and WebUSB transports - #6

Merged
GomdimApps merged 2 commits into
mainfrom
serial
Aug 13, 2026
Merged

GomdimApps merged 2 commits into
mainfrom
serial

Conversation

@GomdimApps

Copy link
Copy Markdown
Owner

Adds transport: 'serial' and transport: 'usb' alongside Bluetooth/QZ
Tray, so USB cable printers work with no extra software on
Windows/Linux/macOS. reconnectSerial()/reconnectUsb() for silent
reconnect; usb/profiles.ts ports NielsLeenheer's vendor/product-id
table, with a manual-profile escape hatch like Bluetooth's.

Fix: WebUSB's post-picker SecurityError (another driver already
holding the device) was mislabeled user-gesture-required — now a clear
connect-failed (printerErrors.ts#normalizeOpenError()).

Findings, documented, no code fix possible: WebUSB is blocked by
driver claims on Linux too, not just Windows (docs/notes/11); some
vendor "virtual COM port" tools (e.g. Epson's) never show up in Web
Serial's picker — use QZ Tray for those (docs/notes/12). Recommend
transport: 'serial' by default.

Also: Docker build fixed (node:20-slim, canvas has no musl prebuild);
AGENTS.md/README.md/docs/notes/* condensed.

@GomdimApps
GomdimApps merged commit 93389f4 into main Aug 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant