Preserve update cadence/flags, coordinate frames, look-at/camera math, control reset, animations triggered by movement, and current-simulator routing.
Integrate teleport/region crossing state machines without duplicating lifecycle ownership.
Make time/cancellation deterministic in tests.
Validation
Movement/camera/teleport tests and fake-grid packet assertions pass.
No arbitrary sleeps or leaked update tasks.
Public state transitions and events match translated expectations.
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 AgentMovement, camera/control flags, locomotion commands, sitting/flying/jumping, auto-pilot, teleport progress, and multi-simulator state.
## Deliverables
- Preserve update cadence/flags, coordinate frames, look-at/camera math, control reset, animations triggered by movement, and current-simulator routing.
- Integrate teleport/region crossing state machines without duplicating lifecycle ownership.
- Make time/cancellation deterministic in tests.
## Validation
- Movement/camera/teleport tests and fake-grid packet assertions pass.
- No arbitrary sleeps or leaked update tasks.
- Public state transitions and events match translated expectations.
## 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
Native Rust implementation now covers all 32 movement controls and reset semantics, camera/CoordinateFrame math and axis mapping, AgentUpdate cadence/duplicate suppression/current-simulator routing, locomotion/sit/always-run/FOV/autopilot LLUDP packets, UDP and CAPS teleport progress with cancellation-safe waiters, and the bounded region-crossing recovery state machine. Multi-simulator presence, border prediction, child-agent bookkeeping, and cross-simulator object visibility are implemented as well. Update and crossing workers use weak ownership, condition-variable wakeups, explicit cancellation, and joined handles.
Validation completed:
7 focused movement/camera/teleport/crossing/multi-sim tests pass, including one- and two-simulator loopback fake grids that decode emitted packets
paused-time timeout and cancellation tests pass
tools/check_milestone_09_issue_60.py passes with no owned stubs
mapping generation, generated shims, API coverage, and generated API compile fixture pass
all issue-related tests in the pre-created library suite pass; remaining full-suite failures are explicit stubs assigned to later milestone areas
Compatibility and lifecycle details are documented in docs/agent-movement.md and summarized in README.md.
Implemented and pushed in commit 0791e0a.
Native Rust implementation now covers all 32 movement controls and reset semantics, camera/CoordinateFrame math and axis mapping, AgentUpdate cadence/duplicate suppression/current-simulator routing, locomotion/sit/always-run/FOV/autopilot LLUDP packets, UDP and CAPS teleport progress with cancellation-safe waiters, and the bounded region-crossing recovery state machine. Multi-simulator presence, border prediction, child-agent bookkeeping, and cross-simulator object visibility are implemented as well. Update and crossing workers use weak ownership, condition-variable wakeups, explicit cancellation, and joined handles.
Validation completed:
- 7 focused movement/camera/teleport/crossing/multi-sim tests pass, including one- and two-simulator loopback fake grids that decode emitted packets
- paused-time timeout and cancellation tests pass
- tools/check_milestone_09_issue_60.py passes with no owned stubs
- mapping generation, generated shims, API coverage, and generated API compile fixture pass
- cargo clippy -p libremetaverse --lib --no-deps -- -D warnings passes on Rust 1.97.1
- cargo check --workspace --all-targets --locked -j 1 passes
- all issue-related tests in the pre-created library suite pass; remaining full-suite failures are explicit stubs assigned to later milestone areas
Compatibility and lifecycle details are documented in docs/agent-movement.md and summarized in README.md.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Objective
Implement AgentMovement, camera/control flags, locomotion commands, sitting/flying/jumping, auto-pilot, teleport progress, and multi-simulator state.
Deliverables
Validation
Prerequisite
Networking/client lifecycle and all foundational implementation milestones are complete; mapped APIs and translated tests are fixed.
Project constraints
Implemented and pushed in commit
0791e0a.Native Rust implementation now covers all 32 movement controls and reset semantics, camera/CoordinateFrame math and axis mapping, AgentUpdate cadence/duplicate suppression/current-simulator routing, locomotion/sit/always-run/FOV/autopilot LLUDP packets, UDP and CAPS teleport progress with cancellation-safe waiters, and the bounded region-crossing recovery state machine. Multi-simulator presence, border prediction, child-agent bookkeeping, and cross-simulator object visibility are implemented as well. Update and crossing workers use weak ownership, condition-variable wakeups, explicit cancellation, and joined handles.
Validation completed:
Compatibility and lifecycle details are documented in docs/agent-movement.md and summarized in README.md.