Cuts per-PR test time, as agreed. Most PRs run a short acceptance set; the full set runs when a PR is labelled for it, and always before a release.
Levels
Every PR:
lint;
unit tests across the runner's cores (pytest -n auto, new dev dependency pytest-xdist), with 16 property walks from a seed that moves with the run number;
integration tests;
the smoke end-to-end tests (@pytest.mark.smoke): the slice, a conversation filed as work, and a question.
A PR labelled e2e:full, a push to main, or a manual run: all 48 walks and the whole e2e suite. Adding e2e:full triggers that run (pull_request: labeled); adding any other label runs nothing. I've created the e2e:full label. Worth using on PRs that touch the loop's core: scheduling, milestones, parking, projects.
A published release:release.yml now runs the full set (tests job) before build-and-push, so no image exists until everything has passed.
Walk seeds come from NISSE_WALK_SEEDS and NISSE_WALK_FIRST; locally the default is still all 48 from 0.
Slow apt
The other agent's investigation found archive.ubuntu.com crawling, which took the sshd install in every job from 8 seconds to 3.5–9.5 minutes. The new scripts/ci-sshd.sh skips the install when the image already has sshd, and otherwise points apt at mirrors.edge.kernel.org first. I checked the rewrite on both 22.04 and 24.04 source layouts.
Measured
Locally: the unit tier on 2 workers took 3m 49s, against 6–8 minutes serially on this 2-core box. The runner has 4 cores.
In CI: this PR's own run is the first real test of the label logic, xdist on the runner and the mirror. It should run the smoke e2e only. If you add e2e:full afterwards, it'll run the full set too.
Not in this PR
Thinking mode for qwen in e2e (the long-output finding) waits for your call on a nothink LiteLLM alias.
Cuts per-PR test time, as agreed. Most PRs run a short acceptance set; the full set runs when a PR is labelled for it, and always before a release.
## Levels
- **Every PR:**
- lint;
- unit tests across the runner's cores (`pytest -n auto`, new dev dependency `pytest-xdist`), with **16 property walks** from a seed that moves with the run number;
- integration tests;
- the **smoke** end-to-end tests (`@pytest.mark.smoke`): the slice, a conversation filed as work, and a question.
- **A PR labelled `e2e:full`, a push to `main`, or a manual run:** all 48 walks and the whole e2e suite. Adding `e2e:full` triggers that run (`pull_request: labeled`); adding any other label runs nothing. I've created the `e2e:full` label. Worth using on PRs that touch the loop's core: scheduling, milestones, parking, projects.
- **A published release:** `release.yml` now runs the full set (`tests` job) before `build-and-push`, so no image exists until everything has passed.
- **Walk seeds** come from `NISSE_WALK_SEEDS` and `NISSE_WALK_FIRST`; locally the default is still all 48 from 0.
## Slow apt
The other agent's investigation found `archive.ubuntu.com` crawling, which took the sshd install in every job from 8 seconds to 3.5–9.5 minutes. The new `scripts/ci-sshd.sh` skips the install when the image already has sshd, and otherwise points apt at `mirrors.edge.kernel.org` first. I checked the rewrite on both 22.04 and 24.04 source layouts.
## Measured
- **Locally:** the unit tier on 2 workers took 3m 49s, against 6–8 minutes serially on this 2-core box. The runner has 4 cores.
- **In CI:** this PR's own run is the first real test of the label logic, xdist on the runner and the mirror. It should run the smoke e2e only. If you add `e2e:full` afterwards, it'll run the full set too.
## Not in this PR
Thinking mode for qwen in e2e (the long-output finding) waits for your call on a `nothink` LiteLLM alias.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
- Every PR: lint, unit tests across the runner's cores (pytest-xdist), 16
property walks from a seed that moves with the run number, integration
tests, and the end-to-end smoke tests (the slice, a conversation filed
as work, a question; `smoke` marker).
- A PR labelled e2e:full, a push to main, or a manual run: all 48 walks and
the whole end-to-end suite. Adding e2e:full to a PR runs it; any other
label runs nothing.
- A published release runs the full set before its image is built.
- The walk's seeds come from NISSE_WALK_SEEDS / NISSE_WALK_FIRST (48 from 0
by default).
Measured here: the unit tier on 2 workers took 3m49s against 6-8 minutes
serially.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
archive.ubuntu.com has been crawling (a few KB/s), taking the sshd install
in every job from 8 seconds to 3.5-9.5 minutes (another agent measured it;
the runner and inference-4090 were healthy). scripts/ci-sshd.sh skips the
install when the image has sshd, and otherwise points apt at
mirrors.edge.kernel.org first (both source layouts, 22.04 and 24.04).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
The e2e roles move to qwen3.8-27b-nothink, a LiteLLM alias for the same
model with chat_template_kwargs enable_thinking false. With thinking, a
growing share of answers ran to 2-8k tokens (two hit the 8192 cap), which
took one test from 3.5 to 20 minutes.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Cuts per-PR test time, as agreed. Most PRs run a short acceptance set; the full set runs when a PR is labelled for it, and always before a release.
Levels
pytest -n auto, new dev dependencypytest-xdist), with 16 property walks from a seed that moves with the run number;@pytest.mark.smoke): the slice, a conversation filed as work, and a question.e2e:full, a push tomain, or a manual run: all 48 walks and the whole e2e suite. Addinge2e:fulltriggers that run (pull_request: labeled); adding any other label runs nothing. I've created thee2e:fulllabel. Worth using on PRs that touch the loop's core: scheduling, milestones, parking, projects.release.ymlnow runs the full set (testsjob) beforebuild-and-push, so no image exists until everything has passed.NISSE_WALK_SEEDSandNISSE_WALK_FIRST; locally the default is still all 48 from 0.Slow apt
The other agent's investigation found
archive.ubuntu.comcrawling, which took the sshd install in every job from 8 seconds to 3.5–9.5 minutes. The newscripts/ci-sshd.shskips the install when the image already has sshd, and otherwise points apt atmirrors.edge.kernel.orgfirst. I checked the rewrite on both 22.04 and 24.04 source layouts.Measured
e2e:fullafterwards, it'll run the full set too.Not in this PR
Thinking mode for qwen in e2e (the long-output finding) waits for your call on a
nothinkLiteLLM alias.🤖 Generated with Claude Code
https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
New commits pushed, approval review dismissed automatically according to repository settings