Skip to content

Feat/native aot#1

Merged
Agash merged 20 commits intomasterfrom
feat/native-aot
Feb 24, 2026
Merged

Feat/native aot#1
Agash merged 20 commits intomasterfrom
feat/native-aot

Conversation

@Agash
Copy link
Owner

@Agash Agash commented Feb 24, 2026

No description provided.

Agash added 20 commits February 24, 2026 08:04
…n task

Region: Code generation pipeline

- Add new ObsWebSocket.Codegen.Tasks project as the protocol-driven generator.

- Generate protocol artifacts into ObsWebSocket.Core/Generated and include them in solution flow.

- Remove legacy ObsWebSocket.SourceGenerators project and its emitters/diagnostics.

- Update solution to reference the new codegen workflow.
Region: Runtime serialization and protocol envelopes

- Switch JSON serializer usage to context-backed options and typed metadata flow.

- Update client request-data serialization path to use generated context options with clearer AOT failure messaging.

- Move MsgPack runtime to generated resolver chain and byte-preserving payload handling.

- Add MsgPack annotations to protocol wire records and stub classes, including extension-data handling strategy.
…on changes

Region: Unit/integration test updates

- Add targeted JSON serializer tests for context-backed payload handling.

- Add MsgPack serializer behavior tests for byte-backed typed payloads, stubs, filters, and extension data.

- Update existing client/event tests to align with new message serialization flow.
…k validation

Region: Documentation and sample app

- Refresh README guidance for current AOT/serialization workflow.

- Extend example app configuration and runtime flow to exercise both JSON and MsgPack paths.

- Add sample validation options and related appsettings wiring.
…e publish

Region: Serializer hardening and verification

- Add MsgPack JsonElement formatter resolver and register it in serializer options chain.

- Expand serializer behavior tests with typed request/response/event/nested scenarios and malformed-shape checks.

- Add CI Native AOT smoke publish step for ObsWebSocket.Core on linux-x64.
Region: MsgPack runtime handshake/envelope handling

- DeserializeAsync now manually parses incoming MsgPack envelope and captures 'd' as raw bytes even when OBS sends a map.

- Avoid custom IncomingMessage formatter registration conflict with MessagePack SG (duplicate formatter key).

- Add regression coverage for incoming map payload capture and downstream payload deserialization.
Region: MsgPack wrapper handling + example transport validation

- Map Event/RequestResponse/Batch wrapper deserialization through ReadOnlyMemory<byte> so inner payloads survive for typed deserialization.

- Strengthen run-transport-tests with strict value checks and CustomEvent roundtrip validation for JSON and MsgPack.
… shape

Region: run-transport-tests validation

- Accept both direct and nested CustomEvent payload shapes from OBS while still enforcing strict testId/content checks.

- Prevent false negatives where CustomEvent is received but shape differs between transports/server behavior.
…ation

- Replace JSON-bridge formatter emission with known-type maps that delegate to SourceGeneratedFormatterResolver
- Split generated resolver output into fixed/request/response/event/nested files for maintainability
- Keep MsgPack serializer on resolver-chain approach and add StandardResolver fallback for enum/primitive coverage
- Add resolver coverage test over generated + core protocol types
- Regenerate serialization artifacts and wire codegen outputs into project
@Agash Agash merged commit ec78c9d into master Feb 24, 2026
2 checks passed
@Agash Agash deleted the feat/native-aot branch February 24, 2026 16:05
@Agash Agash restored the feat/native-aot branch February 24, 2026 16:05
@Agash Agash deleted the feat/native-aot branch February 24, 2026 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant