Tracking issue for work deferred after the in-app config / backend-supervision rework (branch feat/in-app-config-and-backend-supervisor).
Shipped in that branch
- Electron now launches/supervises the Python backend (no terminal); startup/error gate UI.
- In-app Settings (⚙): LLM key/model + Test connection, Whisper size/device, preview backend — saved per-user, applied via backend restart.
/config, /config/test-llm, /audio/devices endpoints; audio device picker.
- Silent LLM-fallback now surfaced as an actionable toast; simple/advanced diagnostics; summary expand modal (no more
window.alert).
1. One-click packaging / release (biggest remaining item)
Goal: a non-technical user downloads one installer — no Python/Node, no scripts.
2. Smaller follow-ups
Verification status of the shipped branch
- Backend boots and serves
/health {ready,phase}, /config, /audio/devices, /config/test-llm over HTTP (port override via MEETINGBRO_PORT confirmed).
- Frontend
tsc (both configs) + production vite build pass.
- Electron GUI not visually driven in CI; supervisor spawn command + attach probe verified against a live backend.
Tracking issue for work deferred after the in-app config / backend-supervision rework (branch
feat/in-app-config-and-backend-supervisor).Shipped in that branch
/config,/config/test-llm,/audio/devicesendpoints; audio device picker.window.alert).1. One-click packaging / release (biggest remaining item)
Goal: a non-technical user downloads one installer — no Python/Node, no scripts.
extraResources. Highest risk: native libs (ctranslate2, onnxruntime, sounddevice/portaudio, soundfile/libsndfile, silero-vad, soundcard).electron-builderconfig: NSIS (Windows) + dmg (macOS); spawn the bundled backend exe viaprocess.resourcesPath(theBackendSupervisoralready abstracts spawn/attach — extend path resolution forapp.isPackaged).main.py: branchPROJECT_ROOTonsys.frozen; move writable paths (DB, exports) to%APPDATA%/~/Library/Application Support(currentlyparents[3], read-only under Program Files).2. Smaller follow-ups
translation_unavailableerrors the same way summaries now do (LLMTranslator+ manager call site).phaseflag.app/backend/.venvto be Python 3.12+. Detect a wrong-version/empty venv pre-spawn and show a clear "run installer" message (today it surfaces as a runtime ModuleNotFoundError in the gate).t()dictionary.Verification status of the shipped branch
/health{ready,phase},/config,/audio/devices,/config/test-llmover HTTP (port override viaMEETINGBRO_PORTconfirmed).tsc(both configs) + productionvite buildpass.