Changelog#

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.3.3] - 2026-06-11#

Fixed#

  • OMPE-91975: observe_and_dispatch no longer silently swallows non-TypeError/ValueError exceptions raised by handlers. Any exception (e.g. AttributeError, KeyError, RuntimeError, FileNotFoundError, json.JSONDecodeError, database/USD errors) is now logged via carb.log_error and a correlated error response carrying id, error, and error_type is queued on the response channel so the client receives a deterministic error rather than hanging indefinitely waiting for a response that never arrives.

[1.3.2] - 2026-05-14#

Fixed#

  • OMPE-91274: Resolved wire-format mismatch between docs/Overview.md, python/large/_extension.py, and the large-messaging tests. The canonical wire format is the FLAT envelope (id, part, numParts at the envelope top level alongside event_type and payload) — docs, tests, and implementation now agree.

Changed#

  • _dispatch_message_part now explicitly recognises the legacy NESTED envelope (transport fields inside payload), translates it to the canonical FLAT envelope before dispatch, and emits a one-shot DeprecationWarning per event type (plus a carb.log_warn entry) so legacy clients are visible to operators.

  • python/tests/test_livestream_messaging_large.py rewritten to exercise the canonical FLAT request and FLAT response in both the small and large (>64 KiB) cases.

  • New regression test test_legacy_nested_envelope_is_accepted_and_warns protects the backward-compatibility path for older clients.

  • omni.kit.livestream.messaging.large now re-exports MESSAGE_KEY and PAYLOAD_KEY for clients that need to construct the legacy envelope shape symbolically (e.g. compatibility test suites).

Documentation#

  • docs/Overview.md adds a “Deprecated: legacy NESTED envelope” section documenting the backward-compatibility receive path and clarifying that outgoing messages are always emitted in the canonical FLAT shape.

[1.3.1] - 2026-05-06#

Fixed#

  • observe_and_dispatch no longer drops repeated no-id messages from legacy clients. The 1.3.0 deduplication step keyed on the message id; when an older client omitted the id, None was added to the _seen_ids set on the first message and every subsequent no-id message of the same observed event type was treated as a duplicate. Dedupe is now skipped entirely when id_value is None, so no-id requests are processed independently. (NVBug 6134051 / OMPE-92428)

[1.3.0] - 2026-02-19#

Added#

  • Added omni.kit.livestream.messaging.large subpackage for splitting, reassembling, and correlating large messages.

  • Large message handling is active automatically in the base extension — no extra imports or configuration required.

Changed#

  • All outgoing messages now use a flat envelope where id, part, and numParts are top-level fields alongside event_type and payload. Single-part messages omit part/numParts and carry the application dict directly in payload; larger payloads are split into MESSAGE_PART_SIZE_BYTES (≈16 KiB) chunks where payload is a JSON-string chunk of the serialised application payload.

  • Incoming messages carrying id, part, and numParts at the envelope top level are buffered and reassembled before being dispatched; legacy clients that send a plain { event_type, payload } envelope continue to work unchanged.

[1.2.1] - 2025-11-05#

Changed#

  • Added major.minor.patch kit lock version.

[1.2.0] - 2025-08-15#

Changed#

  • Added support for migration to Events 2.0, retaining backward compatibility.

  • Updated tests

[1.1.1] - 2024-04-17#

Changed#

  • Added support_level = “Enterprise”.

[1.1.0] - 2023-12-19#

Changed#

  • Split out webrtc setup to omni.kit.livestream.webrtc.setup

  • Forward API calls at module-level

[1.0.1] - 2023-12-15#

Added#

  • Fix resizing app window in USD Composer

[1.0.0] - 2023-12-13#

Added#

  • Initial version