feat: a pull request whose title matches a skipTitles pattern is skipped before any agent runs - #102
Merged
Merged
Conversation
…ped before any agent runs `skipTitles` holds regular-expression sources matched against the pull request title. A match is decided in the daemon — no worktree, no diffity server, no agent run — where the reviewer's free-text `filter` costs an agent run for every pull request it skips; the filter stays for what a regex cannot say. ↑ overrides a title skip as it overrides the filter and the CI hold, the title is answered before the CI hold (a skipped title has nothing to wait for), and the match is re-decided at every poll, so a retitle brings the pull request back to the queue. A review already prepared for an older head stays openable as `stale`, as it does under the CI hold. Patterns are compiled at parse time, so a typo is a refused config rather than a lost skip. The page's prepared cap is relabelled "Auto-prepare from queue": the number caps what the daemon prepares from the queue on its own, and a bumped pull request is prepared past it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What.
skipTitles: string[]in the inbox config — regular-expression sources matched against the pull request title. A match skips the pull request in the daemon, before any worktree, diffity server or agent run. Editable from the page's Settings panel, one pattern per line; the free-textfilterstays for what a regex cannot say.Why. A
\(payments\)orRelease$skip was costing an agent run and 0.2–1 minute per pull request, every time the head moved. A regex costs nothing.How it behaves. ↑ overrides a title skip, as it overrides the filter and the CI hold. The title is answered before the CI hold — a skipped title has nothing to wait for. The match is re-decided at every poll, so a retitle brings the pull request back to the queue (unlike a filter skip, which settles at its head). A review already prepared for an older head stays
staleand openable. Patterns are compiled at parse time, so a typo is a refused config (skipTitles[2] is not a valid regular expression: …) rather than a lost skip.Also, from the reviewer: the page's "Max prepared at once" is now labelled "Auto-prepare from queue" — the number caps what the daemon prepares on its own, and a bumped pull request is prepared past it. The config key
maxPreparedis unchanged.Verified.
npm run build,npm run typecheckand the fullnpm testgreen (CLI 575 tests / 64 files; 1227 across the workspace). New unit tests cover the config parse (accept, non-string, bad regex by name), the settings round-trip,titleSkipReason(first match wins, no match, escaped and anchored sources, an uncompilable pattern ignored),reconcile(fresh skip, bumped override, re-decided on retitle, ahead of the CI hold,stalekept openable, nothing said on a pull request it would not prepare),runTick(a matching title never reachesprepare) and the page fields plus the script parse-check.🤖 Generated with Claude Code
https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w