TestClient: implement movement, objects, land, and grid commands #93

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

Objective

Port movement/teleport/location/follow/sit/fly commands, primitive find/info/export/import/permissions/textures, parcel/land/estate-related queries, grid map/layer/region and wind commands.

Deliverables

  • Preserve parsing, coordinates, filters, output, timeouts, cancellation, and simulator selection.
  • Gate destructive/spending/upload/estate actions explicitly.
  • Use fake-grid world fixtures for deterministic validation.

Validation

  • Every owned command has tests and leaves expected client/world calls.
  • Exports are deterministic and bounded.
  • No privileged live operation runs by default.

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 movement/teleport/location/follow/sit/fly commands, primitive find/info/export/import/permissions/textures, parcel/land/estate-related queries, grid map/layer/region and wind commands. ## Deliverables - Preserve parsing, coordinates, filters, output, timeouts, cancellation, and simulator selection. - Gate destructive/spending/upload/estate actions explicitly. - Use fake-grid world fixtures for deterministic validation. ## Validation - Every owned command has tests and leaves expected client/world calls. - Exports are deterministic and bounded. - No privileged live operation runs by default. ## 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 commit 374d795 and pushed to main.

Completed all 46 commands owned by this issue across movement/teleport, primitives, parcel/estate, and grid groups. Live paths use native managers with cancellation and bounded waits; follow updates continuously from coarse locations; texture mode uses deduplicated native asset-cache requests; linkset export is ownership-checked, deterministic, bounded, and emits JP2/TGA assets; import rezzes, configures, links, rotates, and permissions native prims. Added explicit gates for live mutations, uploads/spending, estate-owner actions, and per-command confirmation, plus bounded fake-world fixtures and operational documentation.

Verification:

  • cargo fmt --all -- --check
  • cargo clippy -p libremetaverse-programs --all-targets --locked -j1 -- -D warnings
  • 9 focused TestClient CLI tests passed, including every owned world command and expected backend calls
  • 120 related world/asset/task-inventory compatibility tests passed; 1 credential-dependent read-only live test remained correctly ignored
  • cargo check --workspace --all-targets --locked -j1
  • API coverage and native codegen gates passed
  • no TODO, stub, unimplemented, or fallback marker remains in the issue implementation
Implemented in commit 374d795 and pushed to main. Completed all 46 commands owned by this issue across movement/teleport, primitives, parcel/estate, and grid groups. Live paths use native managers with cancellation and bounded waits; follow updates continuously from coarse locations; texture mode uses deduplicated native asset-cache requests; linkset export is ownership-checked, deterministic, bounded, and emits JP2/TGA assets; import rezzes, configures, links, rotates, and permissions native prims. Added explicit gates for live mutations, uploads/spending, estate-owner actions, and per-command confirmation, plus bounded fake-world fixtures and operational documentation. Verification: - cargo fmt --all -- --check - cargo clippy -p libremetaverse-programs --all-targets --locked -j1 -- -D warnings - 9 focused TestClient CLI tests passed, including every owned world command and expected backend calls - 120 related world/asset/task-inventory compatibility tests passed; 1 credential-dependent read-only live test remained correctly ignored - cargo check --workspace --all-targets --locked -j1 - API coverage and native codegen gates passed - no TODO, stub, unimplemented, or fallback marker remains in the issue implementation
hugo closed this issue 2026-08-11 12:11:29 +00:00
Sign in to join this conversation.