Repository navigation
ci: run the Go race detector on the control-loop packages - #1676
Merged
Merged
Conversation
CI runs go test without -race. Agents report "race tests pass" from local runs, and two races still merged: #787 and #789 fixed test fakes that raced after landing. On their parent commits (ee416d1, 5d5f810) this check fails with WARNING: DATA RACE. .github/scripts/race.sh runs -race on the 16 package trees that share state with the control loop. The same command runs locally and in the new race job, which the required go test + vet check now waits for. All of them pass on master today.
The race detector slows code 5-10x, so the 3-second retention budget in TestForecastRetentionLargeOverflowWithinScoringBudget failed on CI with no data race. The plain test job still enforces the budget.
Signed-off-by: Fredrik Ahlgren <fredrik@sourceful-labs.com>
frahlg
marked this pull request as ready for review
October 17, 2026 05:44
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
frahlg
added a commit
that referenced
this pull request
Oct 17, 2026
…1679) * docs: propose a stepwise plan to make FTW safe for agents to change Agents write most of FTW, and review bots raised 1,150 findings on 573 of their pull requests. This plan groups those findings into recurring mistake classes, proposes a structural fix for each at the highest level that works, backtests each fix against the history, and orders the fixes into independently mergeable steps. Steps 1, 2 and 4 are draft PRs #1676, #1677 and #1678. tools/agent-pitfalls holds the script and the labels so a reviewer can rerun or spot-check every number. * docs: keep the pitfall lever under docs/ so the PR stays docs-only * docs: distinguish model estimates from executable evidence Signed-off-by: Fredrik Ahlgren <fredrik@sourceful-labs.com> --------- Signed-off-by: Fredrik Ahlgren <fredrik@sourceful-labs.com>
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.
Add the Go race detector to CI for the 16 package trees that share state with the control loop. The required
go test + vetcheck waits for it. Editing.github/scripts/race.shalone now selects the Core jobs, and the classifier test covers that case.Validation:
bash .github/scripts/test-change-classifier.shmake verify(tests, vet and build)The historical reproductions on the parents of #787 and #789 found races in test fixtures. They prove that
-racedetects those exercised races; they do not show a production race or establish coverage of ordering, restart or shutdown bugs. The proposed S2 lifecycle harness is outside this PR.The race run skips only
TestForecastRetentionLargeOverflowWithinScoringBudget, whose wall-clock assertion is unsuitable under race instrumentation. The plain Core job still runs it.Part of #1679. CI-only change; no changeset. Remains draft for the owner's merge decision.