One analytical authority, multiple ways to investigate
Nemosyne separates analytical truth from representation and interaction. That boundary keeps desktop and WebXR experiences comparable without allowing device capability to change the analysis.
Production flow
typed data
→ Rust/WASM facts + canonical identity
→ compact DatasetEvidence
→ Moneta representation decision or NIL
→ TypeScript/three.js embodiment
→ investigation provenance
→ verified .nemosyne replay
Layer responsibilities
| Layer | Owns | Does not own |
|---|---|---|
| Rust/WASM | Analytical facts, identity, scale-sensitive computation | Presentation or interaction policy |
| Moneta | Bounded representation reasoning and abstention | Inventing analytical facts |
| TypeScript | Orchestration, persistence, UI, WebXR embodiment | Independent analytical fallback |
| Investigation | Decisions, discoveries, evidence references, replay | Unversioned hidden state |
Failure policy
If the kernel is unavailable, the runtime enters an explicit KernelUnavailable state. Capability flags describe telemetry and migration state; they do not select a JavaScript analytical route.
Current architectural risks
Large lifecycle coordinators, incomplete aggregate disposal, and linear production ray queries are the highest-priority structural risks. Their governed implementations are listed in the roadmap.