From 77c7325c59edfd213d7cd054fd3d63aea1d3a853 Mon Sep 17 00:00:00 2001 From: Remi <73385395+itsrubberduck@users.noreply.github.com> Date: Sun, 19 Oct 2025 08:43:17 +0200 Subject: [PATCH 1/3] Add button-controlled roadmap item --- server/data/roadmapItems.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/data/roadmapItems.ts b/server/data/roadmapItems.ts index d09d53d..9875769 100644 --- a/server/data/roadmapItems.ts +++ b/server/data/roadmapItems.ts @@ -15,6 +15,14 @@ export const ROADMAP_ITEMS: RoadmapItemDefinition[] = [ category: 'Training', icon: 'mdi-cellphone-sound', }, + { + key: 'button-control', + title: 'Button-controlled transmissions', + description: + 'Hardware or on-screen push-to-talk button options for when speaking aloud is not possible or practical.', + category: 'Accessibility', + icon: 'mdi-gesture-tap-button', + }, { key: 'realism-upgrades', title: 'Phraseology realism boost', From c6c67e00a0252b6c4f2a2501e62859f28aa460e4 Mon Sep 17 00:00:00 2001 From: Remi <73385395+itsrubberduck@users.noreply.github.com> Date: Sun, 19 Oct 2025 16:12:52 +0200 Subject: [PATCH 2/3] Tighten readback matching and add classroom home link --- app/pages/classroom.vue | 53 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/app/pages/classroom.vue b/app/pages/classroom.vue index e18411c..e5dadb7 100644 --- a/app/pages/classroom.vue +++ b/app/pages/classroom.vue @@ -1170,6 +1170,7 @@
@@ -1359,6 +1360,20 @@ function similarity(a: string, b: string): number { return 1 - distance / maxLen } +function allowedDistance(length: number): number { + if (length <= 12) return 0 + if (length <= 24) return 1 + if (length <= 36) return 2 + return 3 +} + +function tightenedThreshold(length: number, base: number): number { + if (length >= 36) return Math.max(base, 0.9) + if (length >= 24) return Math.max(base, 0.92) + if (length >= 16) return Math.max(base, 0.94) + return Math.max(base, 0.97) +} + const modules = shallowRefWe only need a callsign plus departure and destination to spin up a training scenario.
+We only need a callsign plus departure and destination to spin up a training + scenario.
Initial altitudes, squawk, push timing and remarks.