TestClient: implement inventory, appearance, and asset commands #92

Closed
opened 2026-08-08 08:24:34 +00:00 by hugo · 1 comment
Owner

Objective

Port TestClient commands for inventory navigation/tree/list/search, item/folder operations, give/download/upload/script/notecard, outfit/attachments/appearance, balance, and xfer.

Deliverables

  • Use only finalized Rust manager APIs and preserve command arguments/output/error behavior.
  • Make destructive/upload/live actions explicit and confirmable or opt-in.
  • Use fake inventory/caps/asset fixtures and temporary output paths.

Validation

  • Every owned command has CLI and fake-grid tests.
  • Inventory state and output match expected fixtures.
  • No command bypasses public APIs or embeds credentials.

Prerequisite

The library behavior required by the program is implemented and its translated parity tests pass.

Project constraints

  • Programs must use the native Rust public API; no CLR, C# process, bridge, RPC, or fallback.
  • Provide deterministic offline/fake validation before opt-in live or device tests.
  • Never log/store credentials or capability tokens, and keep destructive/spending actions separately opt-in.
  • Update program/source completeness, docs, and workspace validation evidence.
## Objective Port TestClient commands for inventory navigation/tree/list/search, item/folder operations, give/download/upload/script/notecard, outfit/attachments/appearance, balance, and xfer. ## Deliverables - Use only finalized Rust manager APIs and preserve command arguments/output/error behavior. - Make destructive/upload/live actions explicit and confirmable or opt-in. - Use fake inventory/caps/asset fixtures and temporary output paths. ## Validation - Every owned command has CLI and fake-grid tests. - Inventory state and output match expected fixtures. - No command bypasses public APIs or embeds credentials. ## Prerequisite The library behavior required by the program is implemented and its translated parity tests pass. ## Project constraints - Programs must use the native Rust public API; no CLR, C# process, bridge, RPC, or fallback. - Provide deterministic offline/fake validation before opt-in live or device tests. - Never log/store credentials or capability tokens, and keep destructive/spending actions separately opt-in. - Update program/source completeness, docs, and workspace validation evidence.
hugo added this to the 11 - Programs and live-grid validation milestone 2026-08-08 08:24:34 +00:00
hugo added the enhancement label 2026-08-08 08:24:34 +00:00
Author
Owner

Implemented in ea10b76 and pushed to main.

Completed all 25 owned TestClient inventory, asset, task-inventory, balance, outfit, attachment, avatar-appearance, notecard, script, image-upload, download, and Xfer commands. Live execution uses finalized Rust inventory, asset, appearance, agent, directory, and task-inventory managers, including correlated bounded transfers and appearance operations. Added separate --allow-live-mutations and --allow-spending gates plus per-command --confirm checks, bounded paths/assets/backups/image conversion, and no credentials or capability tokens in fixtures/output.

Added deterministic fake inventory, asset, balance, avatar, appearance-cache, attachment, task, and task-item fixtures. The CLI integration test exercises every owned command and verifies transcript state, task state transitions, balance transfer, created/read-back notecards, downloaded assets, backup contents, and JPEG2000/TGA texture output.

Validation passed:

  • cargo fmt --all -- --check
  • cargo clippy -p libremetaverse-programs --all-targets -j1 -- -D warnings
  • TestClient CLI tests: 7 passed
  • TestClient unit tests: 3 passed
  • Related compatibility tests: 132 passed across appearance_semantics, appearance_visual, asset_capability, asset_document, inventory_ais, inventory_manager, inventory_store, and task_inventory
  • cargo check --workspace --all-targets --locked -j1
  • all configured milestone 09/10 native-boundary audits and deterministic LSL generation check
  • git diff --check
Implemented in ea10b76 and pushed to main. Completed all 25 owned TestClient inventory, asset, task-inventory, balance, outfit, attachment, avatar-appearance, notecard, script, image-upload, download, and Xfer commands. Live execution uses finalized Rust inventory, asset, appearance, agent, directory, and task-inventory managers, including correlated bounded transfers and appearance operations. Added separate --allow-live-mutations and --allow-spending gates plus per-command --confirm checks, bounded paths/assets/backups/image conversion, and no credentials or capability tokens in fixtures/output. Added deterministic fake inventory, asset, balance, avatar, appearance-cache, attachment, task, and task-item fixtures. The CLI integration test exercises every owned command and verifies transcript state, task state transitions, balance transfer, created/read-back notecards, downloaded assets, backup contents, and JPEG2000/TGA texture output. Validation passed: - cargo fmt --all -- --check - cargo clippy -p libremetaverse-programs --all-targets -j1 -- -D warnings - TestClient CLI tests: 7 passed - TestClient unit tests: 3 passed - Related compatibility tests: 132 passed across appearance_semantics, appearance_visual, asset_capability, asset_document, inventory_ais, inventory_manager, inventory_store, and task_inventory - cargo check --workspace --all-targets --locked -j1 - all configured milestone 09/10 native-boundary audits and deterministic LSL generation check - git diff --check
hugo closed this issue 2026-08-11 11:15:34 +00:00
Sign in to join this conversation.