Agent: implement chat, instant messages, profiles, effects, money, and preferences #59

Closed
opened 2026-08-08 08:20:45 +00:00 by hugo · 1 comment
Owner

Objective

Implement non-movement AgentManager capabilities and their events over the completed network/caps layer.

Deliverables

  • Cover chat/IM/conference/offline messages, gestures, effects, money/balance/pay, profile/notes/display name, language/access/preferences, experiences, and viewer reporting owned by AgentManager.
  • Preserve packet/caps selection, request IDs, event payloads/order, permission checks, cancellation, and typed errors.
  • Keep user callback execution outside locks.

Validation

  • Owned AgentManager and message tests pass.
  • Fake-grid workflows verify sent packets/HTTP and emitted events.
  • Sensitive messages/transactions/capability URLs are redacted from tracing.

Prerequisite

Networking/client lifecycle and all foundational implementation milestones are complete; mapped APIs and translated tests are fixed.

Project constraints

  • New native Rust behavior only; no bridge or C# fallback.
  • Preserve mapped public APIs and exact translated assertions; use completed transport/data layers rather than duplicating them.
  • Bound resources, avoid locks across await/callbacks, and update docs/coverage with focused and workspace evidence.
## Objective Implement non-movement AgentManager capabilities and their events over the completed network/caps layer. ## Deliverables - Cover chat/IM/conference/offline messages, gestures, effects, money/balance/pay, profile/notes/display name, language/access/preferences, experiences, and viewer reporting owned by AgentManager. - Preserve packet/caps selection, request IDs, event payloads/order, permission checks, cancellation, and typed errors. - Keep user callback execution outside locks. ## Validation - Owned AgentManager and message tests pass. - Fake-grid workflows verify sent packets/HTTP and emitted events. - Sensitive messages/transactions/capability URLs are redacted from tracing. ## Prerequisite Networking/client lifecycle and all foundational implementation milestones are complete; mapped APIs and translated tests are fixed. ## Project constraints - New native Rust behavior only; no bridge or C# fallback. - Preserve mapped public APIs and exact translated assertions; use completed transport/data layers rather than duplicating them. - Bound resources, avoid locks across await/callbacks, and update docs/coverage with focused and workspace evidence.
hugo added this to the 09 - World vertical slices milestone 2026-08-08 08:20:45 +00:00
hugo added the enhancement label 2026-08-08 08:20:45 +00:00
Author
Owner

Implemented and pushed in commit 9c9d5b9 (Implement native AgentManager services (#59)).

Implementation:

  • Added the native non-movement AgentManager and shared event/state model for chat, IM/conferences/offline messages, gestures/animations, viewer effects, balance/payments, profiles/notes/picks/classifieds/display names, language/access/preferences, experiences, viewer reporting, benefits, attachment resources, mute lists, and nav-mesh status.
  • Preserved LLUDP versus CAPS selection, typed cancellation/errors, group membership and event ordering, permission parsing, request payloads, and callback execution outside locks.
  • Added native v2 gesture decoding/execution with bounded ViewerAsset and LLUDP fallback downloads; legacy mute-list Xfer assembly is ordered, acknowledged, size-bounded, and atomic.
  • Added message/event mappings, client/network ownership integration, redacted InstantMessage diagnostics, documentation, and an issue-specific CI audit.

Verification:

  • 10/10 AgentManager tests pass, including the loopback fake grid that serves ViewerAsset over HTTP and observes ChatFromViewer, AgentAnimation, and SoundTrigger UDP packets.
  • 2/2 gesture codec tests, 4/4 social message tests, 9/9 experience message tests, and 4/4 parcel experience capability tests pass; the AgentManager constructor parity case passes.
  • API coverage, generated output checks, API consumer compile, Rust 1.97 clippy with -D warnings, imaging/meshing clippy, and cargo check --workspace --all-targets --locked -j 1 pass.
  • The complete library run has 85 passing tests and 67 expected failures owned by later issues (appearance/asset/animesh/inventory/estate); none are AgentManager/gesture failures.
Implemented and pushed in commit 9c9d5b9 (Implement native AgentManager services (#59)). Implementation: - Added the native non-movement AgentManager and shared event/state model for chat, IM/conferences/offline messages, gestures/animations, viewer effects, balance/payments, profiles/notes/picks/classifieds/display names, language/access/preferences, experiences, viewer reporting, benefits, attachment resources, mute lists, and nav-mesh status. - Preserved LLUDP versus CAPS selection, typed cancellation/errors, group membership and event ordering, permission parsing, request payloads, and callback execution outside locks. - Added native v2 gesture decoding/execution with bounded ViewerAsset and LLUDP fallback downloads; legacy mute-list Xfer assembly is ordered, acknowledged, size-bounded, and atomic. - Added message/event mappings, client/network ownership integration, redacted InstantMessage diagnostics, documentation, and an issue-specific CI audit. Verification: - 10/10 AgentManager tests pass, including the loopback fake grid that serves ViewerAsset over HTTP and observes ChatFromViewer, AgentAnimation, and SoundTrigger UDP packets. - 2/2 gesture codec tests, 4/4 social message tests, 9/9 experience message tests, and 4/4 parcel experience capability tests pass; the AgentManager constructor parity case passes. - API coverage, generated output checks, API consumer compile, Rust 1.97 clippy with -D warnings, imaging/meshing clippy, and cargo check --workspace --all-targets --locked -j 1 pass. - The complete library run has 85 passing tests and 67 expected failures owned by later issues (appearance/asset/animesh/inventory/estate); none are AgentManager/gesture failures.
hugo closed this issue 2026-08-09 22:08:35 +00:00
Sign in to join this conversation.