Repository navigation
fix: share parallel task status enum - #241
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
WalkthroughParallel task statuses are centralized in a shared events enum with an ChangesParallel task status handling
Estimated code review effort: 3 (Moderate) | ~20 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
b049858 to
62e9bea
Compare
|
| Filename | Overview |
|---|---|
| pkg/compozy/events/kinds/task.go | Adds the shared parallel-task status type, constants, and integration predicate. |
| internal/core/run/parallel/orchestrator.go | Reuses the shared status contract for task outcomes and worktree cleanup. |
| internal/core/run/ui/integration.go | Uses exact shared status matching when settling live task-completion messages. |
| internal/core/run/ui/multi_remote.go | Uses the shared integration predicate when applying aggregate task outcomes. |
| internal/daemon/task_multi_artifacts.go | Uses the shared predicate to select task artifacts for synchronization. |
| pkg/compozy/events/kinds/task_test.go | Tests every canonical status and rejects empty, unknown, and padded values. |
| internal/core/run/ui/integration_test.go | Tests that padded status text cannot mark a task as successfully integrated. |
Reviews (4): Last reviewed commit: "fix: update status integration branch wi..." | Re-trigger Greptile
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@internal/core/run/ui/integration_test.go`:
- Around line 334-343: Apply the required Should... subtest naming convention:
in internal/core/run/ui/integration_test.go, wrap
TestParallelTaskCompletedRequiresCanonicalIntegratedStatus’s case in
t.Run("Should reject non-canonical integrated status", ...); in
pkg/compozy/events/kinds/task_test.go, prefix every table-driven subtest name
with "Should".
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 62c5de4e-a905-4445-97a1-5e711aa94ea3
📒 Files selected for processing (5)
internal/core/run/ui/integration.gointernal/core/run/ui/integration_test.gointernal/core/run/ui/multi_remote.gointernal/daemon/task_multi_artifacts.gopkg/compozy/events/kinds/task_test.go
🚧 Files skipped from review as they are similar to previous changes (1)
- internal/core/run/ui/multi_remote.go
pedronauck
left a comment
There was a problem hiding this comment.
Blocking the current head acc7b19 on the repository gate. I approved the previously action-required CI run, and its exact make verify execution on merge ref f25b724 failed in internal/daemon: TestRunManagerStartTaskWorktreeChildCleansUpAllocatedWorktreeOnLaunchFailure left the allocated worktree present after startup failure. The same focused race test fails deterministically 5/5 on this merge ref and 5/5 on current main fdfd45b. The PR diff does not touch that launch/cleanup path; this is inherited from main, where the #231 ownership change made startTaskWorktreeChild return the allocation to its caller while the existing invariant still requires internal cleanup.\n\nThe status-enum diff itself reviewed cleanly, but this repository requires the complete gate to pass with no exceptions. Please refresh the branch after the base cleanup contract is repaired, then obtain a green make verify run on the final merge ref and request re-review.
pedronauck
left a comment
There was a problem hiding this comment.
Updating the blocker for head acc7b19 after #230 landed. The inherited worktree-cleanup failure is now repaired on main, but this PR is currently CONFLICTING with main in internal/core/run/ui/integration.go and internal/core/run/ui/multi_remote.go. The change is not wholly redundant: the public TaskParallelTaskStatus API and centralized IsIntegrated contract remain useful. However, the conflict sites now contain the additional stall/recovery and triage behavior from #230, so the old patch cannot be merged safely as-is.\n\nPlease update the branch onto current main, preserve the unique public-enum/IsIntegrated behavior while retaining all #230 status and triage semantics, rerun the focused status tests, and obtain a green full make verify on the resulting final merge ref before requesting re-review. The current verify result is red and belongs to the obsolete pre-#230 merge tree.
|
@pedronauck The branch is now updated onto current Fresh verification on the resulting merge tree is green:
GitHub now reports the PR as mergeable. Please re-review when you have a chance. |
pedronauck
left a comment
There was a problem hiding this comment.
Re-reviewing current head f5332ef after the main update: the conflict resolution is correct and preserves the #230 stall, recovery, triage, and aggregate-task settlement semantics. The status-enum diff is statically clean, and focused race validation passed on the exact merge tree across the event truth table, UI protocol boundary and aggregate paths, daemon artifact sync, and parallel orchestrator scenarios. There are no remaining code findings in this diff. However, the required full make verify gate has not run on this merge tree. Both repository workflow runs are still action_required, and the authenticated GitHub PR-files endpoint currently returns an HTML/503 response; approving CI now would deterministically reproduce the pre-verification paths-filter failure already observed twice on #236. Keeping this head blocked until that endpoint returns JSON/200 and the exact merge tree completes make verify with zero issues. Once the service recovers, CI can be approved and this review can be cleared without any speculative code change.
pedronauck
left a comment
There was a problem hiding this comment.
Current head and exact merge tree are clear. Canonical workflow run 29541798534 verified merge SHA 2f73d0a: formatting passed, golangci-lint reported 0 issues, 4,780 Go tests passed (4 intentional skips), build passed, and 5 Playwright E2E tests passed.
Reverts six PRs that rode along on this branch but are independent of the Task Groups feature (verified: no task-group code depends on them): - compozy#234 cy-qa-workflow module + host.tasks.create v2 (extension SDK) - compozy#237 cy-capture-decisions extension - compozy#226 Kiro CLI ACP model handling - compozy#248 sync-test isolation (touched cy-capture-decisions) - compozy#252 release v0.2.15 prep - compozy#253 test-daemon reaping Kept the task-group-relevant infra: compozy#230 (multi-run recovery), compozy#236 (reviews-fix progress), compozy#241 (parallel task status), compozy#250 (task artifacts).
Problem
The canonical
verifygate is blocked under Go 1.26.4 by:This is a base failure rather than a defect introduced by downstream PRs such as #234: the affected UI file is identical to
main. Becauseverifyis required and the repository has a zero-issue policy, downstream PRs cannot merge while inheriting this failure.Root cause
Parallel-task terminal values—
merged,recovered,failed,skipped, andcanceled—form one domain, but consumers interpreted them through repeated string literals. The repeatedmergedvalue triggersgoconstunder the Go 1.26.4 lint environment.Fix
TaskParallelTaskStatusin the shared event contract with all five terminal per-task values.mergedandrecoveredmean task content reached the integration branch.IsIntegrated()in UI task settlement, worktree outcome decisions, and daemon artifact synchronization.mergedlabel.No lint suppression or unrelated workaround is included.
Tests
Impact
This removes the base
goconstfailure so #234 and other downstream PRs can update frommain, rerun CI, and be evaluated on their own changes.Verification
" merged "was accepted.make verifyFresh local results on Go 1.26.4:
All verification checks passedSummary by CodeRabbit
IsIntegratedhelper (integrated = merged/recovered).