EMRY-013: Anomaly processor (NaN/Inf + loss-spike z-score) #58
No reviewers
Labels
No labels
blocked
bug
compat
docs
documentation
duplicate
emry-cli
emry-core
emry-engine
emry-ingest
emry-py
emry-store
emry-tui
emry-web
enhancement
good first issue
gpu-compute
help wanted
hpc
infra
integrations
invalid
needs-design
P0-blocker
P1-core
P2-enhanced
P3-future
performance
pull-request
python
pytorch
question
rust
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
femboy/emry!58
Loading…
Reference in a new issue
No description provided.
Delete branch "emry-013-anomaly"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes EMRY-013 (#11). Branched off
main.What
crates/emry-engine/src/anomaly.rs—AnomalyDetectorwatches one metric and emitsAlertRecords:Criticalalert immediately; the value is kept out of the window so it can't poison future z-scores. (This is the counterpart to EMA/Welford's 'reject, don't alert' — the detector is the single place that surfaces the bad value, closing the EMRY-002 'non-finite surfaces via Alert' contract.)Warningwhen a finite value's rolling z-score exceeds the threshold (default 4).Emits
AlertRecord(notDerivedMetric), so it's a standalone type, not aProcessor. Bus wiring (→Event::Alert) is deferred to EMRY-015. Gentle brand-voice copy.Verification
./scripts/pre-commit-rust.shgreen: clippy-D warnings, 34 engine tests, anomaly.rs 99% lines, total 95.60%Review-driven changes
std < f64::EPSILON(review conf 80).