Skip to content

Add initial BlueOS Cloud integration#2712

Draft
rafaellehmkuhl wants to merge 9 commits into
bluerobotics:masterfrom
rafaellehmkuhl:add-blueos-cloud-integration
Draft

Add initial BlueOS Cloud integration#2712
rafaellehmkuhl wants to merge 9 commits into
bluerobotics:masterfrom
rafaellehmkuhl:add-blueos-cloud-integration

Conversation

@rafaellehmkuhl

@rafaellehmkuhl rafaellehmkuhl commented May 14, 2026

Copy link
Copy Markdown
Member

This was the demo branch showcased in the last BlueOS Cloud meeting.

Has a lot to be worked and will probably be split into smaller branches.

Fix #2707
Fix #2708
Fix #2709
Fix #2710
Fix #2711

…rdings

Introduces the foundational pieces that the upcoming voice recording
feature will build on: type definitions for recordings and metadata,
date-based filename helpers that mirror the video naming convention, and
a dedicated audio storage instance backed by the Cockpit folder under
Electron and IndexedDB on the browser.
Adds an open-audio-folder IPC handler that opens the new audio/
subfolder of the Cockpit data directory in the system file manager,
together with the matching preload binding and TypeScript declaration.
This mirrors what is already done for the videos and snapshots folders.
Wraps getUserMedia and MediaRecorder behind a small, video-store-shaped
API: startRecording requests the local microphone, picks the best
supported MIME type (Opus/WebM preferred, with OGG/MP4 fallbacks) and
streams chunks into memory; stopRecording finalizes the recording,
writes the audio blob to the audio storage and persists a sidecar JSON
metadata file with the start/end timestamps, duration, mime type,
mission name and Cockpit version.

The metadata sidecar is what allows future work to align voice
recordings with concurrent video recordings without coupling the two
features at recording time.
Introduces a new VoiceRecorder mini-widget that lets the user start and
stop a microphone recording with a single click, mirroring the
MiniVideoRecorder UX (pulsing red dot, live elapsed time, badge with the
recording count opening the media library). Registers the new component
in MiniWidgetType so it shows up in the widget palette.

The widget is intentionally independent from the video recording flow,
so users can record short voice notes alongside ongoing video captures
without coupling the two features.
Adds a third Audio entry to the left menu of the media library, next to
Videos and Snapshots. The new tab lists every recording in the audio
storage, surfaces duration and start time from the metadata sidecar
when available, and exposes inline playback through a native audio
element plus per-file and bulk download/delete actions. Under Electron
a footer button reveals the new audio folder in the system file manager.
Adds a Voice Recording row to the Browser vs Desktop comparison so
users know the new feature exists, that microphone access requires a
secure context in the browser, and that on the desktop app the audio
files land directly in the Cockpit folder.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant