Appearance: implement wearables, Current Outfit Folder, and policy services #65

Closed
opened 2026-08-08 08:20:47 +00:00 by hugo · 1 comment
Owner

Objective

Implement wearable state, attachment mapping, COF links, composite/current outfit policies, outfit add/remove/replace, attach/detach, and worn queries.

Deliverables

  • Preserve wearable slots/layers, link resolution, attachment points, replace rules, folder ancestry, permissions, store mutations, and progress/events.
  • Separate pure policy decisions from network execution.
  • Handle concurrent outfit operations and cancellation without corrupting state.

Validation

  • Appearance/COF/policy/link regression tests pass.
  • Recording fakes prove manager interactions and ordering.
  • Fake-grid outfit workflows leave expected inventory and attachment state.

Prerequisite

Networking/client lifecycle and all foundational implementation milestones are complete; mapped APIs and translated tests are fixed.

Project constraints

  • New native Rust behavior only; no bridge or C# fallback.
  • Preserve mapped public APIs and exact translated assertions; use completed transport/data layers rather than duplicating them.
  • Bound resources, avoid locks across await/callbacks, and update docs/coverage with focused and workspace evidence.
## Objective Implement wearable state, attachment mapping, COF links, composite/current outfit policies, outfit add/remove/replace, attach/detach, and worn queries. ## Deliverables - Preserve wearable slots/layers, link resolution, attachment points, replace rules, folder ancestry, permissions, store mutations, and progress/events. - Separate pure policy decisions from network execution. - Handle concurrent outfit operations and cancellation without corrupting state. ## Validation - Appearance/COF/policy/link regression tests pass. - Recording fakes prove manager interactions and ordering. - Fake-grid outfit workflows leave expected inventory and attachment state. ## Prerequisite Networking/client lifecycle and all foundational implementation milestones are complete; mapped APIs and translated tests are fixed. ## Project constraints - New native Rust behavior only; no bridge or C# fallback. - Preserve mapped public APIs and exact translated assertions; use completed transport/data layers rather than duplicating them. - Bound resources, avoid locks across await/callbacks, and update docs/coverage with focused and workspace evidence.
hugo added this to the 09 - World vertical slices milestone 2026-08-08 08:20:47 +00:00
hugo added the enhancement label 2026-08-08 08:20:47 +00:00
Author
Owner

Implemented in a9927fc and pushed to main.

Implemented native Rust AppearanceManager, CurrentOutfitFolder, and CompositeCurrentOutfitPolicy services: layered wearable/body-part state; item/asset/slot queries; COF discovery and link resolution; add/remove/full replace transactions; attachment point add/replace/detach packets with permission and flag preservation; bounded ancestry/folder traversal; cancellation-aware serialized COF operations; stable policy snapshots; post-commit events; and rollback/compensation for failed link and attachment mutations. Client ownership now uses the cycle-safe weak runtime handle, and generated mappings/API coverage plus docs were updated.

Verification:

  • current_outfit_folder_semantics: 17 passed
  • current_outfit_policy_semantics: 24 passed
  • relevant appearance cases: COF version 5 passed; wearable mapping 1 passed
  • COF link descriptions: 4 passed
  • native recording/state cases: 7 passed
  • cargo check --workspace
  • independent API compile fixture
  • cargo clippy -p libremetaverse --lib -- -D warnings
  • generator, mapping, API coverage, and issue #65 audit gates

The unrelated baking/texture-provider appearance cases belong to the next appearance pipeline issue and were not included in this issue scope.

Implemented in a9927fc and pushed to main. Implemented native Rust AppearanceManager, CurrentOutfitFolder, and CompositeCurrentOutfitPolicy services: layered wearable/body-part state; item/asset/slot queries; COF discovery and link resolution; add/remove/full replace transactions; attachment point add/replace/detach packets with permission and flag preservation; bounded ancestry/folder traversal; cancellation-aware serialized COF operations; stable policy snapshots; post-commit events; and rollback/compensation for failed link and attachment mutations. Client ownership now uses the cycle-safe weak runtime handle, and generated mappings/API coverage plus docs were updated. Verification: - current_outfit_folder_semantics: 17 passed - current_outfit_policy_semantics: 24 passed - relevant appearance cases: COF version 5 passed; wearable mapping 1 passed - COF link descriptions: 4 passed - native recording/state cases: 7 passed - cargo check --workspace - independent API compile fixture - cargo clippy -p libremetaverse --lib -- -D warnings - generator, mapping, API coverage, and issue #65 audit gates The unrelated baking/texture-provider appearance cases belong to the next appearance pipeline issue and were not included in this issue scope.
hugo closed this issue 2026-08-10 08:59:36 +00:00
Sign in to join this conversation.