Unify Electron printer discovery targets#616
Conversation
|
Warning Review limit reached
More reviews will be available in 56 minutes and 17 seconds. Learn how PR review limits work. To continue reviewing without waiting, enable usage-based billing in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (14)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
🚀 Deployment Summary
🔗 Quick Links🤖 Updated by GitHub Actions |
Summary
packages/printer/src/transport/device-key.tscodec for serial/usb/winspool/cloud/system/local target IDsDiscoveredPrinter[]from Electron USB/serial IPC instead of renderer-side restampingwinspool:as system-backed while keeping USB/Bluetooth tab membership key-based via shared predicatesDesign decisions
device-key.ts; malformed USB and empty serial/winspool keys parse tounknownand callers keep throwing their existing errors.serial:remainsconnectionType: 'bluetooth'for discovery because it represents OS-paired Bluetooth Classic and must stay visible in Bluetooth UX.winspool:maps toconnectionType: 'system'because it is an OS spooler queue; USB picker inclusion is now based on the parsed device key rather than a false USB label.Companion PRs
Verification
cd packages/printer && ../../node_modules/.bin/tsc --noEmitcd apps/electron && pnpm ts:checkcd packages/printer && ../../node_modules/.bin/vitest run src/hooks/use-printer-discovery.electron.test.tsx src/transport/__tests__/device-adapter.electron.test.ts src/transport/__tests__/device-key.test.tscd apps/electron && pnpm run test:serial-printer && pnpm run test:winspool-printer && pnpm run test:printer-discoverycd /Users/kilbot/Projects/monorepo-v2/.worktrees/unify-printer-device-key && pnpm lintcd apps/electron && pnpm lint