ci: a pull request runs only the journeys it can break (#1173) #1174

Merged
claude-bot merged 2 commits from ci/1173-fewer-journeys into main 2026-10-13 16:35:36 +00:00
Collaborator

Options 1, 2 and 4 of #1173 (and most of 3, since a Renovate PR is a pull request like any other). Options 5 and 6 are not in this change.

A new job, Which journeys does this change need?, decides the journeys matrix, in the shape audio_paths already uses:

Run Journeys
push to main, manual dispatch all three projects
PR from a chore/release-* branch all three
PR touching webapp/frontend/e2e/, scripts/journeys.sh, Dockerfile, a compose file, nginx.conf, package(-lock).json or ci.yml all three
PR whose every file is under bot/, docs/, changelog.d/, tools/, webapp/backend/evals/, webapp/backend/tests/, .claude/, or is a top-level .md none (job skipped)
any other PR desktop only
the diff cannot be read all three (fails open)

"Cannot affect" is an allow-list: a path not named runs the journeys.

One addition to the issue's option 1. A PR that adds or changes a spec still runs all three. On 12 to 13 Oct, three new specs failed in one project only (a pointer click in the keyboard project, for one); those are caught on the PR, not on main.

Cost, as the issue says: a phone-only or keyboard-only regression in product code is now caught on the push to main, after the merge. A release PR runs all three, so it is caught before a tag at the latest.

Verified

  • The workflow parses; journeys needs docker and the new job.
  • The decision script, run locally against seven sample change lists plus the release-branch, push and unreadable-diff cases, gives the table above.
  • This PR changes ci.yml, so its own run takes the all-three path through the dynamic matrix (fromJSON of a job output), which is the part not exercised before on this runner version.

Not verified: the desktop-only and skipped paths on a real run (the first ordinary PR after this merges will show them). Whether branch protection's CI / * accepts a run with no phone or keyboard check: audio_paths records that a skipped check is accepted, but absent matrix entries are a slightly different case.

🤖 Generated with Claude Code

Options 1, 2 and 4 of #1173 (and most of 3, since a Renovate PR is a pull request like any other). Options 5 and 6 are not in this change. A new job, `Which journeys does this change need?`, decides the `journeys` matrix, in the shape `audio_paths` already uses: | Run | Journeys | |---|---| | push to `main`, manual dispatch | all three projects | | PR from a `chore/release-*` branch | all three | | PR touching `webapp/frontend/e2e/`, `scripts/journeys.sh`, `Dockerfile`, a compose file, `nginx.conf`, `package(-lock).json` or `ci.yml` | all three | | PR whose every file is under `bot/`, `docs/`, `changelog.d/`, `tools/`, `webapp/backend/evals/`, `webapp/backend/tests/`, `.claude/`, or is a top-level `.md` | none (job skipped) | | any other PR | `desktop` only | | the diff cannot be read | all three (fails open) | "Cannot affect" is an allow-list: a path not named runs the journeys. **One addition to the issue's option 1.** A PR that adds or changes a spec still runs all three. On 12 to 13 Oct, three new specs failed in one project only (a pointer click in the keyboard project, for one); those are caught on the PR, not on `main`. **Cost, as the issue says:** a phone-only or keyboard-only regression in product code is now caught on the push to `main`, after the merge. A release PR runs all three, so it is caught before a tag at the latest. ## Verified - The workflow parses; `journeys` needs `docker` and the new job. - The decision script, run locally against seven sample change lists plus the release-branch, push and unreadable-diff cases, gives the table above. - This PR changes `ci.yml`, so its own run takes the all-three path through the dynamic matrix (`fromJSON` of a job output), which is the part not exercised before on this runner version. Not verified: the `desktop`-only and skipped paths on a real run (the first ordinary PR after this merges will show them). Whether branch protection's `CI / *` accepts a run with no phone or keyboard check: `audio_paths` records that a skipped check is accepted, but absent matrix entries are a slightly different case. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ci: a pull request runs only the journeys it can break (#1173)
Some checks failed
CI / Bot/backend version sync (pull_request) Successful in 29s
CI / Feedback site tests (pull_request) Successful in 48s
CI / Does this change touch the recording path? (pull_request) Successful in 25s
CI / Which journeys does this change need? (pull_request) Successful in 26s
CI / Backend lint (ruff) (pull_request) Successful in 1m30s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been cancelled
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Has been cancelled
CI / Frontend (shard 1/2) (pull_request) Has been cancelled
CI / Bot tests and audit (pull_request) Has been cancelled
CI / Frontend (shard 2/2) (pull_request) Has been cancelled
CI / Docker image build (pull_request) Has been cancelled
CI / Backend migration, tests, and audit (pull_request) Has been cancelled
2bfe45740d
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-bot scheduled this pull request to auto merge when all checks succeed 2026-10-13 16:02:04 +00:00
ci: the journeys plan sees renames and the whole backend tree (#1173)
All checks were successful
CI / Bot/backend version sync (pull_request) Successful in 35s
CI / Backend lint (ruff) (pull_request) Successful in 40s
CI / Docker image build (pull_request) Successful in 28s
CI / Does this change touch the recording path? (pull_request) Successful in 38s
CI / Which journeys does this change need? (pull_request) Successful in 37s
CI / Feedback site tests (pull_request) Successful in 55s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m12s
CI / Bot tests and audit (pull_request) Successful in 2m30s
CI / Frontend (shard 2/2) (pull_request) Successful in 9m13s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Successful in 11m12s
CI / End-to-end journeys (desktop) (desktop) (pull_request) Successful in 14m29s
CI / Frontend (shard 1/2) (pull_request) Successful in 24m59s
CI / End-to-end journeys (phone) (phone) (pull_request) Successful in 24m4s
CI / End-to-end journeys (keyboard) (keyboard) (pull_request) Successful in 25m48s
CI / Backend migration, tests, and audit (pull_request) Successful in 32m36s
528139ec88
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-bot deleted branch ci/1173-fewer-journeys 2026-10-13 16:35:37 +00:00
Sign in to join this conversation.
No description provided.