Repository navigation
Resolve typed optimizer and study triage gaps - #99
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Typed optimizer feedback and study safeguards had eight triage gaps. This change validates requested candidate keys, emits fixed coarse rejection codes, propagates split/data failures, scopes hierarchy-only prompt rules, and verifies hostile teacher proposals/calibration isolation behavior. Prior-holdout exports now carry declared field identity, have a strict consumer roundtrip, and reject overlaps under old as well as new projections. Ownership-lock failures now distinguish modes, clean only empty newly created directories, and preserve racing content. Mixed-stage lineage is explicitly unknown.
Closes #86. All eight items are covered by scoped regressions; legacy raw holdout lists remain compatible without field-identity assurance. These software tests do not establish live model injection resistance or independent data review.
Validation: independent review passed; focused installed tests 136 passed, exporter regressions 12 passed, lock/security 36 passed, targeted independent acceptance tests 11 passed. Whole-tree Ruff passed. Final isolated commit a7ab004: full installed-DSPy-3.3.1 suite 618 passed, zero skipped, Ruff passed. All ten observed exact-head hosted checks passed across core Python 3.11–3.13 and optional DSPy 3.3.1/3.4.0. No paid calls or teacher uploads. A first isolated test attempt had two missing-package-import failures from absent subprocess PYTHONPATH; corrected environment, rerun passed. An unrelated mutable-worktree attempt failed during ongoing edits and is not used as acceptance evidence.