Skip to content

Refactor into ES modules, fix Docker image and clear-player sync#5

Merged
DorkSoul merged 4 commits into
mainfrom
testing
Jul 7, 2026
Merged

Refactor into ES modules, fix Docker image and clear-player sync#5
DorkSoul merged 4 commits into
mainfrom
testing

Conversation

@DorkSoul

@DorkSoul DorkSoul commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Merges the current testing work into main:

  • Refactor codebase into ES modules and route files
  • Fix Dockerfile to include new lib/, middleware/, and routes/ directories
  • Remove legacy app.js now that ES module split is verified working
  • Fix clear player not syncing to other devices

🤖 Generated with Claude Code

https://claude.ai/code/session_016EeuzFpj4QrUFpyDc3QXQG

Luke Hallinan and others added 4 commits May 31, 2026 21:49
Split public/app.js (2661 lines) into 13 ES modules under public/js/.
Split public/style.css (1150 lines) into 10 component files under public/css/.
Split server.js (564 lines) into lib/, middleware/, and routes/ directories.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When a device cleared its queue, the server kept activeDeviceId set because:
1. The pause event pushed the old queue before it was cleared
2. No subsequent push ever sent the empty queue

Fix: push empty state after Player.clear() runs (setTimeout 0), server now
clears activeDeviceId/activeDeviceAt when an empty queue is received, and
non-active devices hide the takeover banner when they see the cleared state.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@DorkSoul
DorkSoul merged commit 3683c9c into main Jul 7, 2026
1 check passed
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