49 lines
2.7 KiB
Markdown
49 lines
2.7 KiB
Markdown
# World milestone integration gate
|
|
|
|
Milestone 09 closes on native Rust behavior, not on catalog coverage alone. The
|
|
reproducible focused suite is `python3 tools/test_milestone_09.py`; its target
|
|
list contains the world-owned library tests, the complete fake-grid lifecycle,
|
|
and the translated compatibility targets for agent, inventory, assets,
|
|
appearance, avatars, objects, land, discovery, social, estate, experience, and
|
|
marketplace behavior. Live tests remain catalogued and reviewed but skip unless
|
|
their existing credentials and the explicit `RUN_LIVE_TESTS=1` opt-in are
|
|
supplied. The offline milestone runner always clears that opt-in.
|
|
|
|
## Cross-manager fake grid
|
|
|
|
The loopback scenario logs in through injected HTTP and UDP endpoints, waits
|
|
for seed capabilities and the event queue, then performs a simulator handoff.
|
|
While authenticated it constructs every client-owned world manager, verifies
|
|
agent/session identity, reconciles an inventory marker through the shared
|
|
store, checks AIS availability, creates an asset wrapper, observes appearance
|
|
and animesh state, requests an object, and inspects parcel, grid, friend, group,
|
|
and marketplace caches. A cancelled directory query proves that caller
|
|
cancellation wins before wire work. A marketplace capability error emitted
|
|
through a second `GridClient.Marketplace` lookup proves that the manager cache
|
|
and event registry are shared.
|
|
|
|
Manager events are asserted in deterministic order: event-queue readiness,
|
|
the marketplace error, then logout. Capability downloads are bounded by the
|
|
existing HTTP and download-manager policies. Diagnostic formatting is checked
|
|
against login and capability secrets.
|
|
|
|
## Cancellation and teardown
|
|
|
|
Logout cancels the event queue, disconnects every simulator, leaves no pending
|
|
logout task, and stops the download dispatcher. Client disposal then cancels
|
|
the root token and releases every cached manager, including assets,
|
|
appearance, avatars, animesh, land, discovery, social, estate, and marketplace
|
|
state. Inventory has an empty shared store before login so offline fixtures and
|
|
programs can stage deterministic data; a successful login atomically replaces
|
|
it with the authenticated hierarchy.
|
|
|
|
## Audit and program boundary
|
|
|
|
`python3 tools/check_milestone_09.py` rejects stubs in all milestone-owned
|
|
sources, missing native type/member mappings, unreviewed related parity cases,
|
|
missing fake-grid evidence, and drift in the nine catalogued Rust program
|
|
targets. The program ports remain a later milestone, but their required world
|
|
APIs and target inventory are now auditable. Live actions remain opt-in:
|
|
uploads, marketplace changes, estate/parcel mutations, currency spending, and
|
|
operations affecting other users are never part of this offline gate.
|