Build replay-verified solver supervision corpus (VSS3-01, SLM-69)#343
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
Next review available in: 46 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Add a torch-free harness that turns main's canonical solver replay event-stream into a supervised support-set corpus for VSS3 residual guidance, with replay verification enabled by default. - solver_supervision.py: reads serialized solver events (solver_state / support_result / certified_deduction / decision / backtrack / nogood / solver_terminal), replay-verifies via replay_violations, and partitions values into supported / unsupported / unknown with per-value certificate + witness provenance; censors cost-to-go with explicit reasons; guards against cross-split state leaks, relabeled nogoods, and raw-text leakage; deterministic hashing. - build_solver_supervision.py: CLI producing manifest.json, rows/support_set.*.jsonl, and validation_report.json from a trace root. - test_solver_supervision.py: 14 tests covering the honesty invariants. - distill/__init__.py: defer the torch-backed sft import via PEP 562 __getattr__ (mirrors models/__init__.py) so the torch-free supervision module imports without torch; public API unchanged. Verification: 14 new tests pass; 62 solver no-regression tests pass; ruff, py_compile, repo_policy, and git diff --check all clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017NWyjZwGMUPHXZhtqQVzUJ
48e1401 to
ad67509
Compare
VSS3-01 (SLM-69): replay-verified solver supervision corpus
Adds a torch-free harness that turns main's canonical solver replay event-stream into a supervised support-set corpus for VSS3 residual guidance. Replay verification is enabled by default — only replay-valid states and
full-mode-verified certificates produce hard labels.What's here (5 files, +1496/−3)
src/slm_training/harnesses/distill/solver_supervision.py—SolverSupervisionBuilderreplays each trace (replay_violations) before emitting any row, then partitions each live hole domain intosupported/unsupported/unknownwith per-valuecertificate_ids_by_value/witness_digests_by_value.UNSUPPORTEDcomes only from a certificate-backedcertified_deduction;SUPPORTEDonly from a verifier-accepted witness; all supported alternatives are retained (the chosen value is not privileged). Cost-to-go is censored with explicit reasons on truncated / budget-stopped / nonterminal suffixes; a localnogoodis a hard-negative feature, never a global relabel. Cross-split state-leak guard; only ids/kinds/digests are stored (no raw source text); deterministic hashing.scripts/build_solver_supervision.py— CLI producingmanifest.json,rows/support_set.*.jsonl, andvalidation_report.json;--describedry-run writes nothing.tests/test_harnesses/distill/test_solver_supervision.py— 14 tests covering the honesty invariants.src/slm_training/harnesses/distill/__init__.py— defer the torch-backedsftimport via PEP 562__getattr__(mirrorsmodels/__init__.py) so the torch-free module imports without torch; public API unchanged.docs/design/iter-vss3-01-solver-supervision-20260718.md— dated build note.This PR was reduced to exactly the in-scope VSS3-01 change and rebased directly on
main— the earlier branch's out-of-scope re-implementations ofdsl/solver/, model code, dashboard assets, README/MODEL_CARD, and CI config were dropped (they conflict with or duplicate work already onmain).Honesty
No model or head is trained; nothing is published. Consuming this corpus to train a cost/energy head is the next issue (VSS3-02 / SLM-70). No ship gate is touched or weakened; fixture rows would establish wiring only and make no model-quality claim.
Verification (against current
main)pytest tests/test_harnesses/distill/test_solver_supervision.py→ 14 passedtest_solver_state/test_solver_closure/test_capsule_solver) → 62 passedruff check→ clean;python -m scripts.repo_policy→ ok;git diff --check→ cleantest_solver_trace.pyfails at collection (torchnot installed) identically on untouchedmain.🤖 Generated with Claude Code