Skip to content

Waive stale MAE gate for direct-net repair - #38

Open
sheawinkler wants to merge 1 commit into
mainfrom
fix/direct-net-repair-promotion-gate
Open

Waive stale MAE gate for direct-net repair#38
sheawinkler wants to merge 1 commit into
mainfrom
fix/direct-net-repair-promotion-gate

Conversation

@sheawinkler

Copy link
Copy Markdown
Owner

Summary

  • Record active direct-net MAE/health in trainer status artifacts.
  • Preserve the global-MAE degradation check, but waive it only when the candidate clearly repairs a pathological active direct-net head, corpus coverage expanded materially, candidate direct-net health is OK, and Brier is not degraded.
  • Surface the decision as waived_issues=["global_mae_degraded_direct_net_repair"] plus explicit gate booleans instead of hiding the MAE degradation.

Evidence

  • Live candidate 20260519T130158Z-4ebc8ed7: active direct-net MAE 0.36497176542453535; candidate direct-net MAE 0.005188941983922394; candidate health OK; corpus expanded 49061 -> 183757 shadow rows.
  • Patched gate replay on that artifact returns ok=true, issues=[], waived_issues=["global_mae_degraded_direct_net_repair"].

Verification

  • python3 -m py_compile src/api/predictive_trainer.py tests/sidecar/test_predictive_trainer.py
  • uv run --with ruff ruff --isolated check src/api/predictive_trainer.py tests/sidecar/test_predictive_trainer.py
  • PYTHONPATH=/Users/sheawinkler/Documents/Projects/fastapi_sidecar uv run --with pytest --with pytest-asyncio pytest -p pytest_asyncio tests/sidecar/test_predictive_trainer.py -q -> 65 passed

Runtime

  • Python-only sidecar change; no Rust rebuild gate.

@sheawinkler

Copy link
Copy Markdown
Owner Author

Review evidence packet:

  • Current blocker this PR addresses: latest sidecar trainer run 20260519T130158Z-4ebc8ed7 is gated_off on gate:global_mae_degraded, while active model is stale and direct-net pathological.
  • Active direct-net MAE: 0.36497176542453535.
  • Candidate direct-net MAE: 0.005188941983922394.
  • Candidate direct-net health: ok=true.
  • Shadow corpus expansion: active 49061 shadow rows -> candidate 183757 shadow rows.
  • Candidate Brier: 0.15491637157440985; active Brier 0.13098749826096534; below configured degradation factor 1.25, so not p_positive_brier_degraded.
  • Patched gate replay on the actual artifact returns ok=true, issues=[], waived_issues=["global_mae_degraded_direct_net_repair"]. The global MAE degradation is still reported, not hidden.

Verification run locally on branch fix/direct-net-repair-promotion-gate:

python3 -m py_compile src/api/predictive_trainer.py tests/sidecar/test_predictive_trainer.py
uv run --with ruff ruff --isolated check src/api/predictive_trainer.py tests/sidecar/test_predictive_trainer.py
PYTHONPATH=/Users/sheawinkler/Documents/Projects/fastapi_sidecar uv run --with pytest --with pytest-asyncio pytest -p pytest_asyncio tests/sidecar/test_predictive_trainer.py -q

Result: 65 passed.

Runtime note: Python-only sidecar change. No Rust rebuild gate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant