Skip to content

fix: OS-aware startup workflow and cross-browser audio recording#7

Merged
mlarsen-source merged 1 commit into
mainfrom
fix_run_project
Jun 6, 2026
Merged

fix: OS-aware startup workflow and cross-browser audio recording#7
mlarsen-source merged 1 commit into
mainfrom
fix_run_project

Conversation

@mlarsen-source

Copy link
Copy Markdown
Owner

Summary

The run-project.md agent workflow was restructured from a loosely ordered single-platform guide into an 8-step OS-aware sequence: OS and terminal detection now runs first, followed by per-platform prerequisite checks for Python, Node.js, pnpm, ffmpeg, and Homebrew (macOS only), before any project-level setup is attempted. The MediaRecorder initialization in InterviewClient.tsx was fixed to use MediaRecorder.isTypeSupported() with a fallback chain instead of hardcoding audio/webm, which caused Groq Whisper to receive a mismatched or undecodable audio file on Safari and Firefox, resulting in hallucinated "Thank you" transcription output.

Issues fixed

Fix Root cause Affected users
OS-aware startup workflow (modified) Single command set failed across Windows PowerShell, macOS, and Linux; ffmpeg and Homebrew not checked Any user not on Windows Git Bash
Cross-browser audio recording (modified) Hardcoded audio/webm unsupported on Safari; mislabeled blob caused Whisper format mismatch Safari users; any browser that doesn't support webm

File-by-file changes

Documentation

  • docs/agent-workflows/run-project.md: Rewrote the workflow as an 8-step OS-aware sequence — Step 1 detects the OS via uname -s and asks the user if the result is unrecognized; Steps 2–3 check and fix OS-level prerequisites (Python, Node.js, pnpm, ffmpeg, Homebrew on macOS) before touching the venv; Steps 4–5 handle project-level state; Steps 6–8 start backend and frontend and report URLs; every step now provides platform-specific commands for Windows PowerShell, Windows Git Bash, macOS, and Linux separately.

Frontend

  • frontend/app/InterviewClient.tsx: Replaced the hardcoded { mimeType: "audio/webm" } MediaRecorder option with a isTypeSupported() fallback chain that selects audio/webm;codecs=opus, audio/webm, audio/mp4, or the browser default in that order; the detected mimeType is passed to both the MediaRecorder constructor and the final Blob so the uploaded filename extension matches the actual container format Groq Whisper receives.

@mlarsen-source mlarsen-source self-assigned this Jun 6, 2026
@mlarsen-source mlarsen-source merged commit 2970686 into main Jun 6, 2026
2 checks passed
@mlarsen-source mlarsen-source deleted the fix_run_project branch June 6, 2026 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant