Bump Crosstalk to 2.3.1 and update packaging metadata, artifact names, and runtime requirements. Add a draft GitHub release workflow plus release notes, and refresh container/build configs and docs for the new release process.
Introduce a durable SQLite-backed path cache for the Iridium IMT interface so configured destination paths can be captured and restored after restart without enabling Reticulum transport. Add parsing and validation for `persistent_destinations`, support `persistent_path_max_age` expiry, restore logic in the worker loop, and capture logic after inbound packet injection. Update Raspberry Pi/docs example config with the new settings and safety notes, and add unit tests for cache behavior, destination parsing, and persistent path capture/restore lifecycle.
Tightens satellite messaging behavior by rejecting outbound sends that cannot fit a single opportunistic packet (attachments, oversize payloads, or missing paths), forcing opportunistic delivery, and routing cancel requests through the satellite retry supervisor so proof waits/retries stop cleanly. Also adds a conversation-header satellite signal indicator that polls interface stats and shows 0–5 bar quality, with tests expanded for outbound validation and satellite-specific cancellation handling.
Introduces a satellite-specific retry policy that limits LXMF send attempts and spaces retries to a long proof window for enabled Iridium interfaces, while leaving non-satellite setups unchanged. It also updates Iridium transmit behavior to cap modem resubmissions per packet, adds backend validation and persistence for new retry/attempt settings, and expands the interface UI to configure and display these controls. New tests cover modem-attempt caps and satellite retry timing/termination behavior.
Introduces RecentInboundPacketCache, a TTL+capacity-bounded cache that deduplicates exact IMT frame replays using SHA-256 digests. Replaces the boolean mt_message_ready flag with a deque of message IDs to properly track multiple queued MT messages. Duplicate frames are acknowledged but not injected into Reticulum. Adds tests for the new cache and updated receive flow.
Adds comprehensive Raspberry Pi guidance for using a USB RockBLOCK 9704 with native Reticulum-over-IMT transport, updates the sample systemd service paths/user defaults for a Pi deployment, and notes Iridium support in the README. Also adds unit coverage for Iridium MT receive handling to ensure valid frames are injected and invalid frames are still acknowledged, and updates modal prompt input styling for improved dark-theme readability.
Introduce a native Reticulum `IridiumIMTInterface` for USB RockBLOCK 9704 devices, including IMT packet framing, a durable SQLite outbound queue, modem polling/retry handling, and runtime stats (signal bars and queued packets). Crosstalk now installs bundled external Reticulum interfaces into the active config directory and includes the new interface module in packaged builds.
Expose Iridium IMT configuration in the interface creation/edit UI, add Iridium-specific display/status details in interface cards, and add a new `/api/v1/announce/lxmf` route to announce only the LXMF identity on metered links. Also add example service/config docs and unit tests for codec and durable queue behavior.