You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Summary
Migrate backend worker orchestration to an XState actor architecture (supervisor/playlist/song runtime) while preserving existing external HTTP and WebSocket APIs.
Replace queue/runtime internals with actor-style behavior for clearer scheduling, better cancellation, and safer diagnostics.
Improve portless/local environment stability for cover assets and API URL handling.
Fix runtime regressions in song actor handoff and queue cancellation paths.
What's New
Worker runtime now uses a unified actor-driven lifecycle for songs and playlists.
Queue behavior is aligned with actor model expectations, including cancellation and retry-safe transitions.
/covers proxy in frontend dev config now uses the active API target from runtime config.
VITE_API_URL handling in portless web startup now supports both env-file and runtime env values.
Song actor cancellation path now avoids stale actor stop races when run() is re-entered.
Diagnostics event pipeline includes tighter runtime lifecycle handling.
Detailed Changes
apps/server/src/worker/runtime/actor-runtime.ts: event-loop and snapshot bookkeeping refinements for safer supervisor behavior.
apps/server/src/worker/song-worker.ts: safer song actor handoff and cancellation semantics.
apps/web/vite.config.ts: host-aware /covers proxy target and robust env fallback.