RLV: implement callbacks, command processor, and GridClient service integration #80

Closed
opened 2026-08-08 08:23:17 +00:00 by hugo · 1 comment
Owner

Objective

Implement action/query callbacks, default adapters, get-request handling, service orchestration, inventory/attachment reports, and message integration.

Deliverables

  • Translate pure parsed decisions into explicit client actions via injected callback traits.
  • Preserve callback order, response channels/messages, permission checks, cancellation, and object-source cleanup.
  • Integrate with completed inventory/agent services without bypassing their APIs.

Validation

  • All RLV callback/service tests pass with recording fakes.
  • Fake-grid RLV workflows produce expected actions/replies.
  • No callback executes under internal locks.

Prerequisite

All global API/test gates and the foundational/world implementations needed by these extension crates are complete.

Project constraints

  • Full native Rust implementation only; no wrapped C# parser, viewer, renderer, or service.
  • Preserve mapped APIs and exact translated tests; reuse lower layers and keep generated output deterministic.
  • Validate bounded input, callbacks/tasks, docs, coverage, and workspace gates.
## Objective Implement action/query callbacks, default adapters, get-request handling, service orchestration, inventory/attachment reports, and message integration. ## Deliverables - Translate pure parsed decisions into explicit client actions via injected callback traits. - Preserve callback order, response channels/messages, permission checks, cancellation, and object-source cleanup. - Integrate with completed inventory/agent services without bypassing their APIs. ## Validation - All RLV callback/service tests pass with recording fakes. - Fake-grid RLV workflows produce expected actions/replies. - No callback executes under internal locks. ## Prerequisite All global API/test gates and the foundational/world implementations needed by these extension crates are complete. ## Project constraints - Full native Rust implementation only; no wrapped C# parser, viewer, renderer, or service. - Preserve mapped APIs and exact translated tests; reuse lower layers and keep generated output deterministic. - Validate bounded input, callbacks/tasks, docs, coverage, and workspace gates.
hugo added this to the 10 - Rendering, RLV, and LSL tools milestone 2026-08-08 08:23:17 +00:00
hugo added the enhancement label 2026-08-08 08:23:17 +00:00
Author
Owner

Implemented and pushed in commit 2f1c15c081.

Implementation:

  • Replaced AttachmentRequest, both default callback adapters, RlvCommandProcessor, and RlvService shims with native Rust covering typed action/query dispatch, inventory and attachment workflows, IM/chat integration, permission checks, reports, restriction notifications, object-source cleanup, cancellation, and bounded multi-command processing.
  • Made action/query callback traits Send + Sync and ensured host callbacks receive snapshots only after internal locks are released.
  • Preserved deterministic ordering, exact channels/messages, UUID text, blacklist behavior, folder recursion/private/nostrip/link rules, and stable cross-platform request hashing.
  • Added deterministic API generation coverage, issue-owned audit/workflow gates, service documentation, scoped parity metadata, and corrected three translated fixtures to the pinned C# source.

Verification:

  • 31 libremetaverse-rlv package tests passed.
  • All 616 related translated RLV cases across 24 compatibility binaries passed.
  • Strict Clippy with -D warnings and rustdoc with -D warnings passed.
  • Deterministic shim/mapping and API coverage checks passed.
  • Standalone API consumer and cargo check --workspace --all-targets --locked passed with one build job.
  • Issue 80 audit confirms all 5 owned types and 53 public members are native, all 616 scoped parity records are current, and no callback lock boundary remains.

Final review against the live issue and pinned upstream service/processor/get-handler sources found no incomplete deliverable or stub.

Implemented and pushed in commit 2f1c15c081b72f25e6753ad00a234ce821977ae1. Implementation: - Replaced AttachmentRequest, both default callback adapters, RlvCommandProcessor, and RlvService shims with native Rust covering typed action/query dispatch, inventory and attachment workflows, IM/chat integration, permission checks, reports, restriction notifications, object-source cleanup, cancellation, and bounded multi-command processing. - Made action/query callback traits Send + Sync and ensured host callbacks receive snapshots only after internal locks are released. - Preserved deterministic ordering, exact channels/messages, UUID text, blacklist behavior, folder recursion/private/nostrip/link rules, and stable cross-platform request hashing. - Added deterministic API generation coverage, issue-owned audit/workflow gates, service documentation, scoped parity metadata, and corrected three translated fixtures to the pinned C# source. Verification: - 31 libremetaverse-rlv package tests passed. - All 616 related translated RLV cases across 24 compatibility binaries passed. - Strict Clippy with -D warnings and rustdoc with -D warnings passed. - Deterministic shim/mapping and API coverage checks passed. - Standalone API consumer and cargo check --workspace --all-targets --locked passed with one build job. - Issue 80 audit confirms all 5 owned types and 53 public members are native, all 616 scoped parity records are current, and no callback lock boundary remains. Final review against the live issue and pinned upstream service/processor/get-handler sources found no incomplete deliverable or stub.
hugo closed this issue 2026-08-11 01:01:35 +00:00
Sign in to join this conversation.