Repository navigation
5.14.0
Rebuilds the web client with dashboards, themes and pages grouped by area, and lets you set up Discord from it. Adds CLI commands for media and Discord, and a new logo.
Web client
- Rebuild the web client with a dashboard for each module, a choice of themes, and pages at their own addresses, such as
/mediaand/discord. - Group pages by area (System, Hardware, Storage and network, Apps, Settings), with each module's controls and settings beside its data. Commands, notifications and open live under
/system, disk mounts under/disksand media directories under/media. - Add media controls with volume, the player's status and its artwork.
- Add a Discord page with its status, controls and setup.
- Ask for the program's full path when adding a command.
- Label buttons, switches, form errors and status for screen readers.
- Load the JSON view's editor only when it's shown.
See Web client.
Discord
- Add
GET_DISCORD_SETUPandUPDATE_DISCORD_SETUPevents to set up Discord over the WebSocket API, and report setup errors. The client secret is never sent back.
See Discord and Discord setup.
Media
- Control the player the Media module shows, rather than whichever one
playerctlpicks first (Linux). - Send the player's artwork as
thumbnailwhen it's a web or data URL (Linux). - Add
playerctlas an optional dependency in the deb, rpm and Arch packages. Without it, the Media module is empty.
See Media.
CLI
- Add
client media <action>andclient discord <action>to control media and Discord. - Add
--pathtoclient opento open a page of the web client, such as/media#media-controls.
See CLI.
API
- Reply to
GET_DATAfor modules that haven't registered yet, such as Discord before it connects, instead of leaving the client waiting. - Return an error from
OPENwhen the path doesn't exist, instead of claiming it opened. - Serve the web client's pages at their own paths.
Connector
- Add
get_discord_setupandupdate_discord_setupto the Python connector, and Discord setup to the TypeScript connector, keeping the secret redacted. - Resolve a Python connector request when the backend replies with an error, instead of timing out.
- Stop waiting for module data in the TypeScript connector once every module has answered.
Docs
- Move the docs to Blume, with feature guides for monitoring, commands, notifications, media, remote control and Discord, and a docs MCP server at
https://system-bridge.timmo.dev/mcp.
Moved
- Web client pages moved from
/data/<module>to/<module>, and the old action and settings pages into their module's page, such as/settings/commandsto/system#commands. The old addresses redirect.
Dependencies
- Update
github.com/go-vgo/robotgoto 1.3.7 (#4466). - Update
effectto 4.0.6 (#4458). - Update Go to 1.27.3 (#4443, #4449).
Maintenance
- Replace the logo with a bridge between two machines.
- Speed up CI, and skip the Windows build when nothing affects it (#4440, #4441).
- Update development tools: Bun, Node.js, uv, Ruff, Oxlint, wrangler and
@effect/tsgo. - Update shared skills.
Full Changelog: 5.13.0...5.14.0