From 8f82e9c0a1e81790eceb2fb5be77f9bbedc81ee3 Mon Sep 17 00:00:00 2001 From: Grant Gilliam Date: Mon, 8 Jun 2026 13:30:31 -0500 Subject: [PATCH] Make adapter toggles actually gate screen-reading MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Settings "Adapters" toggles wrote adapterEnabled but nothing in the capture path ever read it, so flipping one off did nothing — and the caption still said "Inert in Phase 0". The adapters (Zoom/Teams/Signal/Meet) are all live now. SessionController.startVisual now skips visual capture when the detected app's adapter is toggled off (records audio-only; transcription still runs). Update the section caption to describe the real behavior. --- Ten31Transcripts/Session/SessionController.swift | 3 +++ Ten31Transcripts/UI/SettingsView.swift | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Ten31Transcripts/Session/SessionController.swift b/Ten31Transcripts/Session/SessionController.swift index 75ef1be..8486c8a 100644 --- a/Ten31Transcripts/Session/SessionController.swift +++ b/Ten31Transcripts/Session/SessionController.swift @@ -256,6 +256,9 @@ final class SessionController: ObservableObject { private func startVisual(t0Host: Double, generation: Int, recorder: AudioRecorder) async { guard let capture = pendingCapture else { return } // manual recording → audio-only pendingCapture = nil + // Honor the per-app adapter switch: if the user turned this app's adapter off, + // skip screen-reading entirely and record audio-only (transcription still runs). + guard settings.adapterEnabled[capture.app.rawValue] ?? true else { return } guard let vc = VisualCapture(app: capture.app, bundleID: capture.bundleID, windowID: capture.windowID, t0Host: t0Host) else { return } // Register the live capture before the await so a quit (prepareForTermination) diff --git a/Ten31Transcripts/UI/SettingsView.swift b/Ten31Transcripts/UI/SettingsView.swift index be625e2..febebe8 100644 --- a/Ten31Transcripts/UI/SettingsView.swift +++ b/Ten31Transcripts/UI/SettingsView.swift @@ -63,7 +63,7 @@ struct SettingsView: View { } Section("Adapters") { - Text("Inert in Phase 0 — these toggles only persist for now.") + Text("Screen-reading for active-speaker cues. Turn one off to record that app audio-only — transcription still runs, but speakers aren’t identified from the screen.") .font(.caption) .foregroundStyle(.secondary) ForEach(AppSettings.adapterKeys, id: \.key) { adapter in