[SYMPP-23B6] Reactivate packages after final blocker resolution - #628
Merged
Conversation
Summary: - centralize final-blocker reactivation in the WorkPackage repository - apply the shared lifecycle rule to worker and architect resolution - cover multiple blockers, replay, terminal states, and architect resolution Rationale: - architect resolution previously left raw lifecycle status blocked - a shared owner keeps mark_ready legal without manual status repair Tests: - mix test blocker_lifecycle_test.exs worker_tools_09_test.exs comments_guidance_test.exs worker_tools_ready_gate_test.exs Co-authored-by: Codex <codex@openai.com>
Summary: - update the canonical architect blocker assertion for final resolution Rationale: - final blocker resolution now restores the package to active Tests: - mix test mcp_delivery_tools_test.exs blocker_lifecycle_test.exs worker_tools_09_test.exs comments_guidance_test.exs worker_tools_ready_gate_test.exs Co-authored-by: Codex <codex@openai.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (6)
Included review availability: Your plan includes up to 3 reviews per rolling hour; 1 remains after this review. 📝 WalkthroughWalkthroughChangesBlocker reactivation
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to The PR reactivates blocked WorkPackages after their final blocker is resolved while preserving remaining blockers and terminal states; no actionable merge-blocking risk remains after normal checks and review. Sequence Diagram(s)sequenceDiagram
participant ArchitectOrWorker
participant ProgressEvents
participant WorkPackageRepository
ArchitectOrWorker->>ProgressEvents: Record blocker resolution
ProgressEvents-->>ArchitectOrWorker: Resolution recorded
ArchitectOrWorker->>WorkPackageRepository: reactivate_if_unblocked/2
WorkPackageRepository-->>ArchitectOrWorker: Return updated or unchanged package
``
</details>
<!-- walkthrough_end -->
<!-- pre_merge_checks_walkthrough_start -->
<details>
<summary>🚥 Pre-merge checks | ✅ 5</summary>
<details>
<summary>✅ Passed checks (5 passed)</summary>
| Check name | Status | Explanation |
| :------------------------: | :------- | :---------------------------------------------------------------------------------------------------------------------- |
| Title check | ✅ Passed | The title clearly and concisely describes reactivation after the final blocker resolution. |
| Description check | ✅ Passed | The description includes all required sections and clearly explains the change, alternatives, and completed validation. |
| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. |
| Linked Issues check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |
| Out of Scope Changes check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |
</details>
</details>
<!-- pre_merge_checks_walkthrough_end -->
<!-- finishing_touch_checkbox_start -->
<details>
<summary>✨ Finishing Touches</summary>
<details>
<summary>📝 Generate docstrings</summary>
- [ ] <!-- {"checkboxId":"7962f53c-55bc-4827-bfbf-6a18da830691"} --> Create stacked PR
- [ ] <!-- {"checkboxId":"3e1879ae-f29b-4d0d-8e06-d12b7ba33d98"} --> Commit on current branch
</details>
<details>
<summary>🧪 Generate unit tests (beta)</summary>
- [ ] <!-- {"checkboxId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} --> Create PR with unit tests
- [ ] <!-- {"checkboxId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} --> Commit unit tests in branch `fix/resolved-blocker-reactivation`
</details>
</details>
<!-- finishing_touch_checkbox_end -->
<!-- tips_start -->
---
<sub>Comment `@coderabbitai help` to get the list of available commands.</sub>
<!-- tips_end -->
|
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.
Context
Architect blocker resolution recorded the final resolution but left the WorkPackage raw status blocked, so workers could not call
mark_readywithout manual status repair.TL;DR
Restore blocked WorkPackages to active after their final blocker is resolved.
Summary
Alternatives
Test Plan
make -C elixir allmake -C elixir ci-fullwhen release/full validation is requiredrvw_1e6d3be5)Summary by CodeRabbit
New Features
Bug Fixes
Tests