Expand description
Classifier drift detection and bounded refresh (bd-session-history-remediation-ocv9i.6.3).
Session history captured a subtle placement-integrity failure: the fleet had healthy free slots, yet RCH ran the build locally — not because of capacity or pressure, but because stale classifier state mis-decided the command until a refresh corrected it. That must be reported distinctly from “no capacity” and “critical pressure”, or operators chase the wrong cause.
This module is the pure detection + bounded-refresh contract:
assess_drift decides whether a local choice was genuine or a drift
(chose-local with healthy free slots, where a classifier refresh changes
the placement toward remote), classifies it DriftKind::Transient (refresh
restored remote placement) vs DriftKind::Persistent (refresh could not),
and records the before/after classification + selected-worker
ClassificationTransition. refresh_allowed bounds refresh attempts.
A persistent drift maps to AdmissionRejectionCategory::ClassifierLocalDrift
and is the distinct reason proof mode fails on.
Structs§
- Classification
Transition - The before/after picture across a classifier refresh.
- Drift
Observation - Observable inputs for drift detection. Plain data; pure assessment.
- Drift
Report - The drift report for admission/proof surfaces.
- Refresh
Budget - Bounded-refresh budget so a misclassification can trigger at most a fixed number of refreshes (a refresh storm is itself a failure mode).
Enums§
- Drift
Kind - The drift classification.
Functions§
- assess_
drift - Assess classifier drift. Pure and total.
- refresh_
allowed - Whether another classifier refresh is permitted given attempts already done.