Project releases

Sublinear Time Solver closes 17 NaN panics and two CVE paths

This Rust and WASM solver exposes sublinear algorithms as MCP tools with no install. An August 2 commit fixed 17 NaN induced panics and pulled in npm and wasm-pack security updates.

GitHub activity: · Published:

What it is

Some very large linear systems can be solved without reading the whole matrix. This project implements that family of sublinear algorithms in Rust, compiles them to WebAssembly, and exposes them as MCP tools so an agent can call them directly.

Every solver declares its worst case complexity class at the type level, which means the cost of a method is part of its signature rather than a footnote.

What changed

Commit 6ef4576 is a hardening pass: 17 places where a NaN input could panic the solver, plus npm uuid and wasm-pack advisories and RUSTSEC warnings. Release v1.6.0 earlier in the year had already closed issue #19, an arbitrary file write in the MCP tools.

The v1.7.x releases completed ADR-001, which added MCP advertisement, budget enforcement and runtime complexity introspection over the wire.

Get started

Node 18 or newer. No install needed to serve it as an MCP tool:

npx sublinear-time-solver mcp

Expected result: the MCP server starts and advertises its solver tools to the connected host.

The CLI works standalone too:

npx sublinear-time-solver generate -t diagonally-dominant -s 1000 -o matrix.json
npx sublinear-time-solver solve -m matrix.json -b vector.json -o solution.json

Expected result: a generated test matrix and a written solution file.

Run at 1.6.0 or newer. Earlier versions carry the file write issue closed in that release.

Use it today

Practical case: an agent that needs a numerical answer inside a reasoning loop. Input is a matrix and a vector. Workflow is register the MCP server, let the agent call solve, read the result. Output is a solution plus a declared complexity class.

Acceptance test: solve the generated diagonally dominant matrix with the neumann method and then with forward-push, and confirm the solutions agree within tolerance.

Push it further

Experimental commentary. The repository reaches well past linear algebra into psycho symbolic reasoning and temporal prediction. Treat that surface as exploratory.

Limitation: the framing around emergence and consciousness is not a measurable claim. Falsifiable test: call estimateComplexityClass on a method and check the reported class against the runtime you actually observe as the problem grows.

Read the original on GitHub commit

Commit 6ef4576 — 17 NaN panic fixes plus npm uuid and wasm-pack CVEs

Sublinear Time Solver repository

Back to the newsroom