Skip to content

Commit 0d4bf03

Browse files
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

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

AGENTS.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,12 @@ carries a **package qualifier** so the target document is never ambiguous.
4747
ADR references (`ADR-T-001`, `ADR-R-001`, …) are an exception — they
4848
use their own `ADR-<PREFIX>-<NNN>` form without the `§` prefix.
4949

50-
| Prefix | Package | Example document |
51-
| ------ | -------------------- | -------------------------------- |
52-
| `T-` | Torrust (root crate) | |
53-
| `M-` | Mudlark | `packages/mudlark/docs/idea.md` |
54-
| `R-` | render-text-as-image | `packages/render-text-as-image/` |
50+
| Prefix | Package | Example document |
51+
| ------ | -------------------- | ------------------------------------- |
52+
| `T-` | Torrust (root crate) | |
53+
| `M-` | Mudlark | `packages/mudlark/docs/idea.md` |
54+
| `R-` | render-text-as-image | `packages/render-text-as-image/` |
55+
| `S-` | Sentinel | `packages/sentinel/docs/algorithm.md` |
5556

5657
### General Rules
5758

0 commit comments

Comments
 (0)