Separate decode from state apply and preserve stale/local-ID/parent-child behavior.
Preserve request correlation, event ordering, packet/caps routing, and simulator ownership.
Validate all offsets, counts, indices, and payload limits.
Validation
Object/message/material tests pass with fake-grid packets/caps.
Malformed updates never panic or corrupt collections.
Representative discovery/property/action workflow passes end to end.
Prerequisite
Networking/client lifecycle and the earlier world model/manager issues are available; mapped APIs and translated tests are fixed.
Project constraints
New native Rust behavior only; no bridge or C# fallback.
Preserve fixed APIs and translated assertions; reuse completed lower layers and keep privileged live actions opt-in.
Validate bounded untrusted inputs, cancellation, task cleanup, docs, and coverage in the same change.
## Objective
Implement full/compressed/terse object update decoding, simulator primitive/avatar collections, linking, property requests, selection, click/touch, rez/derez, permissions, media/material caps, and events.
## Deliverables
- Separate decode from state apply and preserve stale/local-ID/parent-child behavior.
- Preserve request correlation, event ordering, packet/caps routing, and simulator ownership.
- Validate all offsets, counts, indices, and payload limits.
## Validation
- Object/message/material tests pass with fake-grid packets/caps.
- Malformed updates never panic or corrupt collections.
- Representative discovery/property/action workflow passes end to end.
## Prerequisite
Networking/client lifecycle and the earlier world model/manager issues are available; mapped APIs and translated tests are fixed.
## Project constraints
- New native Rust behavior only; no bridge or C# fallback.
- Preserve fixed APIs and translated assertions; reuse completed lower layers and keep privileged live actions opt-in.
- Validate bounded untrusted inputs, cancellation, task cleanup, docs, and coverage in the same change.
hugo
added this to the 09 - World vertical slices milestone 2026-08-08 08:21:44 +00:00
Implemented and pushed in commit 13f85bf. Added bounded full, compressed, and terse object decoding; primitive/avatar ownership collections and recursive kill cleanup; property, pay-price, animation, particle, sit, physics, and update events; complete mapped object actions; ObjectMedia and RenderMaterials caps; stable concurrent GridClient ObjectManager ownership; and native media/event argument mappings with no ObjectManager failure shims remaining. Review verified decode-before-apply ordering, callbacks outside collection locks, stale UUID cleanup, packet/caps bounds, cancellation-safe click release, and cross-platform Rust-only behavior. Verification: 9 object-manager unit tests, 3 media/material unit tests, world_manager_shims 2/2, object_manager_null_throws 1/1, API compile check, clippy with warnings denied, both generator consistency checks, formatting, and diff checks all pass. Unrelated live-network compatibility failures were not included in this issue.
Implemented and pushed in commit 13f85bf. Added bounded full, compressed, and terse object decoding; primitive/avatar ownership collections and recursive kill cleanup; property, pay-price, animation, particle, sit, physics, and update events; complete mapped object actions; ObjectMedia and RenderMaterials caps; stable concurrent GridClient ObjectManager ownership; and native media/event argument mappings with no ObjectManager failure shims remaining. Review verified decode-before-apply ordering, callbacks outside collection locks, stale UUID cleanup, packet/caps bounds, cancellation-safe click release, and cross-platform Rust-only behavior. Verification: 9 object-manager unit tests, 3 media/material unit tests, world_manager_shims 2/2, object_manager_null_throws 1/1, API compile check, clippy with warnings denied, both generator consistency checks, formatting, and diff checks all pass. Unrelated live-network compatibility failures were not included in this issue.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Objective
Implement full/compressed/terse object update decoding, simulator primitive/avatar collections, linking, property requests, selection, click/touch, rez/derez, permissions, media/material caps, and events.
Deliverables
Validation
Prerequisite
Networking/client lifecycle and the earlier world model/manager issues are available; mapped APIs and translated tests are fixed.
Project constraints
Implemented and pushed in commit
13f85bf. Added bounded full, compressed, and terse object decoding; primitive/avatar ownership collections and recursive kill cleanup; property, pay-price, animation, particle, sit, physics, and update events; complete mapped object actions; ObjectMedia and RenderMaterials caps; stable concurrent GridClient ObjectManager ownership; and native media/event argument mappings with no ObjectManager failure shims remaining. Review verified decode-before-apply ordering, callbacks outside collection locks, stale UUID cleanup, packet/caps bounds, cancellation-safe click release, and cross-platform Rust-only behavior. Verification: 9 object-manager unit tests, 3 media/material unit tests, world_manager_shims 2/2, object_manager_null_throws 1/1, API compile check, clippy with warnings denied, both generator consistency checks, formatting, and diff checks all pass. Unrelated live-network compatibility failures were not included in this issue.