Releases: human-agent65535/ModemDeck
Releases · human-agent65535/ModemDeck
Release list
ModemDeck v1.10.3
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
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
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
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/eventsconsumers must retain omitted sections in partialstateframes; 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
304results. - 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
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/eventsmust move from invalidation and replay events to the newstatesnapshots; 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
Highlights
- Upgrade note: The default installer now pulls versioned images from GHCR and deploys the lightweight Updater; use
sudo ./install.sh --gitonly 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
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
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-allremains 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 checkpassed: 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 buildproduced 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
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 checkpassed, 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
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.