Skip to content

feat(agent): run the ship gate on every push, draft included - #844

Merged
patroza merged 1 commit into
mainfrom
feat/prepush-static-gate
Aug 4, 2026
Merged

feat(agent): run the ship gate on every push, draft included#844
patroza merged 1 commit into
mainfrom
feat/prepush-static-gate

Conversation

@patroza

@patroza patroza commented Aug 4, 2026

Copy link
Copy Markdown
Member

Why

A draft push was free — no check, no lint, no tests. Broken commits reached
branches that reviewers and other agents pick up, and CI was the first thing to
notice.

What

The ship gate now runs on every agent push, whatever the PR state. This is a
library monorepo: the gate is pnpm checkpnpm lintpnpm test, with no
browser or API suite a draft could usefully defer, so there is nothing left to
exempt a draft from.

How

pre-push no longer resolves PR state at all — gh cannot change the outcome,
so asking it was only a way to fail. shouldRunShipGateOnPush is gone with its
last caller; resolveOpenPrState stays for the publish path.

The existing HEAD-SHA cache is unchanged, so pushing a commit and then
publishing it still pays for the gate once.

Remarks

Sibling PRs in macs-scanner and macs-configurator keep a cheaper "static" scope
for drafts, because those gates do have an expensive e2e half worth deferring.

Verified by this branch's own push: the full gate ran green before the branch
went up.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

A draft push was free: no check, no lint, no tests. That let broken commits
reach a branch reviewers and other agents pick up, and made CI the first thing
to notice.

This is a library monorepo — the gate is `pnpm check` → `pnpm lint` →
`pnpm test`, with no browser or API suite a draft could usefully defer — so it
now runs on every agent push whatever the PR state. The HEAD-SHA cache already
keeps a commit from being validated twice, so pushing then publishing still
pays once.

Pushes no longer consult `gh` at all: PR state cannot change the outcome.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@pkg-pr-new

pkg-pr-new Bot commented Aug 4, 2026

Copy link
Copy Markdown

Open in StackBlitz

@effect-app/cli

npm i https://pkg.pr.new/effect-app/libs/@effect-app/cli@844

effect-app

npm i https://pkg.pr.new/effect-app/libs/effect-app@844

@effect-app/eslint-codegen-model

npm i https://pkg.pr.new/effect-app/libs/@effect-app/eslint-codegen-model@844

@effect-app/eslint-shared-config

npm i https://pkg.pr.new/effect-app/libs/@effect-app/eslint-shared-config@844

@effect-app/infra

npm i https://pkg.pr.new/effect-app/libs/@effect-app/infra@844

@effect-app/vue

npm i https://pkg.pr.new/effect-app/libs/@effect-app/vue@844

@effect-app/vue-components

npm i https://pkg.pr.new/effect-app/libs/@effect-app/vue-components@844

commit: 48ae646

@patroza
patroza marked this pull request as ready for review August 4, 2026 10:19
@patroza
patroza merged commit c8397a4 into main Aug 4, 2026
6 checks passed
@patroza
patroza deleted the feat/prepush-static-gate branch August 4, 2026 10:19
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