Client core: implement settings, errors, service composition, and cancellation #51
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objective
Implement validated configuration, typed lifecycle errors, GridClient construction, manager ownership, runtime boundaries, and cancellation primitives.
Deliverables
Validation
Prerequisite
Wire codegen and the foundational implementation milestones are complete; the fixed API/test gates remain authoritative.
Project constraints
Implemented in
b413cd6and pushed to main.The native Rust client core now provides the exact grouped C# Settings defaults, validation for endpoints/durations/limits/cache and feature policies, typed configuration and lifecycle errors, an explicit GridClientBuilder and ClientService ownership contract, injected clocks, executor-neutral cancellation futures and linked tokens, and deterministic idempotent shutdown in network/manager/HTTP/rate-limiter order. Construction performs no I/O and starts no runtime. Debug output redacts login endpoints, clocks, and service internals. Public ownership/runtime documentation is in docs/client-core.md.
Verified in isolation with all 48 libremetaverse-types tests, the 3 client_core tests, core_runtime_shims, world_manager_shims, scoped Clippy with warnings denied, generated shim and Rust mapping checks, the independent API compile fixture, rustdoc, and serial cargo test --workspace --no-run --no-default-features. The broader red-suite/parity baseline remains stale from already-landed milestone-07 packet/message passes; no #51 parity-case body was changed.