21 KiB
21 KiB
v0.1.0 (2026-03-25)
Initial public release of Media Server — a standalone REST API server (FastAPI) for controlling system-wide media playback on Windows, Linux, macOS, and Android.
Features
- Remote media control: play, pause, stop, next, previous, volume, seek (83acf5f)
- Built-in Web UI for media control and monitoring (a0d138b)
- Media browser with grid/compact/list views and single-click playback (e16674c)
- Low-latency volume control via WebSocket (32b058c)
- Audio visualizer with spectrogram, beat-reactive art, and device selection (0691e3d)
- Dynamic WebGL background with audio reactivity (be48318)
- Runtime script management with Home Assistant integration (d7c5994)
- Typed script parameters with validation and icon-grid selector (1410a8d)
- Callback management API/UI and theme support (a0af855)
- Multi-token authentication with client labels (71a0a6e)
- Optional authentication — no tokens = no auth (4d1bb78)
- Internationalization (i18n) with English and Russian locales (9bbb8e1)
- PWA support: installable standalone app with safe area handling (a20812e)
- System tray icon with Show UI, Restart, and Shutdown actions (6500d6f, 3f14512)
- Display brightness and power control (a568608)
- Custom accent color picker and primary display indicator (397d38a)
- 3D album art rotation and vinyl desaturation effect (4112367)
- Friendly media source names with brand icons (73a6f38)
- Browser search/filter for media items (5f474d6)
- Header quick links with CRUD management (99dbbb1)
- Swagger API docs button in header toolbar (2b1e09d)
- Update-available notification system (795a15c)
- Persist audio capture device selection to config (fb56e6c)
- UI animations: dialogs, tabs, settings, browser stagger, banner pulse (3cfc437)
- Tabbed UI with browse caching and bottom mini player (98a33bc)
- Slider tracks tinted with accent color (1c0a011)
Bug Fixes
- Tray restart uses
python -mfor reliable process respawn (415231f) - Tray main-thread message loop, numpy <2.0 pin, installer config copy (4021837)
- Loopback device status showing 'Unavailable' after change (0eca829)
- Error handling for unavailable network shares (d1ec27c)
- HTTPException handling in folder endpoints (c5f8c7a)
- FOUC (Flash of Untranslated Content) issues (4f8f59d)
- Windows Task Scheduler auto-start (8077181)
- Vinyl angle persistence on toggle (00d313d)
Development / Internal
CI/Build
- CI/CD pipelines with Gitea Actions, NSIS installer, ES module bundling, ruff linting (5439af1)
- Linux build in release workflow (ddd8788)
- NSIS installer with custom icon, launch-after-install, running-instance detection (26b5f74)
- CI/build improvements and version detection (4ef11c8)
- Warning annotation for existing release fallback (d0830cb)
Refactoring
- Modular frontend: refactor monolithic app.js into 8 modules (92d6709)
- Codebase audit: stability, performance, accessibility fixes (9404b37)
All Commits (82)
| Hash | Message | Author |
|---|---|---|
| d0830cb | ci: use warning annotation for existing release fallback | alexei.dolgolyov |
| 4ef11c8 | chore: CI/build improvements and version detection | alexei.dolgolyov |
| fb56e6c | feat: persist audio capture device selection to config.yaml | alexei.dolgolyov |
| ff67126 | chore: bump version to 1.0.1 | alexei.dolgolyov |
| 795a15c | feat: add update-available notification system | alexei.dolgolyov |
| 1410a8d | feat: typed script parameters with validation and icon-grid selector | alexei.dolgolyov |
| 1c0a011 | feat: tint slider tracks with 15% accent color | alexei.dolgolyov |
| 2b1e09d | feat: add Swagger API docs button to header toolbar | alexei.dolgolyov |
| 415231f | fix: tray restart uses python -m for reliable process respawn | alexei.dolgolyov |
| 32e2ff5 | fix: add --only-binary to pip download fallback (CI compatibility) | alexei.dolgolyov |
| 309f547 | feat: add default MDI icons to example config scripts | alexei.dolgolyov |
| 4021837 | fix: tray main-thread message loop, numpy <2.0 pin, installer config copy | alexei.dolgolyov |
| d7e10b1 | fix: interpolate tag in release body template (f-string) | alexei.dolgolyov |
| 3f14512 | feat: add Restart and Shutdown tray actions with confirmation dialogs | alexei.dolgolyov |
| 26b5f74 | feat: improve installer with custom icon, launch-after-install, and running-instance detection | alexei.dolgolyov |
| 1f6e4f6 | feat: add Launch option to installer finish page | alexei.dolgolyov |
| 6500d6f | feat: add system tray icon with Show UI and Exit actions | alexei.dolgolyov |
| 4d1bb78 | feat: make authentication optional — no tokens = no auth | alexei.dolgolyov |
| f80f6e9 | fix: correct ._pth path in Windows build script | alexei.dolgolyov |
| 0216851 | docs: comprehensive README update with all API endpoints and features | alexei.dolgolyov |
| c76ffb9 | fix: handle existing release in create-release job | alexei.dolgolyov |
| ddd8788 | Add Linux build to release workflow, fix pytest exit code 5 | alexei.dolgolyov |
| 5439af1 | Add CI/CD pipelines, NSIS installer, ES module bundling, and ruff linting | alexei.dolgolyov |
| be48318 | Add dynamic WebGL background with audio reactivity | alexei.dolgolyov |
| 0eca829 | Fix loopback device status showing 'Unavailable' after change | alexei.dolgolyov |
| 3cfc437 | Add UI animations: dialogs, tabs, settings, browser stagger, banner pulse | alexei.dolgolyov |
| a20812e | Add PWA support: installable standalone app with safe area handling | alexei.dolgolyov |
| 652f10f | Reduce visualizer latency, tighten UI paddings, fix mobile browser toolbar | alexei.dolgolyov |
| 3846610 | On-demand audio visualizer capture + UI fixes | alexei.dolgolyov |
| 92d6709 | Refactor monolithic app.js into 8 modular files | alexei.dolgolyov |
| 9404b37 | Codebase audit fixes: stability, performance, accessibility | alexei.dolgolyov |
| 73a6f38 | Add friendly media source names with brand icons | alexei.dolgolyov |
| b11edc2 | Redesign header as pill-shaped toolbar group | alexei.dolgolyov |
| 3d01d98 | Style audio device select, hide mini player volume on tablet | alexei.dolgolyov |
| 4112367 | Add 3D album art rotation and vinyl desaturation effect | alexei.dolgolyov |
| 00d313d | Fix vinyl angle persistence on toggle, group player toggle buttons | alexei.dolgolyov |
| 0691e3d | Add audio visualizer with spectrogram, beat-reactive art, and device selection | alexei.dolgolyov |
| 8a8f00f | Persist vinyl rotation angle across page reloads | alexei.dolgolyov |
| 397d38a | Add primary display indicator, custom accent color picker, restart script | alexei.dolgolyov |
| adf2d93 | Consolidate tabs, Quick Access links, mini player nav, link descriptions | alexei.dolgolyov |
| 99dbbb1 | Add header quick links with CRUD management and icon enhancements | alexei.dolgolyov |
| 6f6a4e4 | Improve slider track visibility in both themes | alexei.dolgolyov |
| a568608 | Add display brightness and power control | alexei.dolgolyov |
| 03a1b30 | Comprehensive WebUI improvements: security, UX, accessibility, performance | alexei.dolgolyov |
| ef1935c | Update README with current features | alexei.dolgolyov |
| 7ee0a60 | Update media browser screenshot | alexei.dolgolyov |
| 7f28145 | Update documentation screenshots | alexei.dolgolyov |
| 80d4dbc | Fix browser grid card sizing | alexei.dolgolyov |
| caf24db | Compact browser grid cards | alexei.dolgolyov |
| babdb61 | Update media-server: Vinyl record mode and accent color picker | alexei.dolgolyov |
| 65b513c | Update media-server: UI polish and bug fixes | alexei.dolgolyov |
| 84b985e | Backend optimizations, frontend optimizations, and UI design improvements | alexei.dolgolyov |
| d1ec27c | Improve error handling for unavailable network shares | alexei.dolgolyov |
| 13df69a | Show media title (Artist – Title) instead of filename when available | alexei.dolgolyov |
| 4c13322 | Show bitrate in browser, remove type labels and Play All text | alexei.dolgolyov |
| 5f474d6 | Add browser search/filter for media items | alexei.dolgolyov |
| 98a33bc | Tabbed UI, browse caching, and bottom mini player | alexei.dolgolyov |
| 8db40d3 | UI polish: refresh button, negative thumbnail cache, and style fixes | alexei.dolgolyov |
| f275240 | Add Play All, home navigation, and UI improvements | alexei.dolgolyov |
| e16674c | Add media browser with grid/compact/list views and single-click playback | alexei.dolgolyov |
| 32b058c | Add low-latency volume control via WebSocket | alexei.dolgolyov |
| c5f8c7a | Fix HTTPException handling in folder endpoints and install script path | alexei.dolgolyov |
| 8d15a2a | Update Web UI: Header redesign, thumbnail fix, and title fallback | alexei.dolgolyov |
| 1cb83ea | Add screenshots to README | alexei.dolgolyov |
| 62c42f7 | Move install_task_windows.ps1 to scripts folder | alexei.dolgolyov |
| eb2aed4 | Update media browser UI with fade-in animations and improvements | alexei.dolgolyov |
| 7c631d0 | Add media browser feature with UI improvements | alexei.dolgolyov |
| d5ec5c6 | Update Web UI: Improve volume slider responsiveness | alexei.dolgolyov |
| 29e0618 | Update Web UI: Add server management scripts and improve UX | alexei.dolgolyov |
| 4f8f59d | Update media-server: Fix FOUC (Flash of Untranslated Content) issues | alexei.dolgolyov |
| 40c2c11 | Update media-server: Improve script/callback table layout and command editor UX | alexei.dolgolyov |
| 4635cac | Update media-server: Add execution timing and improve script/callback execution UI | alexei.dolgolyov |
| 957a177 | Update media-server: Add backdrop click-to-close for dialogs | alexei.dolgolyov |
| 8077181 | Fix Windows Task Scheduler auto-start | alexei.dolgolyov |
| 9bbb8e1 | Add internationalization (i18n) support with English and Russian locales | alexei.dolgolyov |
| a0af855 | Add callback management API/UI and theme support | alexei.dolgolyov |
| d7c5994 | Add runtime script management with Home Assistant integration | alexei.dolgolyov |
| 71a0a6e | Add multi-token authentication with client labels | alexei.dolgolyov |
| 5342cff | Add script execution to Web UI | alexei.dolgolyov |
| a0d138b | Add built-in Web UI for media control and monitoring | alexei.dolgolyov |
| 1a1cfba | Add callbacks support for all media actions | alexei.dolgolyov |
| 83acf5f | Initial commit: Media Server for remote media control | alexei.dolgolyov |