Skip to content

Releases: Agash/ObsWebSocket

v0.3.1-dev3

08 May 21:15

Choose a tag to compare

v0.3.1-dev3 Pre-release
Pre-release

What's new

  • Typed auth-failure surface. AuthenticationFailureException and ConnectionAttemptFailedException are now public top-level types. Consumers can catch them directly to distinguish auth failures from generic connection issues without inspecting the exception message string. The existing public AuthenticationFailure event continues to fire for callers that prefer the event-driven path.

This is a non-breaking change for the public API — both exception types were previously internal sealed and unreachable from outside the assembly, so no consumer can have been catching them by name before.

Why

Downstream consumers (StreamWeaver in particular) had to string-match Contains("auth") / Contains("credential") on ObsWebSocketException.Message to detect auth failures. Promoting the typed exceptions removes that fragility.

v0.3.0 - OBS Websocket Protocol 5.7.0

01 Apr 09:54

Choose a tag to compare

v0.3.0

v0.3.0 updates protocol to 5.7.0 for new Canvas functionality within OBS, v0.2.0 stable release is being skipped

Highlights (from 0.2.0)

  • Added generated System.Text.Json serializer context usage across the runtime path.
  • Reworked JSON serialization/deserialization paths to use context-backed options consistently.
  • Improved AOT safety in request-data serialization paths (especially object-based request payload handling).
  • Added/generated MessagePack metadata support for protocol DTOs.
  • Reworked MessagePack resolver/serializer flow to avoid hot-path object roundtrips and improve static typing.

I'm not that well versed in MessaegPack so I hope for others to confirm whether or not this works as intended and is implemented in a at least somewhat ok manner.

Serialization & AOT

JSON

  • Runtime now relies on generated context options for serializer operations.
  • Improved compatibility with trimming and Native AOT scenarios.
  • Added stricter error behavior for unsupported runtime object shapes in AOT-sensitive paths.

MessagePack

  • Resolver chain and serializer behavior updated to better support AOT constraints.
  • Improved handling for envelope/payload flow and stub extension data interoperability.
  • Added/expanded tests and transport checks around complex payload shapes.

Example App Improvements

Aligned with all the new changes and added Spectre.Console for better displaying.

CI / Build

  • Native AOT smoke publish flow updated to reduce restore/publish mismatch issues.
  • Improved handling of known external MessagePack assembly-level analysis warning behavior in CI.

Full Changelog: v0.1.5...v0.3.0

v0.3.0-dev2

27 Mar 22:40

Choose a tag to compare

v0.3.0-dev2 Pre-release
Pre-release

Protocol refresh from OBS WebSocket master: Canvas lifecycle events (CanvasCreated, CanvasNameChanged, CanvasRemoved), GetCanvasList response type, optional canvasUuid filtering on scene-scoped requests. All call sites and tests updated for new signatures.

v0.2.0-beta1 — Native AOT Serialization Overhaul (JSON + MsgPack)

24 Feb 16:13

Choose a tag to compare

v0.2.0-beta1

This beta focuses on making ObsWebSocket substantially more Native AOT-friendly while improving transport
validation, generated protocol coverage, and MessagePack behavior.

Highlights

  • Added generated System.Text.Json serializer context usage across the runtime path.
  • Reworked JSON serialization/deserialization paths to use context-backed options consistently.
  • Improved AOT safety in request-data serialization paths (especially object-based request payload handling).
  • Added/generated MessagePack metadata support for protocol DTOs.
  • Reworked MessagePack resolver/serializer flow to avoid hot-path object roundtrips and improve static typing.

I'm not that well versed in MessaegPack so I hope for others to confirm whether or not this works as intended and is implemented in a at least somewhat ok manner.

Serialization & AOT

JSON

  • Runtime now relies on generated context options for serializer operations.
  • Improved compatibility with trimming and Native AOT scenarios.
  • Added stricter error behavior for unsupported runtime object shapes in AOT-sensitive paths.

MessagePack

  • Resolver chain and serializer behavior updated to better support AOT constraints.
  • Improved handling for envelope/payload flow and stub extension data interoperability.
  • Added/expanded tests and transport checks around complex payload shapes.

Example App Improvements

Aligned with all the new changes and added Spectre.Console for better displaying.

CI / Build

  • Native AOT smoke publish flow updated to reduce restore/publish mismatch issues.
  • Improved handling of known external MessagePack assembly-level analysis warning behavior in CI.

Notes

  • This is a beta release. APIs and internal behavior may still evolve before stable.
  • If you are validating Native AOT, prefer testing with the Example app transport suite in your target runtime
    environment.

Feedback Requested

Please report:

  • Native AOT publish/runtime issues (including runtime IDs and SDK versions)
  • MsgPack payload edge cases (especially extension data / unknown fields)
  • Any transport parity differences between JSON and MsgPack

Full Changelog: v0.1.5...v0.2.0-beta1

v0.1.5

08 May 11:29

Choose a tag to compare

Full Changelog: v0.1.4...v0.1.5

v0.1.4

06 May 09:41

Choose a tag to compare

Full Changelog: v0.1.3...v0.1.4

v0.1.3

30 Apr 17:17

Choose a tag to compare