Protected Static ReadonlyALLOWED_Allowed lifecycle transitions keyed on the model's CURRENT status. The
lifecycle is Draft → Validated → Published → Archived, with the
conservative reversible edges Validated → Archived (abandon a candidate)
and Archived ↔ Published (un-archive / re-archive). Anything not listed
(e.g. Draft → Published) is rejected as an invalid jump.
ProtecteddetectDetermine whether the model was leakage-flagged by re-running the
single-feature-dominance check over its frozen FeatureImportance against the
producing pipeline's threshold.
OptionalcontextUser: UserInfoOptionalprovider: IMetadataProviderProtectedloadLoad the model as an entity_object (it is mutated to set Status).
OptionalcontextUser: UserInfoOptionalprovider: IMetadataProviderAttempt the promotion, enforcing the leakage sign-off gate.
ProtectedrecordPersist an auditable sign-off note for a leakage override. The model is immutable (no free-text column to write), so the override is recorded via the platform log (an operator-visible audit line) and returned in the outcome so the calling Action surfaces it. The note captures who/when/what-was-overridden and the supplied reason.
ProtectedresolveResolve the dominance threshold from the producing pipeline's LeakageGuard.
OptionalcontextUser: UserInfoOptionalprovider: IMetadataProviderProtectedsyncKeep the per-model scoring Action (PS2-2) in step with the model's new
lifecycle status — generate/refresh it on Published (the status that makes a
model usable for scoring) and disable it on Archived. This is a pure
enhancement, NOT part of the promotion contract: any failure is logged and
swallowed so it can never fail an otherwise-successful promotion.
OptionalcontextUser: UserInfoOptionalprovider: IMetadataProviderProtectedtransitionSet ONLY the lifecycle status and save; never touches metrics/artifact. Enforces the ALLOWED_TRANSITIONS state machine first — an illegal jump (e.g. Draft → Published) is refused before any mutation/save.
OptionalsignOffNote: stringOptionalcontextUser: UserInfoOptionalprovider: IMetadataProvider
Loads a model, enforces the leakage sign-off gate, and transitions its status.