Commit 0d4bf03
committed
feat(package): sentinel, a spectral online anomaly spectrometer
Hierarchical online subspace anomaly detection for positionally
structured observation streams (e.g. IPv6 addresses), generic over
coordinate type, accumulator type, and domain bit-width.
The sentinel maintains per-cell low-rank linear subspace models and
scores each incoming batch via streaming thin SVD with exponential
forgetting. It produces raw statistical measurements — never opinions.
Core implementation:
- SpectralSentinel<C,V,N> engine with Sentinel128/Sentinel64 aliases
- G-V Graph integration for adaptive spatial partitioning
- Analysis selector (top-K competitive cells, Steiner-closed ancestry)
- SubspaceTracker per cell: Brand incremental SVD, EWMA baselines,
CUSUM change detection, four scoring axes (novelty, displacement,
surprise, coherence)
- Hierarchical coordination: SVD-based cross-cell scoring at internal
g-tree nodes with per-member breakdowns
- Automatic depth-tiered noise injection for cold-start warm-up
- Spatial decay via configurable attenuation and depth selectivity
- Serde support behind a feature flag
- BatchReport/HealthReport/CellInspection public report types
21 ADRs documenting design decisions (ADR-S-001 through ADR-S-021).
Full algorithm specification and implementation status docs.
Three-level test suite:
- Unit tests inline and in src/tests/ (config, EWMA, CUSUM, tracker,
convergence, observation, analysis set, variance, clipping)
- Crate tests in tests/ covering: API surface, ancestor chains,
clip pressure, coordination, coverage matrix, decay, determinism,
deferred warm-up, edge cases, graph routing, health, integration,
invariants, noise injection, report structure, serde round-trips,
spray resistance, suffix analysis, u64 path, and warm-up sequence
- Benchmarks (sentinel.rs)1 parent 5227ea5 commit 0d4bf03
89 files changed
Lines changed: 31433 additions & 43 deletions
File tree
- packages/sentinel
- adr
- benches
- docs
- src
- maths
- tests
- sentinel
- tests
- tests
- common
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
55 | 56 | | |
56 | 57 | | |
57 | 58 | | |
| |||
0 commit comments