Commit Graph

251 Commits

Author SHA1 Message Date
itsrubberduck
ad1e85f0e8 add the lidl dome light temporarily 2026-02-18 21:49:03 +01:00
itsrubberduck
e818f6001e change default settings 2026-02-18 18:05:12 +01:00
itsrubberduck
3705340b47 besser error message 2026-02-17 19:10:50 +01:00
itsrubberduck
9287642dab test: expand coverage for core backend features 2026-02-17 18:36:13 +01:00
itsrubberduck
be3a3887fc smoketests 2026-02-17 18:26:20 +01:00
itsrubberduck
de02dc4f9e typescript 2026-02-17 18:19:55 +01:00
itsrubberduck
54c1b47dc2 fix typescript errors and update dependencies 2026-02-17 18:13:04 +01:00
itsrubberduck
59bede6ad4 add server log 2026-02-17 15:31:32 +01:00
itsrubberduck
1e69c52b70 Fix bridge connect UI states for unauthenticated users 2026-02-16 17:32:13 +01:00
itsrubberduck
ba2233d842 Redesign bridge connect flow and simplify linking UX 2026-02-16 17:25:53 +01:00
itsrubberduck
4787a06906 feat(bridge): add unlink flow for linked tokens 2026-02-16 16:39:18 +01:00
itsrubberduck
7eef56e3fd fix: add CORS middleware for bridge endpoints 2026-02-16 16:21:30 +01:00
itsrubberduck
86de549adb use 6 digit codes for bridge 2026-02-16 15:47:12 +01:00
itsrubberduck
8e01936abb Fix bridge telemetry boolean coercion for auto-advance conditions
SimConnect sends boolean fields (on_ground, parking_brake, etc.) as 0/1
numbers. The condition evaluator uses strict equality (===), so
0 === false was returning false even when the condition was semantically
met. Cast boolean telemetry fields with !! to ensure proper type matching.
Also reduce solo-mode telemetry polling from 500ms to 2000ms.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:26:50 +01:00
itsrubberduck
4ac07d9352 Connect bridge telemetry to FlightLab with auto-advance triggers
Map raw bridge fields (ias_kt, on_ground, etc.) to FlightLabTelemetryState
format, add direct telemetry polling endpoint for solo mode, and show
sim condition panel in sidebar regardless of auto-advance toggle state.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:16:42 +01:00
itsrubberduck
f742722e9c Unify bridge auth header and add live telemetry panel 2026-02-15 16:04:07 +01:00
itsrubberduck
f7efaf1d7b Fix local sharp setup for Nuxt image processing 2026-02-15 15:47:06 +01:00
itsrubberduck
4df6aef1ef Unify bridge connect login flow with explicit login button 2026-02-15 15:34:30 +01:00
itsrubberduck
346579676e fix(classroom): audio speed slider now actually changes playback speed with pitch correction
- Fix client: playbackRate was set to 1 for non-native-speed providers (Speaches/Piper),
  making the speed slider ineffective in the main Pizzicato audio path
- Fix server: pass speed parameter to Speaches TTS API
- Add pitch-preserving playback via MediaElementSourceNode when rate != 1,
  routing through the same Web Audio effects chain (radio filters, distortion, etc.)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 01:01:02 +01:00
itsrubberduck
f42dbbcd18 feat(classroom): integrate user feedback — audio speed, METAR TTS, phonetics, UI fixes
- Lower default audio speed to 0.85x, extend slider range to 0.5-1.3x
- Add METAR normalization for intelligible TTS (wind, vis, clouds, temp, QNH)
- Expand SID/STAR suffix regex to handle spaces (SUGOL 2S)
- Add approach suffix phonetic expansion (ILS 08R Y → Yankee)
- Fix "Soll:" → "Expected:" in readback feedback
- Accept numeric values for pushback delay field
- Add news article documenting the changes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 14:21:35 +01:00
itsrubberduck
fe50f9d21a Add classroom feedback integration design doc
Documents all user feedback issues and planned fixes for audio speed,
METAR normalization, phonetics, and UI text.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 14:06:44 +01:00
itsrubberduck
acb79cdb2b feat(flightlab): sidebar, progress bars, skip speech, SimBridge telemetry & auth
- 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 <noreply@anthropic.com>
2026-02-14 10:14:33 +01:00
itsrubberduck
af2eed2d6e dont log users id on transmission 2026-02-13 18:44:34 +01:00
itsrubberduck
4837e2ea1f feat(flightlab): add audio directory with README for cockpit sound effects
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:49:15 +01:00
itsrubberduck
962827f138 feat(flightlab): add WebSocket handler for instructor-participant session sync
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:45:18 +01:00
itsrubberduck
f6444c31a5 feat(flightlab): add type definitions for FlightLab scenario engine
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:20:26 +01:00
itsrubberduck
ef9beb120d chore: add .worktrees to gitignore 2026-02-13 14:18:29 +01:00
itsrubberduck
6f060d0ddd fix pm 2026-02-13 08:50:02 +01:00
itsrubberduck
a5272149c6 add todo for najan 2025-10-19 21:03:52 +02:00
Remi
1dd78b95b1 Add bidirectional airport geocode and name-aware taxi routing 2025-10-19 19:17:18 +02:00
Remi
0febe45862 Remove explicit type hints from airport geocode lookup 2025-10-19 19:07:23 +02:00
Remi
ef603bda13 Infer airport geocode types from query text 2025-10-19 19:00:32 +02:00
Remi
f4beba1b25 Add airport geocode endpoint 2025-10-19 18:56:48 +02:00
itsrubberduck
15b9b65fa0 Merge branch 'codex/fix-readback-field-validation-issue' 2025-10-19 16:48:41 +02:00
itsrubberduck
634b07365a change footer linsk 2025-10-19 16:48:33 +02:00
Remi
8ff058a542 Tighten readback matching and add classroom home link 2025-10-19 16:12:52 +02:00
itsrubberduck
cb64b5ba78 Merge branch 'codex/analyze-taxi-route-api-response' 2025-10-18 21:50:45 +02:00
Remi
20341aa06b Refine taxiway collapse and radius default 2025-10-18 21:47:54 +02:00
Remi
0c3605bc6c Adjust taxi route collapse rules 2025-10-18 21:47:54 +02:00
Remi
d753f0380a Preserve raw taxi route names 2025-10-18 21:47:53 +02:00
Remi
21f058b25a Refine taxiway collapse and radius default 2025-10-18 21:46:55 +02:00
Remi
150f3c41a9 Brighten high-readability profiles and default to level 5 2025-10-18 21:39:23 +02:00
Remi
5813160531 Loosen readability 4-5 filters for clarity 2025-10-18 21:33:52 +02:00
Remi
c5e6eb1f92 Adjust taxi route collapse rules 2025-10-18 21:33:43 +02:00
Remi
663001a7af Normalize taxi routes for clearer speech 2025-10-18 21:29:56 +02:00
Remi
1c70c59df3 Preserve raw taxi route names 2025-10-18 21:08:24 +02:00
Remi
5e3f189b7d Merge pull request #246 from OpenSquawk/codex/add-fromaddress-for-email-notifications
Add reply-to handling for admin notifications
2025-10-18 16:33:18 +02:00
Remi
de67a4ac4a Add reply-to support for admin notifications 2025-10-18 16:33:06 +02:00
Remi
77809140fd Handle Hotjar consent via local storage 2025-10-18 14:48:13 +02:00
Remi
916217d2aa feat: integrate nuxt hotjar module 2025-10-18 14:31:16 +02:00