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
add an explicit window-separated-core-contrast-v2 evaluator path while preserving the default candidate-v1 writer byte for byte
materialize exact minimum-span threshold-core admission evidence without hiding rejected selections
version the research oracle schema, add a committed v2 golden, and lock positive, negative, cross-version, and permutation-compatible behavior
Contract change
Affected producer:scripts/evaluate_episode_candidate.py research artifact only
Migration: additive and opt-in through --algorithm window-separated-core-contrast-v2
Backfill: none; existing v1 artifacts are not rewritten
Compatibility: default and explicit v1 output match both committed v1 goldens byte for byte; Detector::analyze(), CLI findings, and loglens.report.v3 are unchanged
Review decision record
Design decision: retain candidate-v1 selection as the evidence layer and materialize candidate-v2 admission as a separate, auditable policy projection
Main risk: consumers could misinterpret the fixed 2x research ratio as production calibration
Compatibility impact: none for v1 consumers; v2 is a new format bound to a distinct algorithm ID/version and required admission shape
Rollback path: remove the v2 algorithm branch, v2 schema definitions, and v2 golden; the unchanged v1 writer and artifacts require no migration
gitleaks git --log-opts="origin/main..HEAD" --redact --no-banner - no leaks
final diff review - 9 files; no runtime, public report, or build-contract files changed
Merge gate
Draft because this is a report/schema behavior change and the diff exceeds 500 lines including the committed golden. Keep open for delayed review; after CI passes, perform another diff review before marking ready.
The review found one schema permissiveness issue: candidate-v2 is defined around a fixed 2x admission ratio, but the schema previously accepted any positive rational. Commit 519ab1a pins the contract to {numerator: 2, denominator: 1} and adds a negative compatibility test.
Post-fix evidence:
independent v1 byte compatibility: 2/2 passed
episode test suite: 43/43 passed
CTest: 7/7 passed
Ruff and git diff --check: passed
gitleaks: no leaks across 5 commits
GitHub CI, Windows/Linux, CodeQL, Repo Sentinel, and fuzz smoke: all passed
final diff review: no remaining findings; no src/, include/, CMake, CLI finding, or loglens.report.v3 changes
Design decision: candidate-v1 selection remains visible evidence; opt-in candidate-v2 admission is a separate policy projection.
Main risk: the fixed 2x research ratio could be mistaken for production calibration.
Compatibility impact: default and explicit v1 remain byte-for-byte stable; v2 is additive and strictly version-bound.
Rollback path: remove the v2 evaluator branch, v2 schema definitions, and v2 golden; v1 requires no migration.
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
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.
Summary
window-separated-core-contrast-v2evaluator path while preserving the default candidate-v1 writer byte for byteContract change
scripts/evaluate_episode_candidate.pyresearch artifact only--algorithm window-separated-core-contrast-v2Detector::analyze(), CLI findings, andloglens.report.v3are unchangedReview decision record
Validation
python -m unittest tests.test_episode_candidate_compatibility- 2 passedpython -m unittest discover -s tests -p 'test_episode*.py'- 43 passedpython -m ruff check .- passedcmake --build build --config Debug- passedctest --test-dir build -C Debug --output-on-failure- 7/7 passedgitleaks git --log-opts="origin/main..HEAD" --redact --no-banner- no leaksMerge gate
Draft because this is a report/schema behavior change and the diff exceeds 500 lines including the committed golden. Keep open for delayed review; after CI passes, perform another diff review before marking ready.