Use imaging codecs behind the abstraction and bounded concurrency.
Keep generated visual/skeleton data as the source of truth.
Validation
Baker/AppearanceManager/initial-outfit tests pass with original pixels/hashes/events.
Failure/cancellation leaves a recoverable outfit state.
No live grid is required for parity tests.
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 baking inputs/layers, cached bakes, server/local baking decisions, texture compositing/upload, appearance packets, rebake, initial outfit copy/setup, and progress.
## Deliverables
- Preserve visual parameters, wearable assets, texture indices, bake hashes, channel composition, cache checks, upload sequencing, and cancellation.
- Use imaging codecs behind the abstraction and bounded concurrency.
- Keep generated visual/skeleton data as the source of truth.
## Validation
- Baker/AppearanceManager/initial-outfit tests pass with original pixels/hashes/events.
- Failure/cancellation leaves a recoverable outfit state.
- No live grid is required for parity tests.
## 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:48 +00:00
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 baking inputs/layers, cached bakes, server/local baking decisions, texture compositing/upload, appearance packets, rebake, initial outfit copy/setup, and progress.
Deliverables
Validation
Prerequisite
Networking/client lifecycle and all foundational implementation milestones are complete; mapped APIs and translated tests are fixed.
Project constraints
Implemented in
b1f60db. Added the native 11-target Baker and decoded texture provider, wearable parameter/texture parsing, exact bake hashes and texture-entry/visual-parameter packet construction, cached/local/server baking with bounded download/upload concurrency, rebake and legacy wearable packet handling, cancellation and rollback, plus transactional initial-outfit copy/application with progress and compensation. Wired the native public API mappings, docs, coverage audit, parity metadata, and Ubuntu Gitea checks. Verified: cargo check --workspace --locked; cargo check -p libremetaverse --no-default-features --locked; 18 focused appearance tests; 4 initial-outfit tests; 34 appearance compatibility tests; 4 generated-catalog tests; API compile fixture; generator/check/API coverage gates; test parity with 0 pending/drifted/unreviewed; and strict clippy for the library and appearance compatibility target.