Active/standby worker switch with Mac worker and tray UIs #220
No reviewers
Labels
No labels
bug
dependencies
duplicate
enhancement
help wanted
invalid
javascript
question
symphony
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
backmeupplz/voicy!220
Loading…
Reference in a new issue
No description provided.
Delete branch "worker-standby-switch"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Lets the Windows 4070 Ti worker hand new transcription jobs to a second worker on an Apple Silicon Mac and take them back. The main use is gaming on the PC: a Steam game starting moves new jobs to the Mac, and exiting the game moves them back. Agentboard #129.
Backend (deploys on merge)
WorkerClient.standby. A standby worker gets204fromclaim-downloadand the legacyclaimwhile an active worker has made a job request in the last 90 s. It finishes the jobs it already owns, and it covers on its own when no active worker is online. Workers are active by default, so nothing changes until someone switches.GET /worker/v1/workersandPOST /worker/v1/workers/active {name}for switch UIs. Requests to/workers*do not refreshlastSeenAt, so a polling UI can't keep a dead worker looking online.claim-downloadacceptsmaxFileSize.Worker side
scripts/telegram-bot-api-file-proxy.py, so the bot is never logged into a second Bot API server. That proxy is needed because a--localserver returns paths on its own disk and answers 404 for/file/downloads. The proxy is exposed withtailscale serve. The Mac claims big files only while the proxy answersgetMe(checked every 30 s), so they wait instead of failing when the PC is off.scripts/mlx-whisper-transcriber.py: large-v3-turbo on the Mac GPU. It uses faster-whisper's decoder and Silero VAD, because turbo returns "Thank you." on silence and itsno_speech_probstays at 0.scripts/worker-switch-menubar.swift+scripts/install-macos-worker.sh: menu bar switch and LaunchAgents. The Mac keeps itself from idle sleep while it is the active worker.scripts/worker-switch-tray.ps1: Windows tray switch that watches Steam'sHKCU\Software\Valve\Steam\RunningAppID.worker.loghad reached 1.56 GB, mostly from that line.Tests
test:worker-api(local Mongo) covers standby yield and failover,/workerspolling not counting as presence, andmaxFileSize.test:worker-clientcovers routing a big file through the large-file API, and the 20 MB claim limit while that API is down.🤖 Generated with Claude Code