Files
MetaCrate/tools/check_milestone_08.py
Chili Palmer c8b2317e13
All checks were successful
Native code generation / deterministic (push) Successful in 12m1s
Imaging and meshing gate / native (push) Successful in 4m3s
Native Rust workspace compile / compile (push) Successful in 4m6s
Complete networking integration gate (#58)
2026-08-09 19:45:06 +00:00

107 lines
3.4 KiB
Python

#!/usr/bin/env python3
"""Audit the native networking/client lifecycle milestone boundary."""
from __future__ import annotations
from pathlib import Path
import re
import generate_api_shims
ROOT = Path(__file__).resolve().parents[1]
OWNED_SOURCES = (
"caps.rs",
"caps_http.rs",
"client_core.rs",
"download_manager.rs",
"event_queue.rs",
"login.rs",
"network_manager.rs",
"sim_stats.rs",
"udp_transport.rs",
)
REQUIRED_NATIVE_TYPES = {
"T:LibreMetaverse.Caps",
"T:LibreMetaverse.GridClient",
"T:LibreMetaverse.Http.DownloadManager",
"T:LibreMetaverse.Http.EventQueueClient",
"T:LibreMetaverse.HttpCapsClient",
"T:LibreMetaverse.NetworkManager",
"T:LibreMetaverse.Settings",
"T:LibreMetaverse.Simulator",
"T:LibreMetaverse.Simulator.SimStats",
"T:LibreMetaverse.UDPBase",
"T:LibreMetaverse.UDPPacketBuffer",
}
STUB_RE = re.compile(r"\b(?:not_implemented|unimplemented_api)\b|\b(?:todo|unimplemented)!\s*\(")
def check_owned_sources() -> None:
source_root = ROOT / "crates" / "libremetaverse" / "src"
offenders = [
name for name in OWNED_SOURCES if STUB_RE.search((source_root / name).read_text())
]
if offenders:
raise SystemExit("milestone 08 owned Rust stubs remain: " + ", ".join(offenders))
def check_native_mapping() -> None:
native = generate_api_shims.NATIVE_TYPES.keys() | generate_api_shims.NATIVE_DECLARATIONS.keys()
missing = sorted(REQUIRED_NATIVE_TYPES - native)
if missing:
raise SystemExit("milestone 08 native type mappings missing: " + ", ".join(missing))
def check_fake_grid_gate() -> None:
tests = (ROOT / "crates" / "libremetaverse" / "tests" / "network_manager.rs").read_text()
required_evidence = (
"offline_fake_grid_drives_the_complete_networking_lifecycle_without_task_leaks",
"EventQueueGet",
"active_download_count",
"dispatcher_running",
"get_recv_packets",
"get_sent_packets",
"seed-secret",
"queue-secret",
"asset-secret",
)
missing = [marker for marker in required_evidence if marker not in tests]
if missing:
raise SystemExit("fake-grid audit evidence missing: " + ", ".join(missing))
def check_bounded_policies() -> None:
expectations = {
"caps_http.rs": ("CapsHttpLimits", "max_redirects", "max_response_bytes"),
"download_manager.rs": ("DOWNLOAD_QUEUE_CAPACITY", "MAX_PARALLEL_DOWNLOADS"),
"event_queue.rs": ("EventQueuePolicy", "max_events_per_response", "max_event_nodes"),
"udp_transport.rs": (
"UdpTransportConfig",
"receive_queue_capacity",
"command_queue_capacity",
"write_queue_capacity",
),
}
source_root = ROOT / "crates" / "libremetaverse" / "src"
for name, markers in expectations.items():
source = (source_root / name).read_text()
missing = [marker for marker in markers if marker not in source]
if missing:
raise SystemExit(f"{name}: bounded policy evidence missing: " + ", ".join(missing))
def main() -> None:
check_owned_sources()
check_native_mapping()
check_fake_grid_gate()
check_bounded_policies()
print(
"milestone 08 audit: native networking sources contain no stubs; "
"fake-grid lifecycle, redaction, task cleanup, statistics, and bounded policies are present"
)
if __name__ == "__main__":
main()