Implement TestClient inventory and appearance commands (#92)
Some checks failed
Native code generation / deterministic (push) Successful in 18m25s
Imaging and meshing gate / native (push) Failing after 4m23s
JPEG 2000 feature / linux (push) Successful in 2m49s
Native Rust workspace compile / compile (push) Failing after 12m37s
Skia feature / linux (push) Has been cancelled
Some checks failed
Native code generation / deterministic (push) Successful in 18m25s
Imaging and meshing gate / native (push) Failing after 4m23s
JPEG 2000 feature / linux (push) Successful in 2m49s
Native Rust workspace compile / compile (push) Failing after 12m37s
Skia feature / linux (push) Has been cancelled
This commit is contained in:
@@ -13,7 +13,7 @@ here so a source entry is never mistaken for a completed port.
|
||||
| `prim-inspector` | PrimInspector | Implemented with live and deterministic fake-grid discovery |
|
||||
| `inventory-explorer` | InventoryExplorer | Implemented with live inventory and deterministic AIS fixtures |
|
||||
| `irc-gateway` | IRCGateway | Implemented with live IRC/grid transports and deterministic offline scripts |
|
||||
| `test-client` | TestClient | Native shell, registry, system, and communication groups implemented; remaining command groups tracked by #92–#94 |
|
||||
| `test-client` | TestClient | Native shell, registry, system, communication, inventory, appearance, and asset groups implemented; remaining command groups tracked by #93–#94 |
|
||||
| `vivox-test` | VivoxTest | Pending milestone 11 issue #95 |
|
||||
| `webrtc-test` | WebRtcTest | Pending milestone 11 issue #96 |
|
||||
|
||||
@@ -165,12 +165,16 @@ broadcast command routing.
|
||||
The implemented command groups are `@`, `debug`, `echomaster`, `help`, `im`,
|
||||
`imgroup`, `load`, `login`, `logpacket`, `logout`, `md5`, `quit`, `say`,
|
||||
`setmaster`, `setmasterkey`, `shout`, `showeffects`, `sleep`, `waitforlogin`, and
|
||||
`whisper`. Chat and instant-message bodies are bounded to the grid protocol
|
||||
limit. Group commands require both `--groupcommands` and current group
|
||||
membership. Master chat can be echoed, master teleport lures are accepted, and
|
||||
remote `login` and `md5` command text is redacted from transcripts. Packet logs
|
||||
contain only timestamped packet type, simulator name, and byte count; they are
|
||||
limited to 10,000 records and 16 MiB.
|
||||
`whisper`. The inventory wave also implements `appearance`, `attachments`,
|
||||
`avatarinfo`, `clone`, `wear`, `backuptext`, `balance`, `cd`, `createnotecard`,
|
||||
`deletefolder`, `download`, `dumpoutfit`, `emptylostandfound`, `emptytrash`,
|
||||
`giveall`, `give`, `i`, `ls`, `objectinventory`, `script`, `taskrunning`,
|
||||
`uploadimage`, `uploadscript`, `viewnote`, and `xfer`. Chat and instant-message
|
||||
bodies are bounded to the grid protocol limit. Group commands require both
|
||||
`--groupcommands` and current group membership. Master chat can be echoed,
|
||||
master teleport lures are accepted, and remote `login` and `md5` command text
|
||||
is redacted from transcripts. Packet logs contain only timestamped packet type,
|
||||
simulator name, and byte count; they are limited to 10,000 records and 16 MiB.
|
||||
|
||||
The native `load` command reads a portable command-alias manifest instead of a
|
||||
CLR assembly. Each non-comment line is tab-separated
|
||||
@@ -178,6 +182,16 @@ CLR assembly. Each non-comment line is tab-separated
|
||||
arguments. Manifests are limited to 1 MiB and 128 commands, with an alias
|
||||
expansion depth of eight.
|
||||
|
||||
Inventory and appearance mutations require both the global
|
||||
`--allow-live-mutations` switch and a per-command `--confirm` argument. Uploads
|
||||
and L$ transfers additionally require `--allow-spending`. Downloads and
|
||||
backups reject parent traversal, individual assets are limited to 64 MiB,
|
||||
backups are limited to 10,000 files and 512 MiB, and image uploads decode
|
||||
portable TGA, JPEG, PNG, WebP, or JPEG2000 input before producing the grid's
|
||||
JPEG2000 texture format. Live commands use the public inventory, appearance,
|
||||
asset, agent, directory, and task-inventory managers; Xfer downloads wait for
|
||||
their correlated UDP completion event.
|
||||
|
||||
Use `--fake-script FILE` for deterministic, credential-free terminal and grid
|
||||
validation. Normal lines are dispatched exactly like interactive input. Fake
|
||||
grid records begin with `!` and use tab-separated fields:
|
||||
@@ -192,6 +206,16 @@ grid records begin with `!` and use tab-separated fields:
|
||||
!packet<TAB>client-uuid<TAB>packet-type<TAB>simulator<TAB>bytes
|
||||
!effect<TAB>client-uuid<TAB>summary
|
||||
!disconnect<TAB>client-uuid<TAB>reason
|
||||
!inventory-root<TAB>client-uuid<TAB>root-uuid<TAB>owner-uuid<TAB>name
|
||||
!inventory-folder<TAB>client-uuid<TAB>folder-uuid<TAB>parent-uuid<TAB>folder-type<TAB>name
|
||||
!inventory-item<TAB>client-uuid<TAB>item-uuid<TAB>parent-uuid<TAB>asset-uuid<TAB>asset-type<TAB>inventory-type<TAB>permissions-hex<TAB>name<TAB>description
|
||||
!asset<TAB>client-uuid<TAB>asset-uuid<TAB>asset-type<TAB>hex-bytes
|
||||
!balance<TAB>client-uuid<TAB>amount
|
||||
!avatar<TAB>client-uuid<TAB>avatar-uuid<TAB>name<TAB>texture-label=texture-uuid,...
|
||||
!appearance-cache<TAB>client-uuid<TAB>avatar-uuid
|
||||
!attachment<TAB>client-uuid<TAB>point<TAB>local-id<TAB>primitive-uuid<TAB>offset
|
||||
!task<TAB>client-uuid<TAB>object-uuid<TAB>local-id
|
||||
!task-item<TAB>client-uuid<TAB>object-uuid<TAB>item-uuid<TAB>asset-type<TAB>true|false|none<TAB>name<TAB>description
|
||||
!cancel
|
||||
!shutdown
|
||||
```
|
||||
@@ -203,10 +227,16 @@ framework and compatibility checks with:
|
||||
|
||||
```sh
|
||||
cargo test -p libremetaverse-programs --test test_client_cli --locked
|
||||
cargo test -p libremetaverse-programs --test test_client_inventory_cli --locked
|
||||
cargo test -p libremetaverse-programs test_client::tests --locked
|
||||
cargo test --manifest-path tests/compat/Cargo.toml --test core_runtime_shims --locked
|
||||
cargo test --manifest-path tests/compat/Cargo.toml --test social_message_semantics --locked
|
||||
cargo test --manifest-path tests/compat/Cargo.toml --test network_semantics --locked
|
||||
cargo test --manifest-path tests/compat/Cargo.toml --test appearance_semantics --locked
|
||||
cargo test --manifest-path tests/compat/Cargo.toml --test appearance_visual --locked
|
||||
cargo test --manifest-path tests/compat/Cargo.toml --test asset_capability --locked
|
||||
cargo test --manifest-path tests/compat/Cargo.toml --test asset_document --locked
|
||||
cargo test --manifest-path tests/compat/Cargo.toml --test inventory_ais --locked
|
||||
cargo test --manifest-path tests/compat/Cargo.toml --test inventory_manager --locked
|
||||
cargo test --manifest-path tests/compat/Cargo.toml --test inventory_store --locked
|
||||
cargo test --manifest-path tests/compat/Cargo.toml --test task_inventory --locked
|
||||
```
|
||||
|
||||
## PacketDump
|
||||
|
||||
Reference in New Issue
Block a user