diff --git a/.cortexkit/WORKER.md b/.cortexkit/WORKER.md index d929a8218..fa4106623 100644 --- a/.cortexkit/WORKER.md +++ b/.cortexkit/WORKER.md @@ -20,7 +20,7 @@ A check that prints nothing and exits 0 is not a pass unless this guide says tha ### Build server jobs (`runon`) -- **Size the job to the work.** Each vCPU you request holds one of the server's shared slots for the whole job. A mutation loop recompiles one mutant at a time, and a single test binary uses about one core, so both use `linux,2c`. A full-suite gate uses `linux,8c` with a timeout of at most 7,200 s: jobs that small may run in a cloud sandbox when the build server is full, while larger or longer jobs wait for a server slot. +- **Size the job to the work.** Each vCPU you request holds one of the server's shared slots for the whole job. A filtered test run builds and runs one test binary, which uses about one core, so it uses `linux,2c`. Workers do not run the full suite; your head runs it once when it integrates several deliveries. If a job is refused with `queue_wait_exceeded` while waiting on permits (`waiting_on=permits`, or an older job ahead needs more free permits), resubmit it with fewer vCPUs (down to `linux,1c`) rather than waiting or asking: a smaller job compiles slower but starts. If the refusal says an earlier job still holds your workspace, fewer vCPUs won't help: wait for that job to finish, or stop it with `bash_kill` if it is yours and no longer needed. - **Commit first, then submit, in separate steps.** The job snapshots the checkout when it is accepted. A commit sent in the same parallel step can land after the snapshot. Print `git log -1` as the job's first line so the output shows what ran. - **Keep gate scripts out of ignored paths.** The job copies tracked and untracked files, but not ignored ones, so a script under `.cortexkit/` or `target/` is missing on the server. - **Write long output to a file inside the job and print a summary.** A job that streams tens of megabytes back can lose its connection and come back with an unknown result. @@ -68,5 +68,5 @@ New test files go under `src/__tests__/`. A guard fails the suite on any test fi Release snapshots are automatically prepared and validated by `release.sh` and the publish workflow, outside Git. To validate a saved snapshot without regenerating it: `node scripts/release-gate-v049.mjs --snapshot-dir --candidate`. -- Show a failing test before the fix. Show a mutation check for each fix: revert the fix, name the test that fails and paste the failure, restore, and show `git diff --stat` empty. +- Test what you changed, and only that. For a bug fix, add a test that fails without the fix. Run the filtered tests for the code you touched in one job, plus the Windows compile when you changed platform-specific code. Do not run the full suite, mutation or break checks (reverting a fix to show a test fails), or repeated runs to prove stability: each one recompiles the whole crate and holds a shared build-server slot. Your head integrates several deliveries and runs the full suite once. - If a gate could not run, say which one and why. Do not report it as passed. diff --git a/benchmarks/aft-search/slice-descriptors/land-worker-runon-stepdown.json b/benchmarks/aft-search/slice-descriptors/land-worker-runon-stepdown.json new file mode 100644 index 000000000..ebd574711 --- /dev/null +++ b/benchmarks/aft-search/slice-descriptors/land-worker-runon-stepdown.json @@ -0,0 +1,8 @@ +{ + "targeted_mechanism": "none", + "kind": "harness", + "slice_class": "non_ranking", + "fixtures": [ + "harness-goldens" + ] +} diff --git a/benchmarks/aft-search/slice-descriptors/land-worker-test-minimal.json b/benchmarks/aft-search/slice-descriptors/land-worker-test-minimal.json new file mode 100644 index 000000000..ebd574711 --- /dev/null +++ b/benchmarks/aft-search/slice-descriptors/land-worker-test-minimal.json @@ -0,0 +1,8 @@ +{ + "targeted_mechanism": "none", + "kind": "harness", + "slice_class": "non_ranking", + "fixtures": [ + "harness-goldens" + ] +}