Skip to content

The fast preflight runs the tests a change reaches, within a cap - #850

Merged
irparent merged 1 commit into
mainfrom
ci/local-loop
Oct 5, 2026
Merged

irparent merged 1 commit into
mainfrom
ci/local-loop

Conversation

@irparent

@irparent irparent commented Oct 5, 2026

Copy link
Copy Markdown
Member

What changes

Before Now
Tests in the fast preflight only the test files the branch added or changed, so a change to source alone reached CI having run no test locally every test file the change reaches through vitest's import graph (vitest list --changed), when there are at most 60. Above that, a change to a module most files import reaches hundreds, which is the whole suite and CI's job: it runs the branch's own and says so
Dashboard checks only when dashboard/ changed also when src/ changes, since the dashboard's tests import the server's modules
Lint and type checks on a developer's machine recomputed from scratch on every run eslint --cache and tsc --incremental, both kept under node_modules/.cache. CI starts fresh, so nothing changes there
Refusal on uncommitted changes suggested a stash asks for a commit; in a repository with several worktrees a stash is shared by all of them

Measured on this branch, which touches package.json, so every test counts as reached: the fast preflight's steps took 56–61 s, against 71–114 s on earlier branches. Listing the reached tests adds about 25 s. On the change that fenced stored text, the listing reached 105 test files; on the Dependabot change, none.

Tests

  • tests/preflight-mirrors-ci.test.ts: the reached files run when there are few, the branch's own when there are more than the cap (with the sentence saying so), the folders with their own CI jobs are left out, and the dashboard's checks follow src/ changes but the website's do not.
  • npm run preflight passed on this commit, twice.

🤖 Generated with Claude Code

- The fast run executed only the test files a branch added or changed, so
  a change to source alone reached CI having run no test locally. It now
  lists every test file the change reaches through vitest's import graph
  (vitest list --changed) and runs them when there are at most 60; above
  that (a change to a module most files import reaches hundreds, which is
  the whole suite and CI's job) it runs the branch's own and says so.
- The dashboard's checks also run when src/ changes: its tests import the
  server's modules.
- Lint and the type checks keep their work between runs on a developer's
  machine (eslint --cache, tsc --incremental, both under
  node_modules/.cache); CI starts fresh, so nothing changes there.
- The refusal on uncommitted changes no longer suggests a stash, which in
  a repository with several worktrees is shared by all of them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
website Ignored Ignored Oct 5, 2026 10:52pm UTC

@github-actions

github-actions Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Iris gate — 1 of 2 tripped --fail-on detector_veto

iris-eval ingest: 3 stored, 1 tripped --fail-on detector_veto (2 of 3 evaluated in dataset "release-gate")

Trace Verdict Basis Rules, classes or missing inputs Evidence
94c308f70012232e2ad405ae5169e777 failed detector_veto + risk_over_loss no_pii, pii_leak, credential_leak no_pii: AWS Access Key (output 45–65)
Verdict basis Traces
detector_veto 2
clean 1

Unjudged questions: task_completed (3), tool_use_correct (3) — a trace that did not carry what a rule needs.

tests/fixtures/ci-gate/traces.ndjson · 3 evaluated · dataset release-gate: 2 in the gate · exit 1 · what the bases mean

@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

Iris gate — 1 stored, nothing tripped --fail-on any

iris-eval ingest: 1 stored, 0 tripped --fail-on any

Verdict basis Traces
clean 1

Unjudged questions: task_completed (1), tool_use_correct (1) — a trace that did not carry what a rule needs.

tests/fixtures/ci-gate/clean.ndjson · 1 evaluated · exit 0 · what the bases mean

@irparent
irparent merged commit c69fdf9 into main Oct 5, 2026
73 checks passed
@irparent
irparent deleted the ci/local-loop branch October 5, 2026 23:20
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