Skip to content

ci(nix): put record back after sources, and record why the experiment failed - #447

Merged
EtienneLescot merged 1 commit into
mainfrom
claude/nix-revert-ordering
Aug 21, 2026
Merged

ci(nix): put record back after sources, and record why the experiment failed#447
EtienneLescot merged 1 commit into
mainfrom
claude/nix-revert-ordering

Conversation

@EtienneLescot

@EtienneLescot EtienneLescot commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

What this does

Reverts the block move from #438. Keeps the run_cli counter and the per-attempt labels from the same PR.

Why the experiment did not answer

It could not have. By the time it ran, record had started succeeding from its old position anyway — twice in a row, first attempt:

run ordering sources record
32408517738 old 2/5 0/3
32422772587 old 4/5 0/3
32475812049 old 3/5 0/3
32479979866 old 4/5 1/1 ✓
32480776100 old 3/5 1/1 ✓
32494267575 new 2/5 1/1 ✓

From position 4 record succeeded, which proves nothing it was not already doing from position 9. The contrast the A/B needed had disappeared from the baseline before the test ran.

sources came in at 2/5, which looks like the other half of the prediction and is not readable as such — the labels are what show why:

attempt 1/5 (run_cli #6)   → 31ms ✓
attempt 2/5 (run_cli #7)   → no return
attempt 3/5 (run_cli #8)   → no return
attempt 4/5 (run_cli #9)   → no return
attempt 5/5 (run_cli #10)  → 18ms ✓

Three failures bracketed by successes is a window, not a gradient. Position would predict monotonic decay with rank.

What the six runs did establish

More useful than the experiment would have been, and it is that the premise was wrong.

Enumeration is bimodal: 12–31ms when it answers, no return at all when it does not, with nothing in between across every measurement taken. The failures cluster by run, and by window within a run, not by command. The record-versus-sources gap that started all this — 1 in 10 against 13 in 20 — was that clustering seen through a denominator. I read it as a property of the record path; it is not one.

What stays

The counter and the labels. They cost nothing, and they are what makes the question answerable the next time a run actually fails — which is the condition for reopening it. The comment in the file now says the experiment was tried and why it is not worth a third attempt, so a bare revert does not leave the next person to have the same idea.

Verified

Workflow YAML parses; all four embedded run blocks pass bash -n. Invocation order is back to probes → --help → sources → record/export, confirmed against the extracted script. Stale ordering comments updated in both directions. No code changes.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Tests
    • Improved smoke-test sequencing for source enumeration and record/export validation.
    • Preserved bounded retries and detailed stage-specific error reporting.
    • Continued validation of successful source enumeration, recording, export, and MP4 output.
    • Updated test assertions to reflect the revised validation order.

… failed

The ordering experiment did not answer its question and could not have. By the
time it ran, record had started succeeding from its old position anyway -- twice
in a row, first attempt, 12-17ms -- so there was no contrast left to measure.
From position 4 it succeeded, which proves nothing it was not already doing from
position 9. Sources came in at 2/5, which looks like the other half of the
prediction and is not readable as such: the three failures fell at invocations
7, 8 and 9 with successes either side, which is a window rather than a gradient.

So the block goes back where it was. The comment says the experiment was tried
and why it is not worth a third attempt, because a bare revert would leave the
next person to have the same idea.

What the six runs did establish is that the premise was wrong, and that is worth
more than the experiment would have been. Enumeration is bimodal: 12-31ms when it
answers, no return at all when it does not, nothing in between across every
measurement taken. The failures cluster by run, and by window within a run, not
by command. The record-versus-sources gap that started this -- 1 in 10 against 13
in 20 -- was that clustering seen through a denominator. I read it as a property
of the record path and it was not one.

Kept: the run_cli counter and the per-attempt labels, which cost nothing and are
what makes the question answerable the next time a run actually fails. That is
the condition for reopening it.

Co-Authored-By: Claude <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: f52f713a-b043-4ccc-ab4b-f51e5e066c6b

📥 Commits

Reviewing files that changed from the base of the PR and between 6d60bb9 and aaf6697.

📒 Files selected for processing (1)
  • .github/workflows/nix-build.yml

Included review availability: Your plan provides up to 4 included reviews per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The smoke-test workflow now enumerates sources before running the record/export acceptance test. The acceptance test retains bounded retries, export gating, MP4 validation, stage-specific errors, and the final export verdict.

Changes

Smoke-test workflow

Layer / File(s) Summary
Source enumeration before record/export validation
.github/workflows/nix-build.yml
The record/export test moves after the sources loop. The workflow retains up to three recording attempts, exports only successful recordings, validates MP4 output, reports capture or export failures, and requires successful enumeration plus valid export for the final verdict.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to aaf66

This PR restores the prior CI workflow ordering while retaining diagnostic counters and labels; no actionable merge-blocking risk remains after normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the CI workflow change: restoring record after sources and documenting experiment failure.
Description check ✅ Passed The description provides a detailed summary, rationale, observed results, and testing details, but it does not use all template sections explicitly.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/nix-revert-ordering

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@EtienneLescot
EtienneLescot merged commit c4f2208 into main Aug 21, 2026
18 checks passed
@EtienneLescot
EtienneLescot deleted the claude/nix-revert-ordering branch August 21, 2026 20:33
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