Bumps Crosstalk to v2.3.2 and updates release docs to use version-matched tagging examples instead of a one-time first-release note. Also updates desktop distribution docs to clearly explain first-run macOS and Windows prompts for unsigned binaries, and adjusts macOS build config for unsigned packaging by disabling hardened runtime and setting identity to "-".
Rework the Crosstalk overview to emphasize usability and visibility improvements: clearer transport/infrastructure visibility, easier interface setup, UI upgrades, and reliability fixes. Keep Iridium IMT details while repositioning them after core day-to-day benefits and updating the project tagline to match the new focus.
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.
Reworks the README into a concise product-focused guide: updates branding/intro, highlights Crosstalk-specific capabilities (especially Iridium IMT and field operations), and streamlines install/development instructions. It also replaces long legacy walkthroughs and speculative sections with clearer links to practical setup docs and upstream compatibility context.
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.
Reworks Raspberry Pi fallback networking to use hostapd + dnsmasq with strict WPA2-PSK/CCMP instead of NetworkManager AP mode, including runtime config generation, PID/process checks, NetworkManager handoff, and updated deployment docs/package requirements. Also overhauls the messaging UI for mobile: adds slide-out navigation and route-close behavior, improves responsive layout and safe-area handling, updates chat/sidebar visibility flow, and increases touch/accessibility affordances with larger controls, aria labels, and button semantics.
Adds a bash supervisor script and systemd service that monitor wlan0 and activate the `aspen-iridium-hotspot` AP profile when no usable station connection (NM state 100 + IPv4) is found after a configurable grace period. Includes a README documenting the priority logic and trail access details.
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.
Reworks frontend terminology and navigation to use clearer names (e.g., Connections → Interfaces, Tools → Diagnostics), adds an Explore sidebar section, and updates related page copy/actions for consistency. Improves dropdown reliability by teleporting menus to `body` with viewport-aware positioning, and significantly upgrades infrastructure/network visuals with deterministic infrastructure icons, richer map controls/stats, refined graph styling, and better loading/interaction behavior.
Introduces the new Crosstalk visual identity across Electron and frontend assets (logos, icons, splash screen, dock icon) and applies a broad UI refresh with updated dark-theme tokens, layout polish, and renamed “interfaces” UX language to “connections.”
Adds reusable UI primitives (Badge, BaseButton, EmptyState, HashChip), deterministic identicons, and in-app overlay infrastructure (modal/toast hosts) to replace native alert/confirm/prompt flows with consistent branded dialogs and toasts. Also updates key pages (messages, calls, nomad network, settings, tools, about, network visualiser) for improved navigation, feedback, and component consistency.
Introduces signed Reticulum infrastructure discovery end-to-end: the backend now enables interface discovery, exposes `/api/v1/discovered-interfaces`, filters out LXMF contacts, and returns safe, UI-ready fields including derived discovery destination hashes. The frontend adds a new Infrastructure page/route/sidebar entry, periodic refresh/search/stats UI, and network visualiser nodes/links for discovered infrastructure.
This also makes interface/config changes reliably apply by enforcing a dedicated Reticulum instance (`share_instance=No`) and adding a standalone backend restart API. Non-Electron restart handling now polls `/api/v1/status` for a new process instance ID before reloading, and interface/transport settings flows were updated to always use this restart path. Dependency minimum for `rns` is bumped to `>=1.3.5`.
Rename Reticulum MeshChat to Crosstalk across the codebase and packaging. Renamed meshchat.py to crosstalk.py and updated Dockerfile, docker-compose, GitHub Actions, README, docs and electron assets to use Crosstalk, new storage/reticulum config paths (~/.crosstalk/.reticulum), and GHCR tags/labels. Add logic to seed a default RMAP World TCP client interface and a config flag, shorten interface/transport responses to remove forced restart messages, and update database proxy comment. Electron: set app name, implement an internal prompt (replacing electron-prompt), expose restart-backend IPC, change backend executable naming/launching (startBackend/start/stop handling), and adjust portable storage behavior. Misc: remove donate.md, add example image and egg-info files, and apply multiple frontend/component and static asset updates to match rebrand and UX improvements.