WASM Capability Matrix

What runs in the shared Rust WASM core, and how far each capability is wired.

The shared crate is qntx-core / qntx-id. From there a capability travels three more steps to reach a user: browser.rs (#[wasm_bindgen] exports) → TS wrapper (web/ts/qntx-wasm.ts) → UI wired (used by a glyph or component).

Fully wired (browser + server)

All four steps done:

In Rust, partially wired

Already in the Rust core; the remaining steps are what's missing.

Capabilitybrowser.rsTS wrapperUI wired
ClassificationYesNoNo
Merkle syncYesNoNo
Cartesian expansionNoNoNo
Claim grouping/dedupNoNoNo

Go-only (candidates for migration)

These are currently implemented in Go. Moving them to Rust would let the browser use them offline.

CapabilityGo packageBlockerBrowser benefit
Alias resolutionats/alias/noneExpand queries locally without server
Conflict detectionats/ax/conflicts.gononePreview conflicts before submitting
SO action dispatchats/so/noneRecognize "so prompt" / "so csv" before submitting
Attribute schemaats/attrs/reflect — Rust has no runtime reflection, so struct-tag schemas need a redesign, not a translationSchema validation for glyph rendering

Server-only (not moving)

CapabilityWhy
SO prompt execution (ats/so/actions/prompt/)Holds a database/sql handle, calls ai/provider, submits through pulse/async
Pulse schedulingJob orchestration, goroutines, database-bound
EmbeddingsExternal model I/O, Rust FFI
Sync protocolWebSocket-bound, budget/quota coordination