164 Commits
Author SHA1 Message Date
James Rich 6d972ea406 fix(node): stop presenting MQTT-only nodes as unheard on the current LoRa (#7138) 2026-09-12 04:51:39 -07:00
James Rich 8f4723cbb2 fix(node): keep a contact's public key when a different one arrives (#7118) 2026-09-11 16:20:25 +00:00
James Rich 9db12c6e51 feat(node): signed and verified indicators in place of the PKI lock (#7117) 2026-09-11 13:20:57 +00:00
James Rich 0d15707f9a fix(firmware): move firmware artifact fetching onto the R2 hosts (#7073) 2026-09-08 15:06:06 -05:00
James Rich 5a0cb5cf41 feat: mark nodes not heard since the LoRa config changed (#7055) 2026-09-07 10:44:43 +00:00
James Rich f78268581e feat(messaging): mark unread, swipe row actions, and pinned conversations (#6857) 2026-08-24 20:44:07 +00:00
James Rich 1ab4da0fa6 feat(messaging): per-contact drafts and a quieter composer (#6851) 2026-08-24 10:43:59 -05:00
James RichandClaude Sonnet 5 99075c5dbe feat(hardware): fetch the maintenance UF2 manifest from the API, digest-pinned (#6803)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 17:58:51 +00:00
James RichandClaude Sonnet 5 4651c85361 feat(hardware): fetch bootloader OTA quirks from the API, seeded from the bundled asset (#6802)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 13:23:32 +00:00
James RichandClaude Fable 5 459eb61948 fix(database): give every SQLite connection a busy timeout (#6809)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 12:42:59 +00:00
James RichandClaude Fable 5 b6213f94ec fix(database): rebuild the packet FTS index after the schema-52 table recreation (#6808)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 12:23:57 +00:00
James Rich 3796787cdf fix(database): raise default cache limit and warn before eviction (#6742) 2026-08-17 17:37:51 +00:00
James Rich 2df817db7a fix(node): make node-list search case-insensitive for non-ASCII names (#6753) 2026-08-17 17:37:23 +00:00
James RichandClaude Opus 5 19bb682c9c feat(firmware): add nRF52/RP2040 factory erase and OTAFIX bootloader upgrade over USB (#6526)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 16:43:07 +00:00
Jeremiah K 41414f832f fix(discovery): restore radio state after interrupted scans (#6717) 2026-08-15 23:49:38 +00:00
Jeremiah K e9d09a3380 fix(lifecycle): harden packet admission and transport ownership (#6716) 2026-08-15 21:44:17 +00:00
simulationstation 2f387369c1 fix(messaging): disambiguate sender-scoped packet IDs (#6624) 2026-08-13 13:50:37 +00:00
James RichandClaude Fable 5 b3e3804b78 fix(database): recover from Room's silent connection-pool wedge (#6608) (#6658)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 03:08:37 +00:00
James RichandClaude Opus 5 d5848ad5e0 fix(database): bound withDb execution so one wedged callback can't stall every write (#6661)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 20:45:10 +00:00
James RichandClaude Fable 5 dda971b5ce fix(messaging): time out orphaned "Sending..." messages into a retryable failure (#6630)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-12 02:10:30 +00:00
simulationstation fd8414abe3 fix(database): delete nodes and metadata atomically (#6623) 2026-08-12 01:36:57 +00:00
Jeremiah K 2f191868e9 fix(database): recover wedged observer pools (#6540) 2026-08-01 21:39:16 +00:00
James RichandClaude Opus 5 07d253130b refactor(di): replace Koin string qualifiers with distinct types (#6522)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 20:56:07 +00:00
James RichandClaude Opus 5 2d20cd8a47 fix(ui): give rx_snr real presence semantics end to end (#6523)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 16:40:41 +00:00
James RichandClaude Opus 5 39139398e6 fix(model): rssi explicit presence for protobufs 2.7.26.138 (#6498)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 21:12:28 +00:00
James RichandClaude Opus 5 6c32af9a84 test: revive 80 dormant tests in eight abstract Common*Test classes (#6501)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 21:11:42 +00:00
James RichandClaude Opus 5 b4105e3e3f fix(event): honor disabled node events, gate brand URLs, observe the manifest (#6499)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 21:09:13 +00:00
James RichandClaude Opus 5 4c3196c29a fix(connections): dedupe recent-TCP and reaction list keys (#6494)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 16:19:07 +00:00
James RichandClaude Opus 5 c75223c43a fix(messaging): use mesh time for message timestamps and grouping (#6422)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-07-24 22:12:13 +00:00
James RichandClaude Opus 4.8 bfbf74df1e fix(channels): store channel set per-device to stop cross-device duplicates (#4623) (#6409)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 13:57:39 -05:00
Jeremiah K 8cf8214162 fix(hardware): throttle repeated catalog refreshes for cache misses (#6399) 2026-07-24 16:29:10 +00:00
Jeremiah K 09555a4398 fix(node): reconcile stale identity replays after renumbering (#6259) 2026-07-22 23:53:43 +00:00
Jeremiah K 602b9b086f fix(database): reduce write-lane pressure from one-shot reads (#6255) 2026-07-22 16:50:41 +00:00
Jeremiah K 1bf25121ca fix(database): make DB updates atomic across device switches (#6256) 2026-07-21 14:36:00 +00:00
James RichandClaude Opus 4.8 c0cf5a6da9 fix(database): make the injected DiscoveryDao follow the active database (#6236)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 00:48:45 +00:00
James RichandClaude Opus 4.8 e48640e473 fix(database): route all one-shot DB writes through the merge drain barrier (#6233)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 00:12:57 +00:00
James RichandClaude Opus 4.8 4e48e64e78 fix(database): make completed cross-transport merges retry-idempotent (#6231)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 23:40:17 +00:00
James RichandClaude Fable 5 bc5719c8a7 fix(database): migrate device identity across firmware 2.8 renumbering (#6228)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 22:54:54 +00:00
James RichandClaude Fable 5 5b0d046d42 feat(firmware): nightly preview channel behind the hidden-features unlock (#6225)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 19:41:19 +00:00
James RichandClaude Fable 5 97935eb30d fix(database): force Room single-connection pool on all platforms (#6202)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 18:43:02 +00:00
James RichandClaude Fable 5 7115c176d4 fix(discovery): restore radio home config after an interrupted scan (#6192)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 13:48:04 +00:00
James RichandClaude Opus 4.8 f6a3f091ed test(database): exercise the Room migration chain in CI (#6191)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-10 13:22:42 +00:00
James RichandClaude Fable 5 0a3e000252 fix: address 2.8.0 release-audit findings (#6189)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 12:41:54 +00:00
Jeremiah K a3a8397134 fix(database): recover firmware metadata reads after DB pool churn (#6177) 2026-07-09 23:36:27 +00:00
James RichandClaude Opus 4.8 9e55cdb3eb feat: wire up event-firmware metadata API (offline-first) + post-event firmware reminder (#6162)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 23:53:32 +00:00
Jeremiah K e12c4a579d fix(runtime): harden BLE profile, OTA setup, and DB access (#6126) 2026-07-07 19:58:43 +00:00
James RichandClaude Opus 4.8 6b58a975ef feat(node): label power channels and fix pressure axis scale (#6111)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 16:40:00 +00:00
James RichandClaude Opus 4.8 4ea3f27e8c test: activate dead NodeInfoDao tests (#6113)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 15:13:24 +00:00
James RichandClaude Opus 4.8 4a9f85bf5e feat(database): unify device database across transports (#6096)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 01:41:29 +00:00
Ben Meadors d815d6d363 feat(messaging): translate chat messages in-place with on-device ML Kit (google flavor only) (#6103) 2026-07-06 01:03:38 +00:00