You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
explorer + ci: V2 strength GP web hookup + artifact / parity gates
Hooks the V2 strength GP up to the in-browser BOxCrete explorer and
wires up the CI gates that enforce coherence between the deployed
boxcrete model and the published model artifacts.
JS-side V2 implementation (docs/explorer):
* docs/gp_v2_fast.mjs — pure-JS implementation of the V2 gated-kernel
posterior, optimised for the in-browser explorer.
* docs/feature_registry.mjs — JS port of the F5_alllog feature
builders to keep the JS path byte-identical to the Python path.
* docs/gp.mjs / docs/ui.mjs / docs/units.mjs — explorer integration.
* docs/generate_mix_analyses.py — produces per-mix analysis pages
consumed by the explorer.
* docs/model/README.md — documents the docs/model/ artifact layout.
* docs/model/strength.json + compositions.json + test_vectors.json —
refreshed model artifacts produced by the V2 fit.
CI gates:
* .github/workflows/strength-parity.yml — runs
test_pretrained_loader_fidelity.py to guard that
load_pretrained_strength_gp() faithfully reconstructs the deployed
V2 strength GP from docs/model/strength_model.pt.
* .github/workflows/model-artifacts-coherence.yml — guards that the
published docs/model/ artifacts match the boxcrete fit output
(catches stale artifacts after model code changes). Uses a
cross-architecture-portable numerical drift check
(experiments/check_artifacts_drift.py) instead of byte-level
git diff.
* .github/workflows/notebooks.yml + tests.yml — Python version
bumps to match pyproject.toml's requires-python = ">=3.11" and
BOXCRETE_SMOKE_TEST=1 env wiring for the notebook matrix.
Regen pipeline (invoked by the artifacts-coherence gate):
* experiments/regenerate_all_artifacts.sh — orchestrator.
* experiments/regenerate_strength_json.py — Python regen of
strength.json + test_vectors.json from a fresh V2 fit.
* experiments/augment_test_vectors_with_gwp_cost.mjs — adds GWP /
cost columns via the JS predictors.
* experiments/regenerate_compositions_strength_predictions.mjs —
regen of the static Pareto scatter dots.
CI helpers:
* experiments/check_artifacts_drift.py — numerical drift check.
* experiments/run_notebook_with_progress.py — cell-by-cell timing
helper used as a fast-fail step before nbconvert.
* experiments/measure_fit_stability.py — empirical run-to-run fit
determinism measurement (used during precision debugging).
JS-side regression tests:
* test/test_js_strength_v2.mjs — V2 posterior parity (Python vs JS).
* test/test_js_physical_constraints.mjs — JS-side f(x, t=0) = 0 guard.
* test/test_lengthscales_v2.mjs — JS-side lengthscale parity.
* test/test_curve_monotonicity.mjs — strength-curve monotonicity.
* test/test_data_freshness.mjs — guards that test_vectors.json is
derived from the same data the deployed model was fit on.
* test/test_js_ui_smoke.mjs — explorer UI smoke test.
0 commit comments