Add one-use sealed synthetic CVRP check and honest trial coverage - #10
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.
The dashboard can prepare one fresh synthetic CVRP cohort and spend it exactly once. Candidate and seed-baseline bytes are frozen before generation, the six uniform and clustered EUC_2D cases at 50, 100 and 150 customers are written under the ignored sealed-release tree, and one OS-locked transition consumes the cohort before the first solver call. An interrupted or partial run stays consumed and the same candidate hash cannot be resealed.
Both solvers run through one immutable network-disabled Docker image on two matched private seeds per case. A trusted verifier reads an explicit sealed instance path, bounds route count and customer entries before distance work, and keeps only sanitized objectives, outcomes and failures. Dashboard reads require a regular non-symlink result whose SHA-256, cohort ID, schema and final state match the manifest, so edited or missing results display as invalid rather than completed.
The trial report is now a coverage report first. Its denominator is the configured 14-night two-track schedule, and clean rows require terminal research, a completed eligible retro, the scheduled requested arm, and a successful physical generation call routed as requested. Duplicates, operational extras, validation, zero-call and critique-only work, mismatch and fallback stay visible outside clean summaries.
Validation:
Every holdout result stays labeled synthetic and descriptive. It cannot publish, promote, feed prompts, or claim performance on unseen public benchmarks.