Skip to content

The settings drawer

The settings drawer is the single place where everything console-specific gets configured. Open it with the tune icon in the top-right of the toolbar. It slides in from the right and caps at 90vw so it stays usable on laptops.

The drawer has five sections, top to bottom. Each is expandable/collapsible — defaults to expanded so a new operator sees everything at once.

1. Layout

The layout picker lists all 14 presets grouped as Basic, Asymmetric, Advanced (see Layout for the full breakdown). Click any thumbnail — the console switches presets immediately with no confirmation and no page reload.

What the picker remembers

  • Your pick + which tile is in which region is written to localStorage under the key ops.layout.
  • The persistence is per user, per browser — no Firestore, no cross-device sync, no team pinning.
  • Switching presets redistributes tiles to the new region count while preserving your choices as best it can. The console auto-maintains a “one Map tile” invariant — if you swap Map out, it’s auto-assigned to another region.

2. Tile Assignments

Below the preset picker, each region of the current layout has a Tile N dropdown. Pick which tile renders in that region. Changes are instant and also persisted to the same localStorage key.

  • Every option from the master tile list is offered (see Layout → The full tile list).
  • A separate Live streams optgroup appears when there are active drone streams — you can pick a specific drone’s stream to pin a region directly to it, instead of routing via the generic Streams tile.
  • Capability-gated tiles (admin, dji, mavlink, …) only appear for users who hold the corresponding permission.

3. Voice Commands

A master Voice commands toggle. When off, the detector is bypassed entirely — no background parsing of your transcription stream, no voice-command badges. When on, four per-command subtoggles appear, grouped into two clusters:

Emergency / Distress

  • Master Caution Alarm — on detection of the EMERGENCY phrase set (see Voice commands for the 43 variants across English, Spanish, and Arabic transliteration), raise a critical master-caution alert.
  • Pan Camera to Operative — on emergency detection, send a command to the nearest-drone to point its gimbal at the speaker’s mapped location.
  • Distress Beacon Overlay — on emergency detection, drop a pulsing red overlay on the map at the speaker’s location.

General

  • Command Notifications — on any recognised voice command (launch, RTH, land, drop flag, …), show a toast confirming what the system heard.

These sub-toggles are also backed by localStorage via VoiceCommandSettingsService; preferences persist across sessions.

Note: voice commands only fire on finalised transcriptions (post-PTT-release), not on live partial text. This is intentional — acting on half-finished speech is dangerous for emergency triggers.

4. Developer

Debug mode toggle

A single button labelled Debug Mode with icon that switches between bug_report (on) and code_off (off). When on:

  • Stream tiles show extra overlays: RTT, bitrate in/out, per-peer packet loss.
  • The drone-settings drawer exposes additional tabs (RAW for raw protobuf telemetry inspection).
  • The fleet tile shows peer-identity strings next to each drone.
  • Several console logs escalate from debug to info so you can read them without opening DevTools.

This flag is per user, global across missions — once on, it stays on until you toggle off. A small hint text under the toggle reminds you it’s enabled.

5. CAS Demo

A training feature that simulates a Collision-Avoidance-System alert scenario. Useful for onboarding new operators or demonstrating CAS behaviour without live aircraft.

One button, two states

  • Start (flight icon) — kicks off the demo. The button label comes from the translation key ops.casDemoStart.
  • Stop (stop icon) — while running, the button turns into a stop control with a progress bar showing elapsed / total seconds (42 s total — the demo auto-ends after 42 s if you don’t stop it manually).

What happens while it’s running

When you click Start:

  • Three simulated drones (ALPHA-1, BRAVO-2, CHARLIE-3) are injected into the mission with pre-scripted flight paths that converge around the mission center.
  • Scripted CAS alert documents are written to missions/{missionId}/copilot_alerts every 2-5 seconds. These propagate to the master caution strip for every participant, so the demo looks authentic across the whole team.
  • The drones render as 3D models in the Cesium viewer with pulsing labels and animated positions that orbit the mission center.
  • The master-caution audio alarm plays if you’ve enabled audio (elsewhere in the UI).

When to stop

  • Click Stop at any time to end the demo early.
  • It stops automatically after 42 seconds.
  • Stopping removes the simulated drones, dismisses any remaining scripted alerts, and silences the caution audio.

The CAS demo does not affect real aircraft state in Firestore — it writes to copilot_alerts only. The simulated drones are client-side renders.

What’s not in the drawer

A few things you might expect but won’t find in the current build:

  • No “Pin layout to everyone” — layout is strictly per user.
  • No “Spawn demo dock” / “Simulate detections” buttons — the only demo is CAS. For detection simulation, use the developer-only approach in Detection simulator.
  • No mic / speaker picker — browser defaults only.
  • No colour-palette editor for tactical vs standard colours — accent comes from your org’s branding in admin.