Releases
Download the latest AirCast Raspberry Pi images and view version history.
v1.2.4-dev.30
Latest
March 17, 2026v1.2.4-dev.30
Changelog
v1.2.4-dev.29
March 17, 2026v1.2.4-dev.29
Changelog
- •95b97b9refactor: collapse plugin system and remove unused codecs
- •5a38174test: add PLI rate limiting and keyframe replay throttle tests
- •4da35f5fix: add PLI rate limiting at track and stream layers to prevent PLI storms
- •2037593feat: add ICE restart as fast reconnect path with jitter backoff
- •acd0a0cfix: keep RTCP RR TotalLost consistent with local sequence tracking
- •5a91e2afeat: add camera HTTP proxy handler for remote camera UI access
v1.2.4-dev.28
March 16, 2026v1.2.4-dev.28
Changelog
- •c000459fix: use SSH connectivity check instead of ping for deploy preflight
- •fbc90b0feat: add media quality logging — FPS drop detection, GCC bitrate change visibility
- •c733092feat: relay RTCP receiver reports from P2P viewer to camera
- •2c09510fix: bandwidth limiter gate unreliable — use time-based grace period
- •a3b334ffix: P2P bandwidth limiter not dropping frames
- •6f8561drefactor: downgrade webui and utility logs to appropriate levels
- •807dec5refactor: migrate remaining scattered logs to canonical events
- •f51039erefactor: downgrade noisy Info/Warn logs to Debug
- •ef7b753refactor: migrate remaining scattered logs to canonical wide events
- •f1c242crefactor: migrate all scattered logs to canonical events
v1.2.4-dev.27
March 16, 2026v1.2.4-dev.27
Changelog
- •c000459fix: use SSH connectivity check instead of ping for deploy preflight
- •fbc90b0feat: add media quality logging — FPS drop detection, GCC bitrate change visibility
- •c733092feat: relay RTCP receiver reports from P2P viewer to camera
- •2c09510fix: bandwidth limiter gate unreliable — use time-based grace period
- •a3b334ffix: P2P bandwidth limiter not dropping frames
- •6f8561drefactor: downgrade webui and utility logs to appropriate levels
- •807dec5refactor: migrate remaining scattered logs to canonical events
- •f51039erefactor: downgrade noisy Info/Warn logs to Debug
- •ef7b753refactor: migrate remaining scattered logs to canonical wide events
- •f1c242crefactor: migrate all scattered logs to canonical events
v1.2.4-dev.26
March 15, 2026v1.2.4-dev.26
Changelog
- •c4b0b27feat: add trace context to canonical events and migrate network lifecycle logs
v1.2.4-dev.25
March 15, 2026v1.2.4-dev.25
Changelog
- •79d8781feat: add canonical log lines for wide event observability
v1.2.4-dev.24
March 15, 2026v1.2.4-dev.24
Changelog
- •3b204d1feat: WebRTC GCC bandwidth estimation, SFU reconnect scheduler, and web UI improvements
v1.2.4-dev.22
March 14, 2026v1.2.4-dev.22
Changelog
v1.2.4-dev.21
March 13, 2026v1.2.4-dev.21
Changelog
- •b130e6ffix: modem monitor and websocket error improvements
- •33e0d4efix(rtsp): improve backoff reset test to measure elapsed time from actual connection drop
- •50ef663fix(websocket): add structured error types and expand RTSP/pipeline tests
- •86025affix(modem): improve recovery logic and expand modem monitor tests
- •d6e1f26fix(scripts): support user@host PI_HOST format and handle SSH drops during deploy
- •58aa0e6feat(e2e): add mock network interfaces support and allow re-scanning cameras
- •5f247f5feat(discovery): fall back to subnet scan when specific camera IP probe fails
- •b124477fix(network): remap Ethernet interface states for clarity
- •a7d61defix(stream): improve consumer error logging -- context cancellation is debug, not error
- •6c6c13afeat(network): reset WebSocket backoff on modem reconnect for faster recovery
- •61bd7cdrefactor(abr): move rate limiting from CameraController to ABR coordinator
- •912df49refactor(media): change MediaSource.Status() return type from string to SourceStatus
- •74558dafeat(media): add RTSP source auto-reconnect and pipeline source-driven recovery
- •dc29ddbrefactor(mavlink): introduce ConnectionStatusTracker as single source of truth for connection state
- •c949503refactor(websocket): replace listener map with typed callbacks, remove health monitor and stats collector
v1.2.4-dev.20
February 8, 2026v1.2.4-dev.20
Changelog
- •e67fe64chore: miscellaneous improvements and fixes
- •b5cdd40feat(providers): add source health tracking for media routing
- •4fe3044feat(webrtc): improve WebRTC session management and stability
- •ebf5479refactor(auth): improve OAuth2 token refresh flow
- •5e1e31dfeat(rtsp): improve RTSP error handling and UDP timeout detection
- •b31f32ffeat(mavlink): add connection flapping detection and stability improvements
- •f781b6ffeat(mavlink): add real-time connection status events
v1.2.4-dev.19
January 31, 2026v1.2.4-dev.19
Changelog
v1.2.4-dev.18
January 27, 2026v1.2.4-dev.18
Changelog
- •c731685fix(mavlink): detect TCP/UDP channels wrapped in EndpointCustomClient
v1.2.4-dev.17
January 27, 2026v1.2.4-dev.17
Changelog
- •6d95fbctest(system): add unit tests for auto-update functionality
v1.2.4-dev.9
January 26, 2026v1.2.4-dev.9
Changelog
- •29fab7dfix(modem): reconnect D-Bus after ModemManager restart
- •83f3f8frefactor(handlers): consolidate error codes and enhance WebRTC logging
- •4a32137fix(sources): refresh cached source after config update
- •bbeea1efix: handle invalid_credentials error in auth retry loop
- •aee1799fix(rtsp): handle UDP transport issues with auto-fallback to TCP
- •d59a481fix(auth): add invalid_credentials to auth error types
- •4d32801test(auth): add test for invalid_grant credential clearing
- •479f558fix(auth): clear tokens after 3 consecutive 401s instead of 10
- •0861373feat: add cellular auto-connect when modem becomes registered
v1.2.4-dev.15
January 26, 2026v1.2.4-dev.15
Changelog
v1.2.4-dev.14
January 26, 2026v1.2.4-dev.14
Changelog
- •85d2c1achore: add SystemHealthProvider implementation to StatusMonitor
v1.2.4-dev.11
January 26, 2026v1.2.4-dev.11
Changelog
- •852380ffix: detect environment from API host when no state file
v1.2.4-dev.10
January 26, 2026v1.2.4-dev.10
Changelog
- •6651fa1feat: enable auto-update for dev environment profile
v1.2.4-dev.8
January 25, 2026v1.2.4-dev.8
Changelog
- •e63159dfix: use update-first approach for Aptly publish
v1.2.4-dev.7
January 25, 2026v1.2.4-dev.7
Changelog
- •e63159dfix: use update-first approach for Aptly publish
v1.2.4-dev.6
January 25, 2026v1.2.4-dev.6
Changelog
- •0f69742fix: register connectivity_checker before NetworkManager check
v1.2.4-dev.5
January 25, 2026v1.2.4-dev.5
Changelog
- •0f69742fix: register connectivity_checker before NetworkManager check
v1.2.4-dev.4
January 24, 2026v1.2.4-dev.4
Changelog
- •665d30fci: use self-hosted runners for all workflows
- •8436e39ci: use self-hosted runners for docker workflow
- •89ba915refactor: improve architecture with error logging and layer separation
- •392bb9dfix: add device heartbeat to prevent stale session detection
- •00770d1Add end-to-end latency logging for video pipeline debugging
- •9cc9c67feat(helm): add secretEnv support for secret-based env vars
- •62448a6Add auto_connect option to mavlink.config.create handler
v1.2.4-dev.3
January 23, 2026v1.2.4-dev.3
Changelog
- •169f310chore: update aircast-sdk with IsClosed connection fix
- •2c97625test: add integration tests for IsClosed connection state fix
- •38a510ffeat(auth): add E2E token support for simulator authentication
- •9147771refactor(mavlink): simplify rate control and improve connection handling
- •c8b8c52fix(websocket): detect temporary disconnections in IsClosed() for queue flush
- •d8850a0fix(mavlink): prevent connection cycling with grace period for new connections
- •d9b764ffeat(mavlink): add filter stats to rate control ack
- •67679b5feat(mavlink): add dynamic WebRTC endpoint registration and datachannel events
- •6126466fix(mavlink): enable WebRTC telemetry forwarding for all connection types
- •f6dc6ccfeat(mavlink): add receiver-driven rate control
- •f872564chore: trigger auto-deploy test
- •c2f1696Add modem signal quality to WebSocket reconnection logs
- •52f2386refactor(mavlink): require explicit API host/port configuration
- •f2a59d4fix(mavlink): prevent duplicate connection race condition
- •dba1d06fix(mavlink): enable congestion monitor for all connections
- •1f73055feat(mavlink): wire congestion broadcaster and refactor MAVLink internals
- •038b45drefactor(webrtc): use constructor injection for session context
- •532ee91fix(websocket): make unknown errors recoverable to prevent reconnect loop exit
- •f0ff96cfeat(mavlink): add adaptive rate control for WebRTC congestion
- •6d082barefactor(keyring,activate): add tracing and fix code review issues
- •ac3f2b5feat(keyring): add migration from legacy paths on startup
- •e7761a5fix: start hotspot when device is not authenticated
v1.2.4-dev.2
January 18, 2026v1.2.4-dev.2
Changelog
v1.2.4-dev.1
January 18, 2026v1.2.4-dev.1
Changelog
- •33ae628ci: add Telegram notification on test failure
- •1d0b9faci: add Telegram notification on release failure
- •b1f5756ci: use PAT_TOKEN for cross-repo cleanup
- •115056fci: add pi-gen release cleanup to workflow
- •6a21fd5ci: add GitHub release deletion to cleanup workflow
- •0d24924ci: add git tag deletion to release cleanup workflow
- •bece220ci: add manual trigger to release cleanup workflow
- •110a8f5ci: add workflow to cleanup S3 on release deletion
- •614c76ffeat: add release.delete command to remove releases
- •88c6aa0fix(modem): move nosec directive to line above for gosec recognition
- •2f4318afix(modem): correct nosec comment format for gosec linter
- •4dce103fix(modem): resolve gosec and unparam lint issues in recovery service
- •11dfee4fix(deps): remove local replace directive and update gomavlib to v3.3.1-aircast.3
- •0574437feat(modem): improve ModemManager recovery with active polling
- •e5c268echore(scripts): add Pi reachability check and udev deployment
- •e114564chore(debian): improve udev rules installation
- •18b0325feat(webui): improve WiFi configuration interface
- •fcfd8a2feat(system): add network health tracking to status monitor
- •2ff3e9bfeat(network): integrate connectivity state machine
- •0d22766feat(system): add modem monitoring and connectivity state machine
- •3a4db3ffeat(logging): integrate disk buffer with LokiHook for offline resilience
- •d38397bfeat(logging): add disk buffer for offline log persistence
- •1342d9ffeat(webtransport): add direct connection mode and separate host config
- •3f8682cfeat(auth): improve authentication and environment handling
- •11bd93afeat(tls): add TLS support for local development connectivity
- •b1ce6c4feat(env): add multi-environment switching support
- •b4dfa69feat(sfu): add exponential backoff retry for SFU publish failures
- •b61d811feat(tailscale): decouple from auth - start on boot before authentication
- •51e15e4feat(tailscale): keep connection alive when auth logs out
- •d1bb79efix(tailscale): prevent duplicate device registrations on transient failures
- •503e230Use templated app label in deployment
- •abe108fdocs(webtransport): add configuration documentation
- •9ea8b18feat(mavlink): add WebTransport endpoint support
- •93ddcceIncrease SFU unhealthy loss rate threshold to 50%
- •b0458bechore: migrate gomavlib imports to aircast-one fork
- •b44b378feat(auth): generate drone-themed device names during bind
- •335eee1feat(siyi): add SIYI gimbal/camera WebSocket control
- •9bcd348fix(mavlink): increase WebRTC queue and non-blocking writes
- •a75503crefactor(tailscale): use managed service pattern with device ID isolation
- •3b74b86feat(update): add apt progress streaming and fix stale cache
- •e1895c0fix(cellular): wait for modem registration before connecting
- •c857b4ffeat(tailscale): add SSH forwarder and use device ID as hostname
- •7804042fix(update): improve update detection with proper version comparison
- •7543c85feat(rtcp): add comprehensive RTCP observability with bitrate tracking
- •b7e03bdfeat(logging): add wide event logging to webui handlers
- •849e8a2fix(e2e): fix TOCTOU race in EventEmitter WaitForEvent
- •be08921fix(ci): pin Go version to 1.25.5 to fix cache mismatch
- •7740a21refactor(media): rebuild pipeline architecture with auto-detect ABR
- •5a2f80efeat(media): add pipeline plugin architecture for ABR
- •a166fa0refactor(system): improve logging for system update event broadcasting
- •0003a65feat(tracing): add write stall detection with tracing for outgoing track
- •4d19032fix: register http_client dependency in SFU provider tests
- •60b97eechore: run lint and format only on staged files
- •12fb9c2refactor(infrastructure): remove unused OpenIPC and WebRTC code
- •637e0e7refactor(media): remove unused bitrate clamping and camera detection
- •46307ccfix(tracing): improve OTLP endpoint parsing for TLS detection
- •2648dcdfeat(mavlink): track connection errors in status response
- •8e3ce78feat(updates): add update orchestrator for safe self-updates
- •4256de2feat(tailscale): add status types, config, and node ID reporting
- •9ad6746fix(auth): handle no_credentials error to stop retry loop gracefully
- •d248c99feat(events): add configurable buffer size to event bus
- •399e6ebfeat(config): add duration and integer helpers to environment config
- •eb3a78drefactor(websocket): simplify reconnector with proper circuit breaker
- •f6fe577feat(sfu): add Tailscale routing support for WebSocket client
- •ab277b9refactor: update remaining components for consistency
- •b532a26chore: remaining ClientProvider adoption and system updates
- •c31a1d6refactor(media): improve SFU publisher and consumer lifecycle
- •73d1dc0refactor(mavlink): use ClientProvider for MAVLink WebSocket
- •bfc3183refactor(websocket): use ClientProvider for WebSocket dialing
- •dd15e2frefactor(webrtc): use ClientProvider for ICE server fetching
- •2c33cabrefactor(network): use ClientProvider for connectivity checks
- •41efc10refactor(logging): use ClientProvider for Loki HTTP requests
- •3c4fce1refactor(auth): use ClientProvider for HTTP requests
- •ca3d612feat(tracing): route OTEL metrics and traces through Tailscale
- •5fcd48bfeat(http): add ClientProvider for Tailscale HTTP routing
- •ec39830refactor(logging): adopt wide event pattern for SFU reconnection
- •71dd284fix(sfu): move consumer stopping from scheduleReconnect to attemptReconnect
- •8cf8bf0feat(logging): add wide event logging for packet drop diagnosis
- •e6a9b0ffeat(abr): add wide event logging following loggingsucks.com pattern
- •f18af76fix(abr): detect OpenIPC cameras by name instead of source type
- •2530e5dfix(health): preserve RTCP-reported RTT and loss rate in collectStats
- •a23e3aefeat(logging): add wide event logging for WebRTC stats
- •7189ad8feat(logging): add wide event logging for WebSocket reconnection
- •e93b767feat(rtcp): implement RTCP feedback and media pipeline improvements
- •470106dfeat(sfu): detect connection failure via write errors for faster disconnect
- •4cb772bfix(helm): correct OTEL metrics endpoint service name
- •9588590fix(sfu): stop consumers during reconnection to prevent buffer overruns
- •5021e2cfix(ice): fix broken HTTP fallback and increase timeout
- •34b5318ci(docker): remove arm64, build amd64 only
- •f6ab16eci(docker): build amd64 only for develop branch
- •afa1798feat(network): add SimulatedCellularManager for simulation mode
- •13a5130fix(webui): handle nil interfaces in StatusCache to prevent panic in simulation mode
- •887c0c2fix(sfu): mark connection as disconnected on request timeout
- •bb0f182fix(media): recover from error state in StartSource
- •7ad2bb2fix(sfu): restart consumers on WebRTC reconnection
- •a0fe181feat(stream): add consumer Restart() for WebRTC reconnection
- •826d0e7fix(counterdumper): make Start/Stop idempotent and thread-safe
- •945e00afeat(webrtc): add ICE_FORCE_RELAY support for STUNner
- •9158832refactor(webui): split setup_handler into domain-specific handlers
- •422a6ccrefactor(webui): split setup_handler into domain-specific handlers
- •be206derefactor(webui): remove adapter pattern, use domain types directly
- •913d2c1refactor(webui): query cameras directly instead of caching
- •a251048feat(webui): implement GetCameras to fetch from database
- •5745ebcfix: move SIMULATION_RTSP_URL to environment-specific patches
- •7845db9feat(simulation): add RTSP camera seeding for simulation mode
- •6de1c81feat: use GitOps dispatch for automatic sync
- •1f806a3chore: update Chart appVersion to v0.0.0-dev-a62eaac [skip ci]
- •a62eaacfix: make gitignore patterns root-relative to allow helm/aircast-agent
- •6c7263cfix: auto-update Chart appVersion after Docker build
- •383d041chore: update Chart appVersion to latest build
- •0abe634fix: resolve staticcheck SA5011 in reachability checker test
- •9b21cc1fix: handle nil cellular manager in handler and provider
- •b149011fix: resolve staticcheck SA5011 false positives in tests
- •31395e1fix: handle nil connectivityChecker interface in auth handler
- •2aabdb1feat(simulation): add K8s simulation mode for USB, modem, and MAVLink
- •61b396ffix(helm): update appVersion to latest build
- •b279536fix(helm): correct image repository and version
- •cd3312echore(helm): update appVersion to v1.2.4-dev.6
- •e9b4a05fix(sfu): add sfu url to all envs
- •23666e0feat(onvif): remove onvif media source
- •e318c4ffeat(rtsp): add automatic discovery handlers
- •70c625ffeat(tracing): improve sampling and timeouts
- •83f72b2fix(e2e): use atomic send-and-wait pattern to eliminate race conditions
- •a5cf3e8fix(lint): remove redundant nil checks in provider tests
- •2973d76ci: use PAT_TOKEN for GHCR access
- •8195291ci: add GHCR credentials for aircast-sfu service
- •bc8f587fix(sfu): add WaitGroup to ensure goroutines stop before reconnect
- •b49c8fbfix(test): fix data race and SFU test configuration
- •f9a5c6efix(test): mockDeviceLinux returns default driver for tests
- •cb310d8fix(test): add missing Linux mock types for network package tests
- •9b8a211feat(tailscale): migrate from CLI to embedded tsnet
- •226a721feat: add Tailscale integration for automatic network join
- •d757545fix(ci): make .env include optional in Makefile
- •6191a68fix(media): prevent RTSP destination from dying after startup
- •afec12afix(release): redirect warnings to stderr to prevent version corruption
- •2527cafci(docker): align workflow with aircast-api pattern
- •03fd915feat(tracing): add session-level span for SFU connections
- •51fac56feat(tracing): add OpenTelemetry spans to media pipeline
- •58b559bfix(e2e): prevent race conditions in route tests
- •49c7a58feat(tracing): add session-level traces to P2P WebRTC handlers
- •769cb5dfeat(tracing): link offer/answer/ICE in single session trace
- •f6b809bfeat(tracing): add distributed tracing to SFU WebSocket client
- •85b3709Remove verbose heartbeat debug logging
- •be22e92feat(tracing): add trace context propagation for events
- •a101ba3build: update Tailwind CSS output
- •5f51750refactor: improve WebRTC debugging and stream attachment
- •f857b9afeat: fetch ICE servers from API with caching
- •1951444fix: use routeID as pipeline ID for uniqueness
- •85ed9f0feat: add error tracking to media sources
- •2b16770feat: add waiting_for_drone status to MAVLink connection handler
- •5806a12refactor: improve logging field handling and reduce noise
- •f970424chore: tune message queue for better memory management
- •ae8f433fix: prevent log spam on media consumer context cancellation
- •23b3aa3chore: downgrade MAVLink frame logs from debug to trace
- •9f63e6dfix: add timestamp to session IDs and include session ID in track IDs
- •8ea95fcfix(mavlink): prevent GCS heartbeat echo causing UI state flicker
- •8cd033brefactor(discovery): code review fixes
- •aad1b8brefactor(discovery): unify RTSP path lists to CommonRTSPPaths
- •2ab3c7drefactor(discovery): use CameraTypeRegistry for manufacturer detection
- •8150b22refactor(discovery): consolidate camera ID generation to shared function
- •6e29d61fix(rtsp): auto-refresh stale tokens and fix device_id mismatch
- •781d16crefactor(discovery): extract shared RTSP utilities and camera type registry
- •20828efrefactor(discovery): extract reachability and RTSP validation to discovery package
- •6c1c9adAdd clearer logging for MAVLink command forwarding and fix network build
- •f8af8b9feat(network): add granular connectivity status for better diagnostics
- •a941208fix(e2e): increase MediaRouteSelectSuite timeouts to 5 seconds
- •b461127fix(e2e): improve MediaRouteSelectSuite test stability
- •0c1986bfix(e2e): improve test stability with event-driven waiting
- •388a029refactor(sfu): remove dead API proxy code paths
- •3b03701refactor(sfu): remove API proxy fallback, use direct SFU connection only
- •2381b5aRename publisher_ready to room_ready
- •7eab2adrefactor: update tests for publisher_ready event rename
- •45054edfix(sfu): resolve deadlock preventing media tracks from flowing
- •a200802Add ICE connection state change handler for faster SFU disconnect detection
- •6db4eacfix(sfu): auto-start routes when web client connects
- •4f51c01fix: restore network.camera.analyze handler from master
- •08bac8cfix(modem): remove build constraint to enable simulated modem on Linux
- •415a225refactor: clean up dead code and naming inconsistencies
- •0c7bec9refactor(media): remove dead code duplicates from domain/media
- •6f4fcd9refactor(rtsp): consolidate duplicate RTSP implementations
- •ab99997refactor(webrtc): consolidate duplicate WebRTC implementations
- •c2194b8refactor(session): decouple WebSession from WebRTC
- •79d5218fix(webrtc): correct session ID field names in logs
- •9bac615refactor(media): apply SOLID principles to media pipeline
- •8236edefix(e2e): use namespaced keyring keys for auth token seeding
- •1c3b24frefactor(media): eliminate MediaPipeline abstraction and fix goroutine leaks
- •6bc2224fix(handlers): update ABR stats mock to use proper type
- •01e1fa5chore: misc infrastructure and test improvements
- •e247f2ddocs: add protocol documentation for Betaflight MSP and SIYI SDK
- •1debc14refactor(session): improve session and WebRTC handler management
- •48113fbrefactor(providers): improve provider and service architecture
- •3e4b0dafeat(webui): add RTSP camera management to web UI
- •7e15223feat(auth): improve token refresh and auto-clear behavior
- •2041bc6refactor(media): improve RTSP source and stream handling
- •eb698carefactor(abr): improve adaptive bitrate implementation
- •4e7171arefactor(discovery): improve IP camera discovery architecture
- •c5bfe26refactor(events): replace broadcaster with event bus
- •e90a763feat(mavlink): add transport configuration support
- •839901etest(services): add IPCameraScannerManagedService tests
- •9ddcb3atest(providers): add MediaProvider registration tests
- •381d58brefactor(discovery): add network abstractions for testability
- •6e29367refactor(handlers): improve WebSocket handler testability
- •33fa221Merge branch 'master' into develop
- •f43783eupdate styles
- •fd37413please use Ethernet for ip search
- •c75d6a6feat: add RTSP camera management to web UI
- •5b98593refactor abr implementation
- •cf1e02bchore: add bin/ to gitignore
- •c56f600fix: only use RTT from nominated ICE candidate pair
- •9ed77eefix: clean up stale stream sessions on browser refresh
- •8dc9849feat: add IP camera auto-discovery with RTSP validation
- •ad87f3afix: local deploy IP auto-detection when LOCAL_IP not set
- •8f97d1dchore: reduce log verbosity and remove emojis
- •db536a9refactor: extract Makefile logic into shell scripts
- •645fbbbpush debug logs to loki too
- •7716f08add PLI forwarding and automatic ICE restart for video recovery
- •c131b7frefactor: decouple ABR from OpenIPC using Clean Architecture
- •51193a7add GCC bandwidth estimation to ABR system
- •0beb147add abr
- •55f5895add abr
- •1ead764add NewTestKeyring helper for auth tests
- •c5dd2c5add tracing to remaining websocket handlers
- •f25fc0ffix my envs for tracing
- •4419ee8add tracing to websocket handlers
- •817fda7fix my envs for tracing
- •117041ffix auth logout issues
- •272e336reformat websocket imports
- •c638a4breformat mavlink imports
- •176eb35downgrade registerLifecycleHooks logs
- •38d0482add clock testing package
- •5bdd986fix http server boot sequence
- •4c6d0b4add DATABASE_PATH environment override
- •9c6561dfix oTEL tracing
- •b86a1c2add metrics
- •e96f8f5fix nil pointer panic in camera network service registration
- •722d652extract camera network analysis to domain layer
- •28b9104fix cellular connection failing after modem re-enumeration
- •de212bffix clipboard copy for non-secure contexts (HTTP)
- •0a8a73bremove network dependencies from service file
- •667ab4dfix release version detection to use stable tags only
- •1d8bb17fix hotspot creation with legacy addresses format
- •8b932a9improve connectivity checker
- •723a41ffix release.stage to strip existing prerelease suffixes
- •4f345c2rename version.* to release.* and remove confirmation prompts
- •e7043d1add stage tag support to release workflow
- •4655389add version.stage target
- •67c0e0ffix version targets to push only specific tag
- •d7d185eadd new webui interface
- •f20a4b5improve logs page with infinite scroll and mobile layout
- •d65604bsimplify pi-gen trigger (remove VERSION file sync)
- •639622dauto-update pi-gen VERSION file on release
- •45012bffix goreleaser env file mapping for stable/testing distributions
- •f6fc30eadd staging tag support (v1.0.0-staging.1)
- •8857f1ccombine production and development workflows into single release.yml
- •8efa79cupdate pi-gen trigger to use build-development-image event
- •cb4e8afsimplify Pi image trigger to use distribution only
- •218165atrigger Pi image builds for RC releases
- •6f967b7add RC release support to production workflow
- •7756e16refactor wifi scanning to non-blocking API
- •b7511beadd new webui interface
- •1f27cedfix hotspot reconfiguration
- •fcb4fc9add get typed container config
- •182af91add ignore ipv6 routes
- •d0578b1ignore ipv6 to prevent reconnections
- •85cc5dcfix serial autoconnect
- •bc767b5fix: update aircast-pi-gen repository to aircast-one organization
- •b2538b4fix: set route-metric for ethernet and prevent hotspot default route
- •370c1d1fix: update goreleaser owner from pavliha to aircast-one
- •dfaf711refactor: event-driven NetworkManager route management with D-Bus signals
- •6a9109ffix: validate route-metrics on device changes to handle boot race condition
- •9055d5brefactor: remove disabled RouteMetricManager code
- •0ed7d48fix fps count
- •039722dfix: prevent USB ethernet (cameras) from creating default routes
- •243abb5fix: deduplicate MAVLink devices and add auto-baud rate detection
- •cad2a04fix route managment
- •f4ec066refactor: reduce connectivity checker log noise
- •56cf3c4fix: preserve existing network settings when updating route-metrics
- •037c35dRefactor route metric manager to use event-driven architecture
- •9a81290Fix route metric manager to use NetworkManager API for modem detection
- •b9ad88bfix: automatic token refresh on startup prevents auth expiration after restarts
- •2df0acdMerge branch 'feature/automatic-route-managment'
- •b2fb92dfeat: add automatic route metric management for plug-and-play modem support
- •4205450fix: auto installation of rpi camera
- •f7fead1feat: add HTTP-based modem support for MegaFon M150-4 (05c6:f00e)
- •8d39f41refactor: add event broadcaster to media system and update deployment
- •a1df47dfix: resolve WebUI timeout errors and optimize page load performance
- •0a54266Merge branch 'develop'
- •7ebbd11update sdk
- •1b4653fupdate network fix command
- •374fd23refactor: standardize logging field names for consistency
- •76309bbfeat: add comprehensive tracing and OTLP configuration for agent
- •8171f09fix source manager release bug
- •076fdcfMerge pull request #15 from pavliha/develop
- •d9e8bbcadd WebRTC video track metrics for latency debugging
- •7e7f2dafix: resolve test deadlock in WebRTC session manager
- •5878556feat: add system.ping websocket action for health checks
- •83f49f4fix: resolve WebRTC high latency issue caused by route removal
- •4bd1af0feat: add NAT masquerading and IP forwarding for cellular connections
- •7a241bbfix: resolve WebRTC test failures and lint issues
- •ad92a7cchore: disable cyclop linter
- •f2a0d29fix: improve WebRTC session error messages and tracking
- •1507386fix: prevent UDP socket leak in WebRTC sessions
- •49595f6cleanup code
- •73877adupgrade github.com/pavliha/aircast-sdk v0.2.1-dev.2
- •0b62991upgrade github.com/pavliha/aircast-sdk v0.2.1-dev.2
- •2ad7f7erefactor: simplify E2E test suite with sensible defaults
- •f3bafcffix: implement low-latency buffer with drop-old strategy to resolve video latency accumulation
- •fc419effix: include WebRTC offer in session create response to eliminate timing issues
- •a38af6bfix: include WebRTC offer in session create response to eliminate timing issues
- •8a5789dfix: resolve UDP source race condition in connection handling
- •d6a1156fix: resolve race condition in UDP source connection handling
- •e01e9b7fix: resolve all lint issues and improve code quality
- •1ee7f99fix: resolve type assertion and interface implementation issues
- •38b57d0fix: use correct Aptly force-overwrite flag instead of invalid config property
- •d5ec49afix: allow overwriting existing files in Aptly S3 configuration
- •4a97e1bfix: use specific event type for production Pi image builds
- •27322ddupdate: trigger Pi image build from main branch for production releases
- •d59a54bupdate: align production workflow with development structure
- •fa9a759Merge branch 'develop'
- •5e4d7edfix: always attempt token revocation on logout
- •3596e18fix: handle missing refresh token properly to force re-authentication
- •cc5e087fix: resolve WebRTC session race conditions with device.session.ready event
- •b132620refactor: update relay infrastructure and WebSocket handlers
- •b08fe57chore: update to use any instead of interface{}
- •a05197ffix: ensure WebSocket connects on startup for authenticated devices
- •e88959bfix: add automatic network route management and WebRTC session cleanup
- •206817cfix my turn server url
- •ce05d49feat: remove nginx dependency from Debian package
- •322f497chore: update dependencies and build improvements
- •5892c1dfix: resolve stream sharing conflicts and improve codec negotiation
- •c9b8d2bfix: improve RTSP and media processing debug logging
- •efa1c91fix: improve RTSP error reporting and remove redundant events
- •5e968cdfix: prevent udevadm process leaks in camera monitor
- •4c41b41fix: update WiFi configuration text to reference drone capabilities
- •b3d3173feat: add camera and MAVLink status display to home page
- •f156e86fix: improve system logs page layout and handling
- •339815afeat: implement in-memory log storage and fix PPP route parsing
- •a69de52add system logs page
- •d57c380feat: enhance cellular UI with real-time data and internet connectivity tracking
- •3f5b594feat: add configurable HTTP port and HTTPS redirect support
- •8ce473ffeat: implement udev-based camera monitoring to replace polling
- •5a57513add pi camera support
- •5d2674ffeat: add automatic Raspberry Pi camera detection and streaming
- •a000b8ffeat: add Raspberry Pi camera support
- •3128899feat: add UDP video source support
- •4b3a2b9Merge branch 'refs/heads/feature/udp-video-source' into develop
- •e540dccadd permissions check
- •d6d6e33Add USB hotplug monitoring for MAVLink devices
- •003a063Fix TURN server 400 errors and improve WebRTC ICE handling
- •0f86405fix connection issues
- •b1f99e9feat: add UDP video source support
- •0fa8567update templ
- •dbf8c1aapply auth logout fixes
- •977e781apply hotspot fixes
- •0a13de4fix deprecation
- •373178dadd rebuild trigger
- •34dec55add cellular status indicator
- •8f09880downgrade logs
- •7756bc9add connectivity error handling
- •140ca03update login ui
- •fd23995update on device login flow
- •06a94acfix auth token
- •f6e5e7fadd terminal support
- •96ebda3fix hotspot
- •1f86d90fix wifi service unavailable
- •c518bbefix nginx service
- •0a260fbfix autoconnect service
- •a247a00use dialect
- •ae02be1remove command sender
- •0c9eac5fix auth expiration
- •7828964fix auth expiration
- •f97b717save mavlink
- •bd5bfa9fix do reposition command
- •5f4ce5ause new send command approach
- •20f3787use new send command approach
- •6baae24add message throttle
- •3631f4asave telemetry messages refactor
- •2dffcb4remove sitl
- •a5d47c2fix webrtc signaling
- •4234acffix turn servers
- •e5af64cMerge remote-tracking branch 'origin/develop' into develop
- •0732749remove usage of aircast sdk types
- •4dfbaccrefactor message handlers
- •e44ee75fix hotspot ip address order
- •86676d2add more stun servers
- •81b217efix ice candidate support
- •84ad5c4update default ice servers
- •a3c97a9add interfaces' cleanup
- •f6773e1fix turn server
- •7a056c7remove update check
- •fb341d1add hotspot start
- •b183b5aadd hotspot start
- •6e6de2dadd hotspot start
- •48e466bfix websocket reconnection
- •8173947update .gitignore
- •235c3f2fix release
- •99b40a8fix database migrations
- •0e86221update print config
- •4c0fd29reduce logs verbosity
- •0923529add token refresh
- •bbc7695fix telemetry errors
- •381be2dfix media pipeline errors
- •90ff565resolve circular dependencies
- •f6c21ffintermediate save
- •c812784refactor mavlink telemetry auto setup
- •9163ccfrefactor mavlink
- •90bebf6resolve warnings
- •0d9c4dbadd system handlers
- •fa7f7c3add more network handlers
- •1b1291bfix agent networking
- •b45f6d8add cleanup
- •6c9c0fbconsolidate mavlink component
- •3d861cdadd mavlink autoconnect
- •4e262f6add cleanup functions
- •e560613add auto webrtc destination fill in
- •9d7598eadd auto hostname fill
- •73c32f4add auto token refresh
- •e339fa2rename websocket route
- •022782ffix exit states
- •5a40268remove app state
- •194d2b9fix loki logging
- •bd8ca36simplify logging
- •825b0b2Merge pull request #12 from pavliha/feature/AIR-40-update-device-auth
- •89d4d38[AIR-40] fix logout
- •f0bf578[AIR-40] update service handlers
- •a359d77[AIR-40] fix logging
- •af31dcd[AIR-40] fix websocket state management
- •e020c5e[AIR-40] fix auth lifecycle
- •728d641[AIR-40] add token revocation
- •c264ad1[AIR-40] fix device auth flow
- •f97a490[AIR-40] update auth flow
- •aead670[AIR-40] fix connection messages
- •44f464d[AIR-40] update device sign in flow
- •5556081fix sitl
- •42ab75frun systemd service as root
- •5f52b4ffix systemd service
- •cba5a3dfix active connections
- •fa7aa69add handlers
- •1773e4crename copy in frame.go
- •a378baefix delete logic
- •3ad9ec8add mavlink feedback
- •f1c0da1fix development build
- •78d9736fix development Makefile
- •1ef9b56fix development ci
- •3f9b5b1fix network manager
- •216276bmake network manager cross platform
- •cf3771bsave refactor for now
- •c03fd58fix sign in url
- •f5be9e3update permission
- •487ffe4fix loki setup
- •dbe3279fix a database path
- •7ebf609fix config and environments
- •218352ffix network provider
- •1307046fix environments loading
- •69b03abfix migrations
- •b07721fadd gpg signin back
- •8bb6c50fix ci build
- •f881133[Air-000] add modem manager (#11)
- •46e1ea9fix ci build
- •50745e3fix ci build
- •9da6dccfix ci build
- •4cd942arefactor application bind phase
- •4046c75fix release as systemd
- •eecf436[AIR-32] add private module support
- •15ad5f8[AIR-32] add private module support
- •3943183save bind changes
- •efd5b84remove mdns
- •2a00a1ffix wifi bind mode
- •1d3c608[AIR-32] refactor setup
- •5edf4darefactor wifi setup
- •4912f4c[AIR-32] update network manager
- •40f4218save hotspot mode
- •04dccdd[AIR-32] update webrtc session management
- •4bbe8ad[AIR-32] add envs fallback
- •3d08368Add tailwindcss to .gitignore
- •d695edf[AIR-32] fix tailwind installation
- •359204f[AIR-32] fix bind service
- •09086e9[AIR-32] add output.css
- •4433c77[AIR-32] fix bind mode for application
- •26caa9c[AIR-32] fix bind mode for application
- •5bd2358[AIR-32] add setup mode to application
- •5ee3887[AIR-32] add setup mode for application
- •ddb0c5c[AIR-32] add hotspot setup
- •cbe5aaa[AIR-00] fix sdk build
- •39b4226[AIR-28] add telemetry sender functionality
- •11659cd[AIR-28] add telemetry sender functionality
- •b2cc8b1[AIR-28] fix telemetry connection
- •2c88abb[AIR-28] fix telemetry sending
- •d82aa18[AIR-28] fix telemetry requests
- •cc50c0c[AIR-28] update docker file
- •fc0c88b[AIR-28] add mavlink commands support
- •a2087bf[AIR-28] upgrade mavlink telemetry
- •2b87157[AIR-28] fix mavlink telemetry
- •8c601f5[AIR-28] fix mavlink connection
- •2505220[AIR-28] add datachannel telemetry handler
- •fdbbe63[AIR-28] add datachannel mavlink connection
- •f924e1e[AIR-28] refactor mavlink connection
- •7bad84d[AIR-28] fix session closure
- •74a5730[AIR-28] add mavlink telemetry over datachannel
- •9385921[AIR-28] add mavlink telemetry
- •a325785[AIR-28] refactor mavlink connection
- •c0bb321[AIR-28] extract to mavlink repository
- •9043ba5[AIR-28] add mavlink handlers
- •a81b275[AIR-28] add mavlink package
- •cc1b49e[AIR-28] cleanup
- •adde79f[AIR-28] refactor webrtc session
- •e793f08[AIR-28] refactor stream
- •9de9c5d[AIR-28] refactor handlers
- •2354b0b[AIR-28] update webrtc handlers
- •49b11ca[AIR-28] refactor handlers
- •fafb9d5[AIR-28] add answer handler
- •1b95842[AIR-28] fix webrtc error handling
- •84ae223[AIR-28] fix rtsp client error handling
- •efdf686[AIR-28] add templ dependency
- •64ffbff[AIR-28] refactor rtsp source
- •1c93194[AIR-28] add better logging
- •6c68b1e[AIR-28] fix SIYI camera
- •642460b[AIR-28] code cleanup
- •f6d9f83[AIR-28] code cleanup
- •354d038[AIR-28] code cleanup
- •433fa90[AIR-28] downgrade logs
- •db8de90[AIR-28] update h264 decoder
- •01c3bfd[AIR-28] fix media stream
- •8c7cb29[AIR-28] save media package
- •55f3934[AIR-28] move unit inside stream
- •eff7ff0[AIR-28] refactor stream package
- •75c70c0[AIR-28] fix warnings
- •fe7a6df[AIR-28] downgrade logs
- •948760d[AIR-28] add enhanced stream package
- •8e46356[AIR-28] add enhanced peer connection
- •4346c9f[AIR-28] fix stream manager
- •a780cce[AIR-28] add stream manager
- •b2c0bb3[AIR-28] fix negotiation
- •b838c2c[AIR-28] fix rtsp source
- •b45e7bf[AIR-28] fix rtsp configs
- •6832578[AIR-28] add custom code handling
- •9c6ecc6[AIR-28] add custom error handling
- •f92d679[AIR-28] add config validation
- •ae7b37f[AIR-28] add validation handler
- •8177b4e[AIR-28] update media and stream package
- •66a46d3[AIR-28] update stream package
- •bc94654[AIR-28] add rtsp source
- •83fd91e[AIR-28] add webrtc manager
- •4f16dd3[AIR-28] add media stream handlers
- •b5d6301[AIR-28] fix media sources and destinations
- •f9f440a[AIR-28] fix media sources and destinations
- •f1bd857[AIR-28] update handlers
- •06cc533[AIR-28] update handlers
- •861b84f[AIR-28] add sqlite database
- •e799a0f[AIR-28] add configs handlers
- •ca5b862[AIR-28] add media pipeline
- •6d0caff[AIR-28] refactor keyring package
- •7e796a2[AIR-28] refactor config package
- •2c65656[AIR-28] refactor message handlers
- •be48470[AIR-28] configure session management
- •94412ab[AIR-28] remove not used error
- •a5bed58[AIR-28] add websocket stats
- •a06a07c[AIR-28] add websocket client tests
- •f9c84eb[AIR-28] add old websocket clint
- •9d4dbcd[AIR-28] fix websocket timeouts
- •b09b24f[AIR-28] fix websocket tests
- •b40e57a[AIR-28] fix websocket
- •ae6289e[AIR-28] add websocket tests
- •9c89d10[AIR-28] add websocket tests
- •21fc56d[AIR-28] fix websocket
- •b706fce[AIR-28] fix ping/pong
- •313fcb0[air-28] save this trash
- •341c7a9[air-30] save this trash
- •e178746[air-30] save this trash
- •b4cbc6f[air-30] save this trash
- •efe1584[AIR-30] save this trash
- •cb1c434[AIR-30] save this trash
- •bf602a2[AIR-30] save changes
- •07bc034[AIR-30] fix unit tests
- •13595dd[AIR-30] split message into multiple providers
- •5931f01[AIR-30] downgrade all logs to trace level
- •81a23d7[AIR-30] add raw internal state output
- •e47f38f[AIR-30] remove outdated tests
- •9864010[AIR-30] add history tracker
- •9e2406b[AIR-30] fix ui
- •8137db2[AIR-30] save intermediate
- •9aa22e4[AIR-30] remove camera init
- •35840b8[AIR-30] move startup logic to boot functions
- •b6e71c9[AIR-30] add more interfaces
- •6381cdf[AIR-30] downgrade logs
- •17c65df[AIR-30] migrate to service providers
- •0838180[AIR-30] add the message client
- •98b2f33[AIR-30] fix websocket tests
- •cf32e20[AIR-30] improve websocket client
- •a99d461[AIR-30] improve websocket client
- •bfd83ee[AIR-30] fix test
- •6e35e0d[AIR-30] extract infrastructure
- •c561589[AIR-30] intermediate save
- •159d3e5[AIR-30] migrate to new application structure
- •a1c4d04[AIR-30] add message validation
- •8f963b9[AIR-30] fix state monitor
- •68ca005[AIR-30] save intermediate changes
- •d8bc4ab[AIR-00] add checks to prevent accidental release
- •d709c5d[AIR-24] fix deployment release-prod.yml
- •d38dd7c[AIR-24] Release stable version of aircast agent (#7)
- •133646c[AIR-24] trigger aircast stable build (#5)
- •c5322c5[AIR-12] silence loki if it is not available (#4)
- •58b1cd8[AIR-15] setup workflows to properly separate prod and dev environments
- •df863c6[AIR-12] migrate to new api structure
- •cd1b970fix loki logging
- •76c89e7improve signin messaging
- •2b71199remove tls check
- •242ae30add automatic start
- •cdc4d81update logger
- •d5c2780improve logs
- •7162414improve logs
- •148f85aadd remote logger (#2)
- •f1a3111fix version releases
- •434ad31stop video stream when camera settings were changed
- •e960e9f[AIR-318] rtsp is connected but no video streaming (#1)
- •aa9ec13update ice server
- •9ec4f2cfix .envs
- •448b62fupdate release.yml
- •9571ffcupdate .goreleaser.yml
- •1394ca4update .goreleaser.yml
- •75fa75bupdate .goreleaser.yml
- •b2a9cdeupdate .goreleaser.yml
- •2625ec1update .goreleaser.yml
- •68c1df9update .goreleaser.yml
- •51fbf1cupdate Makefile
- •84d75c6update release.yml
- •5484e56change video
- •d6cb214fix auth
v1.2.3
December 21, 2025v1.2.3
Changelog
- •12dbeeaAdd SSE streaming and cancel support for camera discovery
- •ae7bbeeAdd API reachability detection and auto-refresh UI
- •71c765ffix RTSP discovery for cameras returning 404 on root path
- •c033e7arefactor broadcaster
- •0fa351aadd camera discovery feature
- •585d221use tailscale for local deploys
- •22a7532Add USB camera discovery with quick probe and full subnet scan
- •26cab83update go.sum
- •31679e6fix golangci-lint issues across codebase
- •231fac8Add automatic recovery for stale cellular data sessions
- •9a199abfeat(auth): namespace tokens by API host to preserve bindings across environments
- •bd095f4fix pending WebRTC renegotiation
- •c6f4769upgrade templ
On This Page