James Rich
|
693ee19f3f
|
refactor: tighten module boundaries and trim expect/actual (#7436)
|
2026-09-29 14:24:34 +00:00 |
|
James Rich
|
f77bc3d07a
|
fix: data correctness fixes from the Android audit (#7429)
|
2026-09-29 11:29:30 +00:00 |
|
James Rich
|
1b128ffc78
|
build: clear Kotlin warnings, time out hung tests, drop dead config (#7435)
|
2026-09-29 10:48:55 +00:00 |
|
James Rich
|
6279d660d3
|
fix(database): delete old mesh logs in bounded batches (#7423)
|
2026-09-29 10:11:25 +00:00 |
|
James Rich
|
1da95127f1
|
fix(discovery): keep an unheard node's SNR distinct from 0 dB (#7422)
|
2026-09-29 10:11:24 +00:00 |
|
James Rich
|
99f8138e8d
|
fix(database): never publish a replacement pool while the write lock is held (#7418)
|
2026-09-29 10:11:18 +00:00 |
|
James Rich
|
5f82d40914
|
feat(messaging): record signing and ack proof on reactions (#7339)
|
2026-09-24 22:56:05 +00:00 |
|
James Rich
|
f38732aa21
|
feat(messaging): show whether a delivery receipt was proven (#7284)
|
2026-09-24 09:03:15 +00:00 |
|
James Rich
|
da71c2810d
|
feat(node): rank maker hardware between supported and community in the device badge (#7263)
|
2026-09-19 23:40:28 +00:00 |
|
James Rich
|
8bd80e9852
|
fix(nodes): the direct filter no longer returns MQTT nodes (#7256)
|
2026-09-19 20:33:54 +00:00 |
|
James Rich
|
5f242f6505
|
feat(telemetry): surface lightning, PM status and soil-water metrics (#7237)
|
2026-09-19 17:36:36 +00:00 |
|
James Rich
|
eda2a4c72a
|
fix(discovery): write a dwell and its parent check in one transaction (#7204)
|
2026-09-18 14:45:13 +00:00 |
|
James Rich
|
bf4cf1c88b
|
refactor: construct protos through Builder for buildersOnly protobufs (#7115)
|
2026-09-18 04:08:03 +00:00 |
|
James Rich
|
92adb816f9
|
fix(messaging): key conversations to channel identity, not slot index (#7162)
|
2026-09-15 15:18:36 +00:00 |
|
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 |
|