Skip to content

Releases: human-agent65535/ModemDeck

ModemDeck v1.10.3

Choose a tag to compare

@human-agent65535 human-agent65535 released this 03 Aug 07:46

Highlights

  • Upgrade note: v1.10.3 completes the paired iOS access flow with native notification translations for paired clients.
  • Account security now keeps signed-in session metadata and Cloudflare access state synchronized across reconnects.
  • Communication surfaces share branded recording playback, contact/channel avatars, and responsive settings and workspace interactions across desktop and mobile.

Fixed

  • Fixed responsive settings, list/detail, selection, and input layouts that could expose inconsistent spacing, controls, or clipped content on narrow screens.
  • Fixed recording surfaces using browser-native controls or mixed recording/channel indicators; playback and badges now use the ModemDeck visual language.
  • Fixed the SMS composer so manual resizing is disabled, content grows within a bounded field, and Shift/Alt+Enter inserts a newline without being mistaken for send while IME input remains safe.
  • Fixed stale or misordered short updates and communication arrivals so refreshed rows settle before their visual reorder or arrival state.
  • Fixed mobile pairing/authentication and Cloudflare session refresh paths so access and credentials remain aligned after reconnects.

Full Changelog: v1.10.2...v1.10.3

ModemDeck v1.10.2

Choose a tag to compare

@human-agent65535 human-agent65535 released this 02 Aug 12:56

Highlights

  • Update progress now uses the existing runtime connection, avoiding extra event-stream slots and keeping the About screen responsive throughout an update.
  • Successful updates now refresh the initiating administrator automatically. Other open clients receive a compact manual refresh prompt, so active calls are never interrupted.
  • Browser URLs stay clean during frontend upgrades; stale clients can refresh without a version query parameter.

Fixed

  • Fixed updates remaining at Waiting when reconnecting event streams temporarily consumed the per-session connection limit.
  • Fixed update tracking opening a separate SSE connection and showing a stale-client prompt to the administrator performing the update.

Full Changelog: v1.10.1...v1.10.2

ModemDeck v1.10.1

Choose a tag to compare

@human-agent65535 human-agent65535 released this 02 Aug 11:44

Highlights

  • Update progress now resumes automatically after API or Web restarts, keeping live status in the update panel without a page reload.
  • All ModemDeck containers now share one release version. API, Web, and Updater are rebuilt for this patch, while Hardware reuses its existing digest and is not restarted.

Fixed

  • Fixed stale operation data briefly showing only Updater or making progress fall from 100% to 0%.
  • Fixed Updater worker image metadata leaking into Compose interpolation, which could make a later update launch a deleted bootstrap image.
  • Fixed transient GitHub release-check failures remaining cached for 24 hours; unavailable results now retry after 30 seconds, while manual refresh still bypasses the cache.

Full Changelog: v1.10.0...v1.10.1

ModemDeck v1.10.0

Choose a tag to compare

@human-agent65535 human-agent65535 released this 02 Aug 05:27

Highlights

  • Upgrade note: v1.10.0 updates API, Web, Updater, and Hardware; applying the Hardware image requires confirmation and restarts the modem data plane, so brief modem re-enumeration is expected. External /api/v1/runtime/events consumers must retain omitted sections in partial state frames; the bundled Web client is already compatible.
  • Security now lists signed-in Web and paired iOS sessions and lets users revoke one session or sign out every other session.
  • Updates now resolve immutable per-component versions and replace only changed containers, while keeping Hardware replacement an explicit maintenance action.
  • Dashboard Activity now presents calls and messages as one live list with consistent arrival feedback and foreground missed-activity summaries.

Fixed

  • Replaced periodic modem synchronization and redundant page refreshes with coalesced runtime events, conditional list reads, and scoped foreground reconciliation, reducing idle request volume without losing current state.
  • Made incoming SMS persist and advance the durable watermark before notification, so delayed or resumed clients converge without replaying message history or returning stale 304 results.
  • Reconciled paginated contacts, messages, calls, and recordings from the authoritative first page, removing entries deleted on another client and restarting pagination from the server's new cursor.
  • Kept communication history access line-scoped for members and aligned unread, favorite, deletion, and Dashboard Activity state across communication views.

Full Changelog: v1.9.5...v1.10.0

