API shims: core runtime, networking, capabilities, and GridClient #8

Closed
opened 2026-08-08 08:11:53 +00:00 by hugo · 1 comment
Owner

Objective

Implement callable signatures for the client runtime and transport-facing surface while leaving behavior unimplemented.

Deliverables

  • Cover GridClient, settings, login, network/simulator/protocol managers, UDP types, caps HTTP/event queue/rate limiting, download/texture pipelines, logging, statistics, threading, and utility interfaces.
  • Finalize Rust async, cancellation, stream, error, builder, and ownership signatures.
  • Model IDisposable and lifecycle APIs explicitly without creating a runtime or opening sockets.
  • Record all overload and event-subscription mappings.

Validation

  • 100% coverage for the owned core catalog subset.
  • Downstream fixtures compile login, subscribe, request, cancellation, shutdown, and settings flows.
  • No task, socket, HTTP request, or filesystem side effect occurs in shim bodies.

Prerequisite

Stage 0 project setup is complete. Do not implement production behavior in this milestone.

Project constraints

  • Implement the public surface in native Rust only; no CLR hosting, FFI bridge, subprocess, RPC, or C# fallback.
  • Preserve recognizable API concepts while applying the documented Rust mapping rules.
  • Do not weaken parity requirements or add functional behavior outside this issue.
  • Update the API mapping, coverage report, public docs, and relevant handover status in the same change.
## Objective Implement callable signatures for the client runtime and transport-facing surface while leaving behavior unimplemented. ## Deliverables - Cover GridClient, settings, login, network/simulator/protocol managers, UDP types, caps HTTP/event queue/rate limiting, download/texture pipelines, logging, statistics, threading, and utility interfaces. - Finalize Rust async, cancellation, stream, error, builder, and ownership signatures. - Model IDisposable and lifecycle APIs explicitly without creating a runtime or opening sockets. - Record all overload and event-subscription mappings. ## Validation - 100% coverage for the owned core catalog subset. - Downstream fixtures compile login, subscribe, request, cancellation, shutdown, and settings flows. - No task, socket, HTTP request, or filesystem side effect occurs in shim bodies. ## Prerequisite Stage 0 project setup is complete. Do not implement production behavior in this milestone. ## Project constraints - Implement the public surface in native Rust only; no CLR hosting, FFI bridge, subprocess, RPC, or C# fallback. - Preserve recognizable API concepts while applying the documented Rust mapping rules. - Do not weaken parity requirements or add functional behavior outside this issue. - Update the API mapping, coverage report, public docs, and relevant handover status in the same change.
hugo added this to the 02 - Full public API signature shim milestone 2026-08-08 08:11:53 +00:00
hugo added the enhancement label 2026-08-08 08:11:53 +00:00
Author
Owner

Implemented and pushed in commit a007313. Generated the complete failure-only core runtime/networking subset: 111 authoritative catalog types and 965 members covering GridClient/settings/login, network/simulator/protocol/UDP, caps/rate limiting, HTTP download/event queue, image/texture pipelines, logging/statistics, threading/disposers, observable/event helpers, and utility interfaces. Event APIs return typed Subscription guards; System.IProgress and IDisposable use explicit project-owned trait objects; concrete Task methods are native async functions; interface Task methods are object-safe boxed Send futures. Added only cataloged project-owned cross-platform boundary types for external HTTP, logging, service collection, cancellation/task, rate-limit, thread/wait, and event signatures. Fixed Caps.Capabilities to its concrete Vec key type and boxed the cataloged Caps/Simulator reference cycle. No external member APIs or platform-specific APIs were copied. The focused fixture compiles login, subscribe, request/cancellation, rate-limit, async shutdown, settings, texture shutdown, and object-safe texture request flows, and verifies five constructors fail with exact member IDs before any runtime work. Review verified exact catalog-ID parity, standardized bodies, explicit lifecycle APIs, and no task/socket/HTTP/filesystem side effect. Gates passed: mapping/shim determinism, cargo fmt, git diff --check, workspace cargo check, workspace test compile (--no-run), clippy -D warnings, workspace docs, issue test (2 passed), and prior focused regressions (9 passed).

Implemented and pushed in commit a007313. Generated the complete failure-only core runtime/networking subset: 111 authoritative catalog types and 965 members covering GridClient/settings/login, network/simulator/protocol/UDP, caps/rate limiting, HTTP download/event queue, image/texture pipelines, logging/statistics, threading/disposers, observable/event helpers, and utility interfaces. Event APIs return typed Subscription guards; System.IProgress and IDisposable use explicit project-owned trait objects; concrete Task methods are native async functions; interface Task methods are object-safe boxed Send futures. Added only cataloged project-owned cross-platform boundary types for external HTTP, logging, service collection, cancellation/task, rate-limit, thread/wait, and event signatures. Fixed Caps.Capabilities to its concrete Vec<String> key type and boxed the cataloged Caps/Simulator reference cycle. No external member APIs or platform-specific APIs were copied. The focused fixture compiles login, subscribe, request/cancellation, rate-limit, async shutdown, settings, texture shutdown, and object-safe texture request flows, and verifies five constructors fail with exact member IDs before any runtime work. Review verified exact catalog-ID parity, standardized bodies, explicit lifecycle APIs, and no task/socket/HTTP/filesystem side effect. Gates passed: mapping/shim determinism, cargo fmt, git diff --check, workspace cargo check, workspace test compile (--no-run), clippy -D warnings, workspace docs, issue test (2 passed), and prior focused regressions (9 passed).
hugo closed this issue 2026-08-08 10:29:16 +00:00
Sign in to join this conversation.