Program: implement InventoryExplorer #89

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

Objective

Port InventoryExplorer using the real inventory manager/store APIs.

Deliverables

  • Implement top-level browsing, stats, search, asset-type filter, and hierarchical export with documented arguments.
  • Wait for inventory readiness, handle links/folders/errors, produce deterministic ordering, and use bounded output paths.
  • Provide fake-grid/AIS inventory fixtures.

Validation

  • CLI parsing, stats/search/filter/export golden tests pass.
  • Fake-grid workflow validates fetch and store integration.
  • Credential and filesystem failure handling is explicit.

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 InventoryExplorer using the real inventory manager/store APIs. ## Deliverables - Implement top-level browsing, stats, search, asset-type filter, and hierarchical export with documented arguments. - Wait for inventory readiness, handle links/folders/errors, produce deterministic ordering, and use bounded output paths. - Provide fake-grid/AIS inventory fixtures. ## Validation - CLI parsing, stats/search/filter/export golden tests pass. - Fake-grid workflow validates fetch and store integration. - Credential and filesystem failure handling is explicit. ## 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:33 +00:00
hugo added the enhancement label 2026-08-08 08:24:33 +00:00
Author
Owner

Implemented in commit bb7f419. InventoryExplorer now logs in through the native GridClient, waits for the real InventoryManager store root, supports sorted top-level browsing, statistics, case-insensitive search, every native AssetType filter, link-target and parent details, and bounded deterministic hierarchical text export. Added a public object-safe InventoryItem view for all derived inventory entries so programs can inspect item metadata without concrete-type enumeration. Offline mode parses bounded LLSD JSON with the native InventoryAISClient and installs categories/items/links through the manager-owned Inventory store. It enforces entry/depth/output/export/path limits, detects cycles, rejects symlink exports, redacts sensitive text, handles filesystem errors, disconnects, login/readiness timeouts, Ctrl-C, logout, and disposal. Verified: 2 focused unit tests; 5/5 CLI/golden tests; 15/15 inventory_store_semantics; 10/10 inventory_ais_semantics; library and program Clippy with warnings denied; mapping and shim checks; full programs tests; workspace all-target check; workspace no-run build; and warning-denied rustdoc. No live grid or credentials were used.

Implemented in commit bb7f419. InventoryExplorer now logs in through the native GridClient, waits for the real InventoryManager store root, supports sorted top-level browsing, statistics, case-insensitive search, every native AssetType filter, link-target and parent details, and bounded deterministic hierarchical text export. Added a public object-safe InventoryItem view for all derived inventory entries so programs can inspect item metadata without concrete-type enumeration. Offline mode parses bounded LLSD JSON with the native InventoryAISClient and installs categories/items/links through the manager-owned Inventory store. It enforces entry/depth/output/export/path limits, detects cycles, rejects symlink exports, redacts sensitive text, handles filesystem errors, disconnects, login/readiness timeouts, Ctrl-C, logout, and disposal. Verified: 2 focused unit tests; 5/5 CLI/golden tests; 15/15 inventory_store_semantics; 10/10 inventory_ais_semantics; library and program Clippy with warnings denied; mapping and shim checks; full programs tests; workspace all-target check; workspace no-run build; and warning-denied rustdoc. No live grid or credentials were used.
hugo closed this issue 2026-08-11 09:02:45 +00:00
Sign in to join this conversation.