ModemDeck v1.9.5

Choose a tag to compare

@human-agent65535 human-agent65535 released this 01 Aug 17:32

Highlights

  • Upgrade note: This release updates API, Web, and Updater only; Hardware remains on v1.9.3, so no modem re-enumeration is expected. External consumers of /api/v1/runtime/events must move from invalidation and replay events to the new state snapshots; the bundled Web client is already compatible.
  • Diagnostics now fail section by section: browser audio, USB hard reset recovery, and live logs remain available when the main diagnostics snapshot cannot be read.
  • Live line, device, network, proxy, call, and recording state now converges from the newest user-scoped snapshot, including after reconnects and for slow browser clients.

Fixed

  • Prevent older REST responses from overwriting newer streamed call, recording, network, or proxy state, while refreshing durable history only when its revision changes.
  • Keep message threads, ended-call history, account access, read state, and late-discovered network selections synchronized without repeated full-page request bursts.
  • Serialize empty diagnostics line and active-call collections as arrays and accept legacy null collections, preventing one unavailable list from blanking the diagnostics page.

Full Changelog: v1.9.3...v1.9.5

ModemDeck v1.9.3

Choose a tag to compare

@human-agent65535 human-agent65535 released this 01 Aug 16:53

Highlights

  • Upgrade note: The default installer now pulls versioned images from GHCR and deploys the lightweight Updater; use sudo ./install.sh --git only when building the current checkout.
  • Hardware update: v1.9.3 updates Hardware and the device Agent, restarting ModemManager and cellular service; in rare recovery cases, a modem may need to be manually replugged.
  • Added managed OTA updates for API, Web, Hardware, Updater, and Cloudflared from About, with exact changed-container visibility, explicit Hardware confirmation, real-time per-container progress, and restoration of the previous Compose environment when apply fails.
  • Added transactional Cloudflare Origin TLS setup and origin-route diagnostics, including the trusted Cloudflare Origin CA roots required by the runtime.
  • Added live diagnostic logs and structured modem radio evidence for serving-network, radio-band, and recovery investigations.
  • Refined settings and communication workspaces across desktop, tablet, and mobile with content-shaped loading, clean SPA routes, stable controls and transitions, and HTTP/3 on the local gateway.

Fixed

  • Stabilized call ownership, leases, media routing, recording coordination, and persisted-state convergence across signed-in sessions, restarts, and multi-call views.
  • Corrected browser audio stream replacement and metering, mobile call controls, and live recording status.
  • Stabilized message and runtime event convergence by separating data synchronization from alerts, bounding SSE replay, and suppressing stale notifications and snapshot storms.
  • Improved modem restart and USB recovery so the UI waits for real disappearance and re-enumeration while preserving configuration and device details.
  • Fixed responsive settings navigation, detail transitions, loading and save lifecycles, and stale authentication failures after logout.
  • Reduced API contention with concurrent SQLite reads and hardened call-media paths and bindings.

Full Changelog: v1.9.2...v1.9.3

ModemDeck v1.9.2

Choose a tag to compare

@human-agent65535 human-agent65535 released this 31 Jul 13:41

Highlights

  • Rebuilt the settings experience around shared page templates across Accounts, Telegram, Devices, Diagnostics, Audio, Contacts, External access, and About. Pages now share consistent hierarchy, widths, spacing, independent master/detail scrolling, responsive drill-down, and route motion.
  • Added a unified initial-loading system that keeps one content-shaped skeleton visible until every required request completes or reaches the shared timeout, preventing partially initialized settings and spinner-to-content flashes.
  • Standardized Contacts, Messages, Calls, and Recordings on shared communication workspaces with consistent list toolbars, detail headers, actions, selection behavior, line identity, and mobile navigation.
  • Expanded iOS pairing and external access with multiple verified Cloudflare API ingresses, per-user ingress selection, copyable pairing codes, pending credentials confirmed by the first authenticated client request, and administrator-triggered Tunnel rescans.
  • Added a dedicated device configuration workbench and API, with card-first mobile navigation, improved wide-screen hardware and port details, network controls, and diagnostics that cover every modem and active call session available to administrators.
  • Unified settings persistence feedback: reversible choices save immediately with inline Saving/Saved state, while multi-field resources use one dirty-aware Save action and transaction-level toast feedback.
  • Refined the dashboard, traffic view, responsive shell, non-blocking dialer, and active-call surfaces so navigation and communication controls remain stable while users inspect other content.

