5 Commits

Author SHA1 Message Date
MayaTheShy
00ac2d7d6f fix: prefer wired modems in findModem() to prevent wireless/wired mismatch
WebBridge.findModem() iterated _G.device with pairs() which has
non-deterministic order. On computers with both wired and wireless
modems, it could return the wireless modem while the manager uses
a wired modem - messages never cross the wired/wireless boundary.

Now uses two-pass iteration: first looks for wired modems, then
falls back to any modem. Peripheral scan fallback also prefers wired.
Backward-compatible: boolean arg (preferWireless) still works.
2026-03-29 01:32:37 -04:00
MayaTheShy
caf82ba81d feat(webbridge): implement asynchronous WebSocket connection handling 2026-03-29 00:35:23 -04:00
MayaTheShy
611bc1236c feat(channels): add Channels.match() API and switch default to target mode
- Add Channels.match(name, ch) for dual-mode event filtering
  Returns true if ch matches any active channel for the logical name.
  In dual mode, matches both legacy and target channels.
- Switch default channelMode from 'current' to 'target'
  RT channels now resolve to 4210-4213 instead of legacy 100-103.
- Config default also updated so fresh installs start in target mode.
- Rollback to 'current' mode still supported via setMode().
2026-03-26 16:25:47 -04:00
MayaTheShy
ce673f177d Add function to match modem channel number with logical channel name 2026-03-26 16:19:47 -04:00
MayaTheShy
6050c4e22b initial commit 2026-03-26 15:00:49 -04:00