From 77ecd49334a590803b78e8a06e4df3f9b0419654 Mon Sep 17 00:00:00 2001 From: itsrubberduck Date: Sat, 14 Feb 2026 10:14:33 +0100 Subject: [PATCH] feat(flightlab): sidebar, progress bars, skip speech, SimBridge telemetry & auth MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add collapsible sidebar with phase stepper (jump between phases) - Add SimBridge conditions panel in sidebar (live values, progress bars, targets) - Add global progress bar (top edge, glowing) + phase-local TTS progress bar - Add skip button to skip TTS speech while ATC is speaking - Add skipSpeech() to audio composable (stops current Pizzicato sound) - Wire up bridge data.post.ts with user auth (JWT) + example payload - Add server-side telemetry store with pub/sub for Bridge→WS relay - Extend WS handler with subscribe-telemetry message + userId tracking - Extend sync composable with subscribeTelemetry() + onTelemetry() callback - Add require-auth middleware to all flightlab pages - Fix instructor station ECONNREFUSED via import.meta.client guard - Add animations: phase transitions, button lists, fade-scale, check-pop, pulse Co-Authored-By: Claude Opus 4.6 --- app/pages/flightlab/index.vue | 1 + app/pages/flightlab/takeoff.vue | 727 ++++++++++++++---- app/pages/flightlab/takeoff/instructor.vue | 5 +- server/api/bridge/data.post.ts | 58 +- server/api/flightlab/ws.ts | 34 +- server/utils/flightlabTelemetry.ts | 35 + .../flightlab/useFlightLabAudio.ts | 25 + .../composables/flightlab/useFlightLabSync.ts | 12 + 8 files changed, 722 insertions(+), 175 deletions(-) create mode 100644 server/utils/flightlabTelemetry.ts diff --git a/app/pages/flightlab/index.vue b/app/pages/flightlab/index.vue index bc503b0..91acc4a 100644 --- a/app/pages/flightlab/index.vue +++ b/app/pages/flightlab/index.vue @@ -126,6 +126,7 @@ import { takeoffEddf } from '~~/shared/data/flightlab/takeoff-eddf' definePageMeta({ layout: false, + middleware: ['require-auth'], }) useHead({ diff --git a/app/pages/flightlab/takeoff.vue b/app/pages/flightlab/takeoff.vue index 1b397f0..be567db 100644 --- a/app/pages/flightlab/takeoff.vue +++ b/app/pages/flightlab/takeoff.vue @@ -1,7 +1,157 @@