Fixed

  • Fixed repeated sign-in and session races, including stale unauthorized responses invalidating a newer session, disabled-account session revocation, and unnecessary forced password changes.
  • Fixed member password changes being lost when saved with other account edits, and kept password replacement and session termination within the authenticated account workflow.
  • Fixed line assignment, network selection, and voice readiness using unstable or incomplete bindings; call controls now require the correct control and media capabilities without disrupting active media ownership.
  • Fixed mobile and desktop detail panes using inconsistent heights or navigation timing, including jumping creation actions and message composers during list/detail transitions.
  • Fixed unread and favorite state being coupled or lost across messages, calls, recordings, and contact-related actions.
  • Fixed device and diagnostics screens hiding failed or non-selected modems, call diagnostics, or loading content in multiple visible phases.
  • Fixed Tunnel refresh and status presentation, per-account external-access scoping, and ambiguous ingress handling during iOS pairing.
  • Fixed canceled client HTTP requests being reported as server failures.

Full Changelog: v1.9.1...v1.9.2

ModemDeck v1.9.1

Choose a tag to compare

@human-agent65535 human-agent65535 released this 30 Jul 18:34

Highlights

  • Added a dedicated Cloudflare Tunnel Web origin alongside the API-only origin, enabling authenticated browser calls through Cloudflare Realtime TURN while keeping iOS API traffic isolated.
  • Added the external endpoint and credential groundwork needed by the iOS client.
  • Changed upgrades to build and replace only affected components with independent API, Web, and Hardware image tags. Hardware and its private ModemManager stay running for API, Web, Tunnel, or TURN-only updates; --rebuild-all remains available for an explicit full replacement.

Fixed

  • Delayed microphone permission requests until after authentication.
  • Surfaced failed modem lines in diagnostics instead of hiding them from the failure summary.

Validation

  • Full make check passed: application and Agent Go tests/vet, 343 Web contract tests, TypeScript 7 sidecar checks, lint, production Web build, hardware tests, deployment tests, Compose validation, and Dockerfile checks.
  • make build produced the versioned linux/amd64 application and Agent binaries.
  • Deployed to the production linux/amd64 instance and verified API and Web v1.9.1 healthy, both Cloudflare public origins reachable, and the existing Hardware/ModemManager container retained with both modems online.

ModemDeck v1.8.9

Choose a tag to compare

@human-agent65535 human-agent65535 released this 30 Jul 15:54

Highlights

  • Added cursor-based message pagination with automatic infinite scrolling.
  • Added Cloudflare Tunnel pairing groundwork for iOS while keeping the public origin API-only.
  • Bound call-media ownership to authenticated sessions so logout and password changes release active media safely.

Fixed

  • Made conversation read state monotonic and retried acknowledgements that race with newly loaded messages.
  • Restored Web certificate management.
  • Preserved recording files until metadata deletion succeeds.
  • Rejected deployment data-directory symlink traversal.
  • Added stable-line message indexes and verified the public Cloudflare API route.

Validation

  • Full make check passed, including application and Agent Go tests/vet, 341 Web tests, TypeScript 7 sidecar checks, lint, production build, hardware, deployment, Compose, and Dockerfile validation.
  • Deployed to the linux/amd64 production instance and verified all application and Cloudflare Tunnel containers healthy, LAN health/version responses, and the API-only public route.

ModemDeck v1.8.8

Choose a tag to compare

@human-agent65535 human-agent65535 released this 30 Jul 10:39

Fixed

  • Stop Telegram Bot runtimes from restarting on volatile line telemetry updates.
  • Reload only the affected Bot after committed Telegram settings or user line-access changes.
  • Avoid repeated setMyCommands writes when the Bot token is unchanged.
  • Honor Telegram retry_after after Bot API 429 responses and expose safe structured diagnostics without credentials or upstream descriptions.

Validation

  • Full repository check, tests, vet, frontend type checks/lint/build, deployment checks, and Dockerfile checks.
  • Focused Go race tests and repeated Telegram runtime tests.
  • Gitleaks, npm production audit, and govulncheck for both Go modules.