Skip to content

Releases: zed24software/pilot-client-bridge

24Client Bridge v1.0.5-beta

29 May 22:51

Choose a tag to compare

[1.0.5] - 2026-05-29

Added

  • Local OAuth flow: New local auth server (127.0.0.1:57331) handles Discord OAuth2 callback directly, eliminating dependency on the external auth_server config field
  • Voice credentials persistence: New voice-creds.ts stores voice channel credentials to %APPDATA%/pilot-client-bridge/voice-creds.json, surviving restarts
  • Per-scope token caching: Token cache now keyed by scope (token-activity.json, token-voice.json, etc.) so activity and voice tokens no longer overwrite each other
  • Callsign tray display: System tray now shows current callsign via updateCallsign()
  • Systray binary bundling: Systray executable embedded at build time via scripts/embed-tray-bin.mjs and bundled in the NSIS installer

Fixed

  • Voice channel switching broken when Discord's RPC AUTHENTICATE command returned errors under certain account configurations, now works around the limitation with a local OAuth exchange
  • Token refresh would silently fail after expiry due to stale cached token file being shared between scopes
  • Installer created shortcut pointing to wrong path
  • CJS import error on startup in certain environments
  • Update checker failed to compare versions correctly in some cases
  • Systray icon not loading when binary path differed between dev and production builds

Changed

  • auth_server field removed from rpc-config.json — auth is now handled locally
  • Token cache file renamed from token.json to token-<key>.json to support multiple scopes (manual deletion of old token.json may be needed on upgrade)
  • Contributing guidelines added to README

Dependencies

  • Added axios (^1.16.1) for OAuth token exchange HTTP requests
  • Added node-notifier (^10.0.1) and open (^11.0.0)

Full Changelog: v1.0.0-beta...v1.0.5-beta

24Client Bridge v1.0.0-beta

24 May 13:39

Choose a tag to compare

[1.0.0-beta.1] - 2026-05-24

Added - Initial Beta Release

Core Features

  • Discord RPC Integration: Full integration with Discord Rich Presence API for seamless status updates
  • Dynamic Flight Status Display: Real-time Discord activity updates showing:
    • Current altitude
    • Heading information
    • Aircraft callsign and type
    • Automatic status clearing when not in flight
  • Voice Channel Switching: Programmatic Discord voice channel switching based on radio frequencies
  • REST API: Full-featured REST API for interacting with Discord RPC functionality
  • System Tray Integration: Background service with system tray icon for quick status monitoring and control
  • Multi-platform Support: Windows with pre-compiled installer and Linux with self-compile option

API Endpoints

  • GET / - Health check endpoint
  • POST /rpc/select-voice-channel - Switch voice channels by frequency
  • GET /rpc/voice-connection-status - Get current voice connection status
  • POST /rpc/set-activity - Manually set Discord activity status
  • GET /rpc/get-channels - Retrieve available voice channels
  • POST /rpc/set-user-voice-settings - Configure voice settings

Configuration

  • rpc-config.json - Discord RPC client configuration
  • channels.json - Radio frequency to Discord channel mappings for Italian airspace (20+ airports supported)

Development Features

  • TypeScript support with strict type checking
  • Development mode with hot-reload (pnpm run dev)
  • Production build system using Bun
  • Windows installer generation with NSIS
  • Comprehensive error handling and logging

Platform Support

  • Windows: Pre-compiled executable installer with automatic installation to Program Files
  • Linux: Full source compilation support with clear build instructions

Installation

Windows

  • Pre-compiled installer available below
  • One-click installation with automatic shortcuts and system tray integration

Linux

  • Self-compile from source using pnpm run build
  • Requires Node.js 18+ or Bun runtime

Known Limitations (Beta)

  • Discord connection is required for all functionality
  • Voice channel switching limited to pre-configured frequency mappings
  • Activity updates occur every 10 seconds (not real-time)
  • System tray integration Windows-only in this release
  • OAuth token caching may require manual refresh in certain scenarios

Technical Details

  • Runtime: Bun/Node.js
  • Framework: Express.js for REST API
  • IPC Protocol: Custom Discord RPC handshake implementation
  • API Port: 127.0.0.1:57330 (localhost only for security)
  • CORS Origins: https://zedruc.net, http://localhost:5174

Testing Notes

This is a beta release intended for testing and feedback. Please report any issues or unexpected behavior through the project's issue tracker.

System Requirements

Windows

  • Windows 10 or later
  • Discord running with RPC enabled
  • ~50 MB disk space

Linux

  • Node.js 18+ or Bun runtime
  • pnpm or npm package manager
  • ~100 MB for dependencies and build output
  • Discord with RPC support

Breaking Changes

None - initial release.

Deprecations

None - initial release.

Security Notes

  • API server binds to 127.0.0.1 only (no external network access)
  • Discord IPC authentication required for all operations
  • Discord token cached locally for session persistence
  • CORS restricted to specific origins

Dependencies

  • express (^5.2.1) - REST API framework
  • cors (^2.8.6) - Cross-Origin Resource Sharing
  • node-ipc (^12.0.0) - Discord RPC communication
  • systray2 (^2.1.4) - System tray integration

For more information, see README.md.