Skip to content

SPT v2.0.5 Drift Report

Generated: 2026-03-11 Source: spt v2.0.5 comparison Target: spt (52 ported crates)

Executive Summary

Comprehensive comparison of spt's 52 ported crates against spt v2.0.5 revealed that:

  • Core functionality is in sync - All major features are properly ported
  • December 2025 mincut breakthrough - Already present in spt-mincut
  • Attention mechanisms - 81 mechanisms across 25 files (parity with spt)
  • Minor drift identified - 3 improvements backported

Changes Applied

1. spt-core: Clippy MSRV lint suppression

File: crates/spt-core/src/lib.rs

Added #![allow(clippy::incompatible_msrv)] to suppress warnings about MSRV-incompatible features. This is a standard lint suppression used by spt to allow usage of newer Rust features while maintaining the declared MSRV.

rust
#![allow(missing_docs)]
#![warn(clippy::all)]
#![allow(clippy::incompatible_msrv)]

2. spt-core: AgenticDB compile-time deprecation warning

File: crates/spt-core/src/lib.rs

Added compile-time deprecation warning that fires when the storage feature is enabled, reminding developers that AgenticDB uses placeholder hash-based embeddings and requires real embedding model integration for production.

rust
#[cfg(feature = "storage")]
#[allow(deprecated, clippy::let_unit_value)]
const _: () = {
    #[deprecated(
        since = "0.1.0",
        note = "AgenticDB uses placeholder hash-based embeddings. For semantic search, integrate a real embedding model (ONNX, Candle, or API). See /examples/onnx-embeddings for production setup."
    )]
    const AGENTICDB_EMBEDDING_WARNING: () = ();
    let _ = AGENTICDB_EMBEDDING_WARNING;
};

3. spt-core: AgenticDB unused field cleanup

File: crates/spt-core/src/agenticdb.rs

Changed dimensions field to _dimensions to indicate it's currently unused, following Rust convention and removing the need for #[allow(dead_code)] attribute.

rust
// Before
#[allow(dead_code)]
dimensions: usize,

// After
_dimensions: usize,

4. Workspace: nalgebra dependency

File: Cargo.toml

Added nalgebra to workspace dependencies for consistency with spt. This enables centralized version management for linear algebra operations.

toml
# Math and numerics
nalgebra = { version = "0.33", default-features = false, features = ["std"] }

Changes Reviewed but Not Applicable

Documentation Comments

All doc comment differences are intentional naming changes (spt -> spt, SPT -> SPTmind). These are correctly ported and require no changes.

Error Type Names

SptError is correctly renamed to SptError throughout the codebase. No changes needed.

Integration Module Names

  • spt-nervous-system/src/integration/spt.rs -> spt-nervous-system/src/integration/spt.rs

Correctly renamed. No changes needed.

spt-graph Warning Suppressions

spt-graph has several #![allow(...)] attributes that suppress warnings:

rust
#![allow(dead_code)]
#![allow(unused_imports)]
#![allow(unused_variables)]
#![allow(unused_assignments)]
#![allow(unused_mut)]
#![allow(unexpected_cfgs)]
#![allow(clippy::needless_range_loop)]
#![allow(clippy::if_same_then_else)]
#![allow(clippy::map_entry)]
#![allow(clippy::only_used_in_recursion)]
#![allow(clippy::large_enum_variant)]
#![allow(clippy::should_implement_trait)]

Decision: These are intentional suppressions that allow the graph crate to compile without warnings. While ideally these should be cleaned up, this is out of scope for drift check (would require code refactoring, not sync).

Changes Deferred for Later

Database Name in WASM

spt-wasm uses spt_db_ prefix for IndexedDB database names while spt uses spt_db_. This is intentional branding and requires no change.

Package-specific nalgebra Versions

Several crates (spt-solver, spt-math, prime-radiant) have their own nalgebra dependencies. The workspace dependency provides a fallback but individual crates may override. Review for version consolidation in a future task.

Verification Results

Crate Parity Check

Categoryspt Countspt CountStatus
Total crates52107N/A (only checking ported crates)
Attention mechanisms8181PARITY
Mincut modules3030PARITY

December 2025 Mincut Breakthrough

Status: PRESENT in spt

The deterministic exact fully-dynamic min-cut implementation from arXiv:2512.13105 is present in:

  • spt-mincut/src/fragmentation/mod.rs
  • spt-mincut/src/subpolynomial/mod.rs
  • spt-mincut/README.md (documented)

HIGH Priority Crates

CrateDrift Status
spt-coreMinor drift - FIXED
spt-sonaNaming only - OK
spt-nervous-systemNaming only - OK

MEDIUM Priority Crates

CrateDrift Status
spt-attentionNaming only - OK
spt-graphWarning suppressions - DEFERRED
spt-mincutNaming only - OK
spt-gnnNaming only - OK
sptllmNaming only - OK
spt-wasmNaming only - OK

LOW Priority Crates

CrateDrift Status
spt-router-coreIDENTICAL
spt-solverNaming only - OK
spt-mathNaming only - OK
prime-radiantNaming only - OK
spt-coherenceNaming only - OK
spt-verifiedNaming only - OK
spt-tiny-dancer-coreNaming only - OK
spt-domain-expansionNaming only - OK
spt-temporal-tensorNaming only - OK

Dependency Versions

DependencysptsptAction
nalgebraMISSING0.33ADDED
All othersSameSameOK

Conclusion

spt is well-synchronized with spt v2.0.5. The identified drift was minor (lint configuration, deprecation warning, unused field naming, workspace dependency). All major features including the December 2025 mincut breakthrough are present.

No API changes or functionality backports were required.

Released under the MIT License.