Skip to content

Fix change-check semantics and baseline recording - #1

Merged
brennacodes merged 1 commit into
mainfrom
fix/change-check-semantics
Aug 31, 2026
Merged

brennacodes merged 1 commit into
mainfrom
fix/change-check-semantics

Conversation

@brennacodes

Copy link
Copy Markdown
Contributor

Summary

  • Corrects inverted on_change: proceed polarity: unchanged targets now
    return Passed (step satisfied), changed targets return Failed (step must
    re-run). Previously these were reversed.
  • Missing, unreadable, and oversized change targets now return Indeterminate
    instead of Failed, so the evaluator falls through to the next satisfaction
    signal rather than blocking the step.
  • Baselines are now recorded after each successful step execution, so change
    detection works without capturing a snapshot manually first. Dry-run
    executions do not record baselines.
  • evaluate_any now returns Indeterminate when all branches are Indeterminate,
    rather than collapsing to Failed.
  • A failing check no longer falls through to the rerun window - a step whose
    check explicitly reports work left to do is not considered satisfied.

Correct several pre-existing bugs in the change-check evaluation path:

- on_change: proceed had inverted polarity. Unchanged targets now return
  Passed (step's work is done) and changed targets return Failed (step
  must re-run). Previously these were reversed.

- Missing, unreadable, and oversized change targets returned Failed.
  They now return Indeterminate (no verdict), so the evaluator falls
  through to the next satisfaction signal rather than blocking the step
  on unhashable targets.

- Baselines were never recorded during bivvy run. CheckEvaluator now
  exposes record_run_baselines, called from both execution paths after
  each successful step. Dry-run executions are guarded and do not write
  baselines.

- evaluate_any collapsed an all-Indeterminate result set to Failed. It
  now returns Indeterminate when no branch passed and at least one was
  Indeterminate.

- A failing check could fall through to the rerun window, allowing a
  step to be skipped even when its check explicitly reported work left
  to do. The satisfaction hierarchy now short-circuits on Failed.

Also updates documentation, bundled templates, and the release workflow.
@brennacodes
brennacodes merged commit 419bcef into main Aug 31, 2026
1 check passed
@brennacodes
brennacodes deleted the fix/change-check-semantics branch August 31, 2026 00:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant