docs: expand v0.1.6 release notes with detailed feature descriptions #9
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Desktop Release | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| permissions: | |
| contents: write | |
| jobs: | |
| build-macos: | |
| runs-on: macos-14 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 'lts/*' | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm install | |
| - name: Build Next.js | |
| run: npm run build | |
| - name: Compile Electron | |
| run: npm run electron:compile | |
| - name: Build macOS app | |
| run: npx electron-builder --mac --publish always | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: macos-build | |
| path: release/*.dmg | |
| build-windows: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 'lts/*' | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm install | |
| - name: Build Next.js | |
| run: npm run build | |
| - name: Compile Electron | |
| run: npm run electron:compile | |
| - name: Build Windows app | |
| run: npx electron-builder --win --publish always | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows-build | |
| path: release/*.exe | |
| build-linux: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 'lts/*' | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm install | |
| - name: Build Next.js | |
| run: npm run build | |
| - name: Compile Electron | |
| run: npm run electron:compile | |
| - name: Build Linux app | |
| run: npx electron-builder --linux --publish always | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: linux-build | |
| path: release/*.AppImage | |
| update-release-notes: | |
| needs: [build-macos, build-windows, build-linux] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Update release notes | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| const tag = context.ref.replace('refs/tags/', ''); | |
| const { data: releases } = await github.rest.repos.listReleases({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| }); | |
| const release = releases.find(r => r.tag_name === tag); | |
| if (!release) { | |
| core.setFailed(`Release for tag ${tag} not found`); | |
| return; | |
| } | |
| await github.rest.repos.updateRelease({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| release_id: release.id, | |
| draft: false, | |
| body: [ | |
| `## Altnautica Command ${tag}`, | |
| '', | |
| 'Biggest release since launch. 139 commits covering internationalization, cloud relay for remote drone control, a standalone backend for self-hosters, and a full rewrite of how the GCS talks to the drone agent.', | |
| '', | |
| '---', | |
| '', | |
| '### Internationalization (i18n)', | |
| '', | |
| 'The entire GCS is now translatable. Ships with **7 languages** out of the box: English, Hindi, Tamil, Chinese (Simplified), German, Spanish, and French. Every component, tooltip, toast message, config panel, and planner label has been wired through `next-intl`. A built-in **Translation Editor** lets you browse and edit translation keys directly from the settings page. Language can be switched on the fly from the config page.', | |
| '', | |
| '### Cloud Relay', | |
| '', | |
| 'Control your drone remotely over 4G/5G from anywhere. Three-layer architecture:', | |
| '', | |
| '- **Convex HTTP relay** for command and status polling (works immediately, zero infra)', | |
| '- **MQTT bridge** for real-time 2Hz telemetry via Mosquitto with WebSocket transport', | |
| '- **Video relay** converting RTSP to fMP4 over WebSocket for live browser playback', | |
| '', | |
| 'All traffic routes through Cloudflare Tunnel. No port forwarding needed. The GCS auto-detects HTTPS and switches to cloud mode. A new cloud mode indicator in the header shows connection status. Cloud mode now works across **all Command tabs**: peripherals, scripts, suites, enrollment, peers, and logs.', | |
| '', | |
| '### Standalone Convex Backend', | |
| '', | |
| 'Open-source users can now self-host cloud features. The `convex/` directory ships with 25 tables (7 auth + 18 custom), 15 function files, auth config, HTTP routes, and crons. Run `npx convex dev` and you get the full backend. No dependency on our production deployment.', | |
| '', | |
| '### Mission Planning Improvements', | |
| '', | |
| '- **Quick rectangle button** to drop a default survey area at the current map center. One click to start a survey instead of manually drawing a polygon', | |
| '- **Backspace vertex deletion** while drawing polygons', | |
| '- **SAR search pattern** support added to the pattern generator', | |
| '- Pattern config section **auto-opens** after completing a drawing', | |
| '- Map center state now syncs with the planner store for consistent viewport tracking', | |
| '', | |
| '### Agent Store Rewrite', | |
| '', | |
| 'The monolithic agent store has been split into 4 specialized stores: **connection**, **system**, **scripts**, and **peripherals**. Each store owns its domain. A facade layer maintains backward compatibility so existing components keep working. Service status tracking now includes `degraded` and `starting` states, uptime computed from monotonic timestamps, and detailed per-service CPU/RAM metrics.', | |
| '', | |
| '### MSP Protocol Refactor', | |
| '', | |
| 'The single large MSP decoder file has been split into categorized modules (motor, sensor, config, etc.). New motor and sensor decoders added. Makes Betaflight/iNav support easier to extend.', | |
| '', | |
| '---', | |
| '', | |
| '### Performance', | |
| '', | |
| '- **Cesium 3D globe** rendering optimized with entity caching, request render mode, and disabled atmospheric effects', | |
| '- **Map tiles** now use icon caching and batched updates for smoother panning', | |
| '- **Zustand stores** batch version increments during high-frequency telemetry to reduce re-renders', | |
| '- **Diagnostics hex logging** is now conditional, saving CPU when not actively debugging', | |
| '- **Next.js Turbopack** enabled for faster dev builds', | |
| '', | |
| '### Bug Fixes', | |
| '', | |
| '- Fixed Zustand store mutation and subscription ordering that caused stale UI in fast telemetry updates', | |
| '- Fixed MQTT module import failing in production bundles (dynamic import path issue)', | |
| '- Fixed demo mode not syncing with the `NEXT_PUBLIC_DEMO_MODE` environment variable', | |
| '- Fixed cloud status timeout causing duplicate drone entries in the fleet sidebar', | |
| '- Fixed agent API response shape handling across temperature, scripts, and service endpoints', | |
| '- Applied `useConvexSkipQuery` hook consistently, preventing crashes when auth context is unavailable', | |
| '- Fixed non-null userId assertion in agent registration', | |
| '- Removed stale alpha tester application system and unlocked Command page for all users', | |
| '', | |
| '### Other Changes', | |
| '', | |
| '- Extracted reusable `MultiSeriesChart` component for telemetry graphs', | |
| '- `useConvexSkipQuery` custom hook replaces 10+ manual skip guard patterns', | |
| '- `useFcPanelState` composite hook consolidates common FC panel boilerplate', | |
| '- `formatErrorMessage` utility for safe error string conversion across the app', | |
| '- Self-hosting documentation added for the cloud relay stack', | |
| '', | |
| '---', | |
| '', | |
| '### Downloads', | |
| '', | |
| '- **macOS:** `.dmg` (Intel and Apple Silicon)', | |
| '- **Windows:** `.exe` installer', | |
| '- **Linux:** `.AppImage`', | |
| '', | |
| '> Desktop builds lag behind the web version by a release or two.', | |
| '> For the latest, use [command.altnautica.com](https://command.altnautica.com)', | |
| '> or clone the repo and run locally (`npm install && npm run dev`).', | |
| ].join('\n'), | |
| }); |