v0.1.3 — attestation fail-close and registry/teacher robustness
Highlights
- Training CI fail-closes forged attestation (#194): NRAS JWKS + claim binding (+ TDX when present/required) before eval tiers.
- Registry / export / teacher hardening (#195): no crash on bad prior registry rows; LF+UTF-8 sha pins; skip flaky teacher calls.
- Package version 0.1.3 (pyproject was still
0.1.1after the v0.1.2 tag). - Pairs with SparkProof v0.1.3 — Sol→Fable CoT recovery for better training datasets (details below).
SparkProof Sol→Fable CoT recovery (better training data)
SparkDistill students learn from SparkProof trajectories that wrap teacher reasoning in <think>…</think> before the verified Triton answer. GPT 5.6 Sol often returns only encrypted reasoning_details, so a Sol best-of-N win previously produced a verified kernel without a usable chain-of-thought for SFT.
SparkProof v0.1.3 (#31) fixes that for dataset miners:
- Best-of-N unchanged — still calls Claude Fable 5 + GPT 5.6 Sol, validates on Blackwell/Hopper, keeps the higher-scoring winner.
- When Sol wins with encrypted/empty CoT — SparkProof calls Fable again:
- Re-solve (preferred): Fable gets Sol’s verified kernel as a hint, produces its own full answer + plaintext engineering rationale, then re-validates on GPU. If it passes, that Fable trajectory is kept (
metadata.cot_recovery=fable_resolve). - Explain (fallback): if re-solve fails validation, Fable writes an inspectable rationale while Sol’s gold verified code stays the assistant answer (
metadata.cot_recovery=fable_explain).
- Re-solve (preferred): Fable gets Sol’s verified kernel as a hint, produces its own full answer + plaintext engineering rationale, then re-validates on GPU. If it passes, that Fable trajectory is kept (
- SFT export — skips encrypted reasoning JSON dumps so
<think>tags stay useful; prefers the original mining-task prompt (prompt_meta.prompt) as the user turn.
What this is / isn’t: this does not decrypt Sol’s private CoT. It produces Fable-authored, train-able rationales bound to hardware-verified kernels — aligned with SparkProof’s preference for inspectable engineering rationale over opaque encrypted traces.
Why it matters for SparkDistill: registry / canonical mining mixes built with SparkProof ≥ v0.1.3 should yield more rows with real <think> traces when Sol would otherwise have won “code-only,” improving distillation quality on Triton reasoning without weakening GPU validation or attestation.
Miners: upgrade SparkProof to v0.1.3 before the next dataset generation pass.
Also in this release
- Unattested training PRs cannot earn eval tiers.
- Repair-tier mix dedupe matches SparkProof task-prompt fingerprints.
- Dataset registry gate: clean
dataset:REJECTon malformed prior rows / invalid JSON (no CI traceback). - GPU corroboration uses
hwmodelclaims only (#149).
Full notes: see CHANGELOG.