Skip to content

5.12.0

Choose a tag to compare

@timmo001 timmo001 released this 09 Oct 22:24

Adds a TypeScript connector for System Bridge, built on Effect, and moves the web client onto it. The Python connector gains the Discord, disk mount, directory and settings interfaces it was missing. No changes to the application.

Moved

  • The Python connector's Settings now matches the backend's settings: systemTray, hotkeys, logLevel and disks replace api, keyboard_hotkeys and log_level.
  • The Python connector's get_file now returns FileInfo instead of MediaFile, and only sends the file's path.

Connector

  • Add @timmo001/effect-system-bridge, a TypeScript connector built on Effect v4, in connector/typescript. It covers the same HTTP and WebSocket API as the Python connector, with Effect schemas generated from the backend's types.
  • Each stable release now publishes it to npm and JSR with the same version.
  • Add get_disk_mounts, discord_control and the discord module to the Python connector.
  • Add get_directory, validate_directory, get_settings, update_settings and unregister_data_listener to the Python connector's WebSocket client, and get_health and get_module_data to its HTTP client.
  • Add modifiers and delay to KeyboardKey, and delay to KeyboardText.
  • Parse a media file's modTime into a Unix timestamp.
  • Raise when two listeners share a WebSocket connection, instead of spinning forever.

Web client

  • Move the web client onto the TypeScript connector, with its state held in Effect atoms. It no longer uses Zod.

Maintenance

  • Move the connector, web client and docs into a Bun workspace.
  • Generate Effect schemas from the backend's types instead of Zod.
  • Update timmo001/workflows to 20261009.0.
  • Update uv to 0.12.24 (#4398).

Full Changelog: 5.11.1...5.12.0