Use short locks or immutable snapshots and run callbacks afterward.
Keep decisions deterministic and independently testable.
Validation
All restriction/lock/camera/inventory-map/permission tests pass.
Concurrent state updates preserve invariants.
No network/client dependency is needed for pure state tests.
Prerequisite
All global API/test gates and the foundational/world implementations needed by these extension crates are complete.
Project constraints
Full native Rust implementation only; no wrapped C# parser, viewer, renderer, or service.
Preserve mapped APIs and exact translated tests; reuse lower layers and keep generated output deterministic.
Validate bounded input, callbacks/tasks, docs, coverage, and workspace gates.
## Objective
Implement restriction providers/managers, camera settings, shared inventory map, locked folders/attachments/wearables, blacklists, and permission decisions.
## Deliverables
- Preserve add/remove/source-object semantics, snapshots, precedence, exceptions, aliases, folder ancestry, and update events.
- Use short locks or immutable snapshots and run callbacks afterward.
- Keep decisions deterministic and independently testable.
## Validation
- All restriction/lock/camera/inventory-map/permission tests pass.
- Concurrent state updates preserve invariants.
- No network/client dependency is needed for pure state tests.
## Prerequisite
All global API/test gates and the foundational/world implementations needed by these extension crates are complete.
## Project constraints
- Full native Rust implementation only; no wrapped C# parser, viewer, renderer, or service.
- Preserve mapped APIs and exact translated tests; reuse lower layers and keep generated output deterministic.
- Validate bounded input, callbacks/tasks, docs, coverage, and workspace gates.
hugo
added this to the 10 - Rendering, RLV, and LSL tools milestone 2026-08-08 08:23:17 +00:00
Added native synchronized RLV shared folders/items, bounded InventoryMap snapshots, deterministic path/item queries, blacklist, restriction manager, immutable locked-folder views, recursive attach/detach locks and exceptions, camera settings/aggregation, and the complete mapped permission decision matrix.
Preserved exact add/remove/source identity semantics, aliases, precedence, folder ancestry, snapshot isolation, and post-lock update events. Revision-checked lock rebuilds prevent stale snapshots during concurrent updates; raw source-removal iterators are bounded before deduplication.
Replaced the ImmutableDictionary placeholder with a real Arc-backed read-only snapshot and mapped all issue-owned generated APIs. RLV native coverage is now 12 types / 147 members.
Added issue ownership audit, documentation, and the ubuntu-latest workflow hook. No network or GridClient dependency was introduced; command/callback integration remains scoped to issue #80.
Verification:
cargo test -p libremetaverse-rlv --locked: 28 passed
cargo test -p libremetaverse-compat-tests --test rlv_inventory_map_semantics --locked: 16 passed
Completion review compared the Rust behavior with the live issue and pinned LibreMetaverse C# InventoryMap, restriction manager, locked-folder, camera, blacklist, shared inventory, and permissions sources. No issue-owned stubs or missing mapped members remain.
Implemented and verified in commit 362fa62.
Implementation:
- Added native synchronized RLV shared folders/items, bounded InventoryMap snapshots, deterministic path/item queries, blacklist, restriction manager, immutable locked-folder views, recursive attach/detach locks and exceptions, camera settings/aggregation, and the complete mapped permission decision matrix.
- Preserved exact add/remove/source identity semantics, aliases, precedence, folder ancestry, snapshot isolation, and post-lock update events. Revision-checked lock rebuilds prevent stale snapshots during concurrent updates; raw source-removal iterators are bounded before deduplication.
- Replaced the ImmutableDictionary placeholder with a real Arc-backed read-only snapshot and mapped all issue-owned generated APIs. RLV native coverage is now 12 types / 147 members.
- Added issue ownership audit, documentation, and the ubuntu-latest workflow hook. No network or GridClient dependency was introduced; command/callback integration remains scoped to issue #80.
Verification:
- cargo test -p libremetaverse-rlv --locked: 28 passed
- cargo test -p libremetaverse-compat-tests --test rlv_inventory_map_semantics --locked: 16 passed
- cargo clippy -p libremetaverse-rlv --all-targets --locked -- -D warnings: passed
- rustdoc with -D warnings: passed
- cargo check --workspace --all-targets --locked -j 1: passed
- generator and Rust mapping checks: passed
- issue #78 and #79 ownership audits: passed
Completion review compared the Rust behavior with the live issue and pinned LibreMetaverse C# InventoryMap, restriction manager, locked-folder, camera, blacklist, shared inventory, and permissions sources. No issue-owned stubs or missing mapped members remain.
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 restriction providers/managers, camera settings, shared inventory map, locked folders/attachments/wearables, blacklists, and permission decisions.
Deliverables
Validation
Prerequisite
All global API/test gates and the foundational/world implementations needed by these extension crates are complete.
Project constraints
Implemented and verified in commit
362fa62.Implementation:
Verification:
Completion review compared the Rust behavior with the live issue and pinned LibreMetaverse C# InventoryMap, restriction manager, locked-folder, camera, blacklist, shared inventory, and permissions sources. No issue-owned stubs or missing mapped members remain.