Repository navigation
Add an opt-in verification gate to watch dispatches - #2360
omercangumus wants to merge 1 commit into
Conversation
🟡 Impact Analysis — PR #2360Risk tier: 🟡 MEDIUM 📊 Summary
🎯 Risk Factors
📦 Modules Affecteddocs (1 file)
root (1 file)
squad-cli (6 files)
tests (4 files)
|
🛫 PR Readiness Check
PR Scope: 📦🔧 Mixed (product + infrastructure)
|
| Status | Check | Details |
|---|---|---|
| ✅ | Single commit | 1 commit — clean history |
| ✅ | Not in draft | Ready for review |
| ✅ | Branch up to date | Up to date with dev |
| ❌ | Copilot review | No Copilot review yet — it may still be processing |
| ✅ | Changeset present | Changeset file found |
| ✅ | Scope clean | No .squad/ or docs/proposals/ files |
| ✅ | No merge conflicts | No merge conflicts |
| ✅ | Copilot threads resolved | No Copilot review threads |
| ❌ | CI passing | 15 check(s) still running |
Files Changed (12 files, +309 −6)
| File | +/− |
|---|---|
.changeset/watch-verification-gate.md |
+5 −0 |
docs/src/content/docs/features/ralph.md |
+12 −0 |
packages/squad-cli/src/cli/commands/watch/capabilities/execute.ts |
+1 −1 |
packages/squad-cli/src/cli/commands/watch/capabilities/index.ts |
+2 −0 |
packages/squad-cli/src/cli/commands/watch/capabilities/verification.ts |
+97 −0 |
packages/squad-cli/src/cli/commands/watch/external-loader.ts |
+1 −1 |
packages/squad-cli/src/cli/commands/watch/index.ts |
+38 −2 |
packages/squad-cli/src/cli/commands/watch/types.ts |
+1 −1 |
test/cli/watch-execute.test.ts |
+22 −0 |
test/cli/watch-process-tree.test.ts |
+19 −0 |
test/cli/watch-verification.test.ts |
+110 −0 |
test/cli/watch.test.ts |
+1 −1 |
Total: +309 −6
This check runs automatically on every push. Fix any ❌ items and push again.
See CONTRIBUTING.md and PR Requirements for details.
9f564c9 to
075ebde
Compare
|
Thanks Omer, the sequencing here is solid: verification after post-execute, opt-in, sequential stop on first failure. Two things block this from the security side so I am holding it for now.
Separately, the result currently only changes a board counter. Either let it act on the dispatched issue (block the next dispatch) or call it a report rather than a gate. Happy to re-review at a new head. This one will not make preview.4 as is, no rush. |
075ebde to
c6a16a5
Compare
|
Good catches, thanks. I removed the package.json autodetect; verification now only runs commands already set in watch.verify.commands, with a warning before they run. Timeouts use runProcessTreeCommand, and a failed check stops watch before another dispatch. I updated the docs and tests too. Pushed as c6a16a5; all checks are green. |
Run configured checks after successful dispatches and report local failures separately from remote CI. Closes github#1712 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
c6a16a5 to
02ac551
Compare
| const verifiedIssues = new Set<number>(); | ||
| let untrackedDispatches = 0; | ||
| for (const result of execResults.values()) { | ||
| if (!result.success || !result.data) continue; |
There was a problem hiding this comment.
Could you count dispatched issues even when the executor returns success: false? ExecuteCapability still returns the dispatched count and issue IDs after an agent fails or times out. This guard drops that result, so a round with only failed dispatches never runs the configured checks and can start another dispatch with partially edited files. Please derive the verification gate from dispatched work rather than executor success.
Summary
watch.verifycapability that runs configured commands, or detectedbuild,test, andlintscripts, after successful dispatches.Closes #1712
Checks
npm run lintpassed.npm run build -w packages/squad-sdkandnpm run build -w packages/squad-clipassed.jq, which is unavailable in this Windows environment, and unrelated integration tests timed out. This PR is draft pending GitHub CI.