Releases: Agash/ObsWebSocket
v0.3.1-dev3
What's new
- Typed auth-failure surface.
AuthenticationFailureExceptionandConnectionAttemptFailedExceptionare now public top-level types. Consumers cancatchthem directly to distinguish auth failures from generic connection issues without inspecting the exception message string. The existing publicAuthenticationFailureevent 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
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
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)
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
Full Changelog: v0.1.4...v0.1.5
v0.1.4
Full Changelog: v0.1.3...v0.1.4