bug(di): CorrectionService missing checkpoint_service wiring in container #1180

Closed
brent.edwards wants to merge 1 commit from bugfix/m4-correction-checkpoint-wiring into master
Member

Summary

  • Wire CorrectionService DI provider with checkpoint_service in the application container.
  • Update plan correct CLI flow to resolve CorrectionService from the container (remove ad-hoc constructor path).
  • Convert regression/coverage helpers to mock container.correction_service() and remove @tdd_expected_fail from the issue #986 bug-capture feature now that behavior is fixed.

Additional test-hardening done while satisfying required quality gates

  • Stabilized intermittent Robot suites (resource_dag, rxpy_route_validation, wf07_cicd, and helper timeout) encountered during mandatory full quality-gate runs.

Validation

  • nox -e lint
  • nox -e typecheck
  • nox -e unit_tests
  • nox -e integration_tests
  • nox -e e2e_tests
  • nox -e coverage_report (97%)
  • full nox run completed (one integration flake observed once under heavy parallelism; session re-run cleanly)

Closes #986

## Summary - Wire `CorrectionService` DI provider with `checkpoint_service` in the application container. - Update `plan correct` CLI flow to resolve `CorrectionService` from the container (remove ad-hoc constructor path). - Convert regression/coverage helpers to mock `container.correction_service()` and remove `@tdd_expected_fail` from the issue #986 bug-capture feature now that behavior is fixed. ## Additional test-hardening done while satisfying required quality gates - Stabilized intermittent Robot suites (`resource_dag`, `rxpy_route_validation`, `wf07_cicd`, and helper timeout) encountered during mandatory full quality-gate runs. ## Validation - `nox -e lint` - `nox -e typecheck` - `nox -e unit_tests` - `nox -e integration_tests` - `nox -e e2e_tests` - `nox -e coverage_report` (97%) - full `nox` run completed (one integration flake observed once under heavy parallelism; session re-run cleanly) Closes #986
bug(di): CorrectionService missing checkpoint_service wiring in container
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 56s
CI / lint (pull_request) Successful in 3m21s
CI / build (pull_request) Successful in 15s
CI / helm (pull_request) Successful in 24s
CI / typecheck (pull_request) Successful in 4m13s
CI / security (pull_request) Successful in 4m16s
CI / integration_tests (pull_request) Successful in 6m59s
CI / unit_tests (pull_request) Successful in 7m42s
CI / docker (pull_request) Successful in 1m24s
CI / e2e_tests (pull_request) Successful in 12m29s
CI / coverage (pull_request) Successful in 11m40s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Successful in 54m3s
ca3be0eae5
Wire CorrectionService through DI by injecting checkpoint_service in the container and resolving correction handling from the container in plan correct CLI paths, so revert mode can execute rollback logic consistently across runtime entry points.\n\nUpdate regression and helper tests to mock container.correction_service instead of constructor patching, remove the expected-fail marker for issue #986, and include deterministic Robot stability fixes encountered while satisfying mandatory full nox/e2e quality gates.

ISSUES CLOSED: #986
brent.edwards added this to the v3.3.0 milestone 2026-03-28 21:28:39 +00:00
freemo approved these changes 2026-03-30 04:22:18 +00:00
Dismissed
freemo left a comment

Review: APPROVED

Surgically precise 1-line container fix with thorough, systematic test updates across 13 files. The widespread test migration from class patching to DI-based service resolution is exactly the right pattern. TDD tag correctly removed after fix.

## Review: APPROVED Surgically precise 1-line container fix with thorough, systematic test updates across 13 files. The widespread test migration from class patching to DI-based service resolution is exactly the right pattern. TDD tag correctly removed after fix.
freemo self-assigned this 2026-04-02 06:15:17 +00:00
Owner

Review claimed by reviewer pool instance reviewer-pool-2. Dispatching independent code review.

Review claimed by reviewer pool instance reviewer-pool-2. Dispatching independent code review.
Owner

Review claimed by reviewer pool instance reviewer-pool-1. Dispatching independent code review.

Review claimed by reviewer pool instance reviewer-pool-1. Dispatching independent code review.
freemo approved these changes 2026-04-02 17:55:08 +00:00
Dismissed
freemo left a comment

Independent Code Review: APPROVED

Summary

Clean, well-scoped bug fix for issue #986. Reviewed the full diff (13 files, +65/-67 lines) against the specification and project standards.

Core Fix (2 changes)

  1. container.py (+1 line): Adds checkpoint_service=checkpoint_service to the CorrectionService DI Singleton registration. This is the root cause fix — CorrectionService was registered without its checkpoint_service dependency, causing revert-mode corrections to silently skip checkpoint rollback.

  2. plan.py (-4/+1 lines): Replaces ad-hoc CorrectionService(event_bus=container.event_bus()) with container.correction_service(). This ensures the CLI uses the container-provided instance with proper wiring, consistent with how all other services are resolved.

Test Updates (9 files)

All test files systematically updated to mock container.correction_service.return_value instead of patching the CorrectionService class constructor. This correctly mirrors the new CLI behavior. The @tdd_expected_fail tag is properly removed from the TDD feature file now that the bug is fixed.

Integration Test Stabilization (4 files)

  • wf07_cicd.robot: Retry loop for config read-after-write propagation
  • helper_container_resolve_crash.py: Timeout 25s → 120s for parallel Robot runs
  • resource_dag.robot: StaticPool for SQLite thread safety + separate resource types for cycle detection
  • rxpy_route_validation.robot: Config file re-creation after context cleanup

Verification Checklist

  • Specification alignment: Correction engine + checkpoint rollback per spec §Corrections
  • DI pattern consistency: container.correction_service() matches existing patterns
  • Conventional Changelog commit format
  • Closes #986 in PR body
  • Type/Bug label + v3.3.0 milestone
  • Single atomic commit
  • No # type: ignore suppressions
  • No secrets or credentials
  • All acceptance criteria from issue #986 addressed

Minor Note (non-blocking)

PATCH_CORRECTION_SVC constant remains defined in tdd_plan_correct_plan_id_fixtures.py and exported in __all__ but is no longer imported by any consumer. This is pre-existing dead code and not introduced by this PR — can be cleaned up in a follow-up.

## Independent Code Review: APPROVED ### Summary Clean, well-scoped bug fix for issue #986. Reviewed the full diff (13 files, +65/-67 lines) against the specification and project standards. ### Core Fix (2 changes) 1. **`container.py`** (+1 line): Adds `checkpoint_service=checkpoint_service` to the `CorrectionService` DI Singleton registration. This is the root cause fix — `CorrectionService` was registered without its `checkpoint_service` dependency, causing revert-mode corrections to silently skip checkpoint rollback. 2. **`plan.py`** (-4/+1 lines): Replaces ad-hoc `CorrectionService(event_bus=container.event_bus())` with `container.correction_service()`. This ensures the CLI uses the container-provided instance with proper wiring, consistent with how all other services are resolved. ### Test Updates (9 files) All test files systematically updated to mock `container.correction_service.return_value` instead of patching the `CorrectionService` class constructor. This correctly mirrors the new CLI behavior. The `@tdd_expected_fail` tag is properly removed from the TDD feature file now that the bug is fixed. ### Integration Test Stabilization (4 files) - `wf07_cicd.robot`: Retry loop for config read-after-write propagation - `helper_container_resolve_crash.py`: Timeout 25s → 120s for parallel Robot runs - `resource_dag.robot`: `StaticPool` for SQLite thread safety + separate resource types for cycle detection - `rxpy_route_validation.robot`: Config file re-creation after context cleanup ### Verification Checklist - ✅ Specification alignment: Correction engine + checkpoint rollback per spec §Corrections - ✅ DI pattern consistency: `container.correction_service()` matches existing patterns - ✅ Conventional Changelog commit format - ✅ `Closes #986` in PR body - ✅ `Type/Bug` label + `v3.3.0` milestone - ✅ Single atomic commit - ✅ No `# type: ignore` suppressions - ✅ No secrets or credentials - ✅ All acceptance criteria from issue #986 addressed ### Minor Note (non-blocking) `PATCH_CORRECTION_SVC` constant remains defined in `tdd_plan_correct_plan_id_fixtures.py` and exported in `__all__` but is no longer imported by any consumer. This is pre-existing dead code and not introduced by this PR — can be cleaned up in a follow-up.
Owner

Review claimed by reviewer pool instance pr-reviewer-pool-2813550-1775153400. Dispatching independent code review.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer

Review claimed by reviewer pool instance pr-reviewer-pool-2813550-1775153400. Dispatching independent code review. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
freemo approved these changes 2026-04-02 18:18:42 +00:00
Dismissed
freemo left a comment

Independent Code Review: APPROVED (with merge conflict caveat)

Code Quality Assessment

The code changes in this PR are clean, well-scoped, and correct:

Core Fix (2 files)

  1. container.py (+1 line): Correctly adds checkpoint_service=checkpoint_service to the CorrectionService DI Singleton — root cause fix for silent checkpoint rollback skip.
  2. plan.py (-4/+1 lines): Properly replaces ad-hoc CorrectionService(event_bus=container.event_bus()) with container.correction_service(), ensuring consistent DI resolution.

Test Updates (5 Behave step files)
All systematically updated from class-constructor patching to container.correction_service.return_value mocking — correctly mirrors the new DI pattern. @tdd_expected_fail tag properly removed from the TDD capture feature.

Integration Test Stabilization (4 Robot files)

  • wf07_cicd.robot: Retry loop for config read-after-write propagation — good defensive fix
  • helper_container_resolve_crash.py: Timeout 25s → 120s for parallel runs — reasonable
  • resource_dag.robot: StaticPool for SQLite thread safety + separate resource types for cycle detection — correct fix
  • rxpy_route_validation.robot: Config file re-creation after context cleanup — ensures determinism

Verification Checklist

  • Specification alignment: Correction engine + checkpoint rollback per spec
  • DI pattern consistency: container.correction_service() matches codebase patterns
  • Conventional Changelog commit format: bug(di): ...
  • Closes #986 in PR body
  • Type/Bug label + v3.3.0 milestone
  • Single atomic commit
  • No # type: ignore suppressions
  • No secrets or credentials
  • Test updates are systematic and consistent

⚠️ MERGE BLOCKED: Conflicts + Superseded

This PR cannot be merged due to mergeable: false (merge conflicts with master). Furthermore, upon inspection of master, the core fix has already been applied through subsequent PRs:

  • container.py on master already has checkpoint_service=checkpoint_service wired
  • plan.py on master already uses container.correction_service()
  • All Behave step files on master already use the correction_service.return_value pattern
  • The @tdd_expected_fail tag is already removed on master
  • Issue #986 is already closed

Changes from this PR NOT yet on master:

  1. robot/e2e/wf07_cicd.robot — retry loop for config read-after-write (test stabilization)
  2. robot/resource_dag.robotStaticPool for SQLite thread safety + separate resource types for cycle detection
  3. robot/resource_dag.robot — separate robot/cycle-parent/robot/cycle-child types instead of single robot/cycle-type

These remaining test stabilization changes are valuable but should be submitted in a fresh PR since this one has conflicts and its primary purpose is already fulfilled.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer

## Independent Code Review: APPROVED (with merge conflict caveat) ### Code Quality Assessment The code changes in this PR are clean, well-scoped, and correct: **Core Fix (2 files)** 1. **`container.py`** (+1 line): Correctly adds `checkpoint_service=checkpoint_service` to the `CorrectionService` DI Singleton — root cause fix for silent checkpoint rollback skip. 2. **`plan.py`** (-4/+1 lines): Properly replaces ad-hoc `CorrectionService(event_bus=container.event_bus())` with `container.correction_service()`, ensuring consistent DI resolution. **Test Updates (5 Behave step files)** All systematically updated from class-constructor patching to `container.correction_service.return_value` mocking — correctly mirrors the new DI pattern. `@tdd_expected_fail` tag properly removed from the TDD capture feature. **Integration Test Stabilization (4 Robot files)** - `wf07_cicd.robot`: Retry loop for config read-after-write propagation — good defensive fix - `helper_container_resolve_crash.py`: Timeout 25s → 120s for parallel runs — reasonable - `resource_dag.robot`: `StaticPool` for SQLite thread safety + separate resource types for cycle detection — correct fix - `rxpy_route_validation.robot`: Config file re-creation after context cleanup — ensures determinism ### Verification Checklist - ✅ Specification alignment: Correction engine + checkpoint rollback per spec - ✅ DI pattern consistency: `container.correction_service()` matches codebase patterns - ✅ Conventional Changelog commit format: `bug(di): ...` - ✅ `Closes #986` in PR body - ✅ `Type/Bug` label + `v3.3.0` milestone - ✅ Single atomic commit - ✅ No `# type: ignore` suppressions - ✅ No secrets or credentials - ✅ Test updates are systematic and consistent ### ⚠️ MERGE BLOCKED: Conflicts + Superseded **This PR cannot be merged** due to `mergeable: false` (merge conflicts with master). Furthermore, upon inspection of master, **the core fix has already been applied** through subsequent PRs: - `container.py` on master already has `checkpoint_service=checkpoint_service` wired - `plan.py` on master already uses `container.correction_service()` - All Behave step files on master already use the `correction_service.return_value` pattern - The `@tdd_expected_fail` tag is already removed on master - Issue #986 is already closed **Changes from this PR NOT yet on master:** 1. `robot/e2e/wf07_cicd.robot` — retry loop for config read-after-write (test stabilization) 2. `robot/resource_dag.robot` — `StaticPool` for SQLite thread safety + separate resource types for cycle detection 3. `robot/resource_dag.robot` — separate `robot/cycle-parent`/`robot/cycle-child` types instead of single `robot/cycle-type` These remaining test stabilization changes are valuable but should be submitted in a fresh PR since this one has conflicts and its primary purpose is already fulfilled. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-pr-self-reviewer
Owner

Review claimed by reviewer pool instance pr-reviewer-pool-2988182-1775156309. Dispatching independent code review.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer

Review claimed by reviewer pool instance pr-reviewer-pool-2988182-1775156309. Dispatching independent code review. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
freemo approved these changes 2026-04-02 19:05:12 +00:00
Dismissed
freemo left a comment

Independent Code Review: APPROVED (unmergeable — conflicts + superseded)

Code Quality Verdict

The code in this PR is correct, well-structured, and properly scoped. The implementation cleanly addresses all acceptance criteria from issue #986. I have no code-quality objections.

Detailed Assessment

Core Bug Fix (2 files) — Correct

  1. container.py (+1 line): Adds checkpoint_service=checkpoint_service to the CorrectionService DI Singleton. This is the precise root-cause fix — without it, revert-mode corrections silently skip checkpoint rollback because the dependency is never injected.
  2. plan.py (-4/+1 lines): Replaces ad-hoc CorrectionService(event_bus=container.event_bus()) with container.correction_service(). This eliminates the second failure path where the CLI bypassed the container entirely, ensuring consistent DI resolution matching all other service access patterns in the codebase.

Behave Step File Updates (4 files) — Correct
All step files systematically updated from class-constructor patching (patch(CorrectionService, return_value=...)) to DI-based mocking (container.correction_service.return_value = ...). This correctly mirrors the new CLI behavior and is the right testing pattern for DI-resolved services. The @tdd_expected_fail tag is properly removed from the TDD capture feature now that the bug is fixed.

Robot Helper Updates (3 files) — Correct

  • helper_plan_correct_tree_wiring.py: Removes dead _PATCH_CORRECTION_SVC constant, adds container.correction_service.return_value wiring — clean.
  • helper_tdd_plan_correct_plan_id.py: Same pattern migration — consistent.
  • helper_container_resolve_crash.py: Timeout 25s → 120s — reasonable for parallel Robot runs with startup/migration contention.

Integration Test Stabilization (3 Robot files) — Correct

  • wf07_cicd.robot: Retry loop (5 attempts, 1s sleep) for config read-after-write propagation — good defensive fix for CI flakiness.
  • resource_dag.robot: StaticPool for SQLite thread safety + separate robot/cycle-parent/robot/cycle-child resource types instead of self-referential robot/cycle-type — correct fix for both thread-safety and cycle detection semantics.
  • rxpy_route_validation.robot: Config file re-creation after context cleanup — ensures test determinism.

Verification Checklist

  • Specification alignment: Correction engine + checkpoint rollback per spec
  • DI pattern consistency: container.correction_service() matches codebase conventions
  • Conventional Changelog commit format: bug(di): ...
  • Closes #986 in PR body
  • Type/Bug label + v3.3.0 milestone
  • Single atomic commit
  • No # type: ignore suppressions
  • No secrets or credentials in code
  • Test updates are systematic and consistent across all affected files

⚠️ MERGE BLOCKED: Conflicts + Core Fix Superseded

This PR has mergeable: false (merge conflicts with master). Independent verification confirms the core fix has already landed on master through subsequent PRs:

File PR Change Master Status
container.py Add checkpoint_service wiring Already applied
plan.py Use container.correction_service() Already applied
tdd_correction_checkpoint_wiring.feature Remove @tdd_expected_fail Already applied
All 4 Behave step files DI mock pattern migration Already applied
helper_tdd_plan_correct_plan_id.py DI mock pattern Already applied
helper_container_resolve_crash.py Timeout 120s Already applied
rxpy_route_validation.robot Config recreation Already applied
robot/e2e/wf07_cicd.robot Retry loop Not on master
robot/resource_dag.robot StaticPool + separate types Not on master
robot/helper_plan_correct_tree_wiring.py Remove dead _PATCH_CORRECTION_SVC Dead code still on master

Recommendation: Close this PR. The 3 remaining changes (wf07 retry loop, resource_dag StaticPool/types, dead code cleanup) are valuable test stabilization improvements but should be submitted as a fresh PR from a rebased branch since this PR's primary purpose is fulfilled and it has irreconcilable conflicts.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer

## Independent Code Review: APPROVED (unmergeable — conflicts + superseded) ### Code Quality Verdict The code in this PR is **correct, well-structured, and properly scoped**. The implementation cleanly addresses all acceptance criteria from issue #986. I have no code-quality objections. ### Detailed Assessment **Core Bug Fix (2 files) — Correct** 1. **`container.py`** (+1 line): Adds `checkpoint_service=checkpoint_service` to the `CorrectionService` DI Singleton. This is the precise root-cause fix — without it, revert-mode corrections silently skip checkpoint rollback because the dependency is never injected. 2. **`plan.py`** (-4/+1 lines): Replaces ad-hoc `CorrectionService(event_bus=container.event_bus())` with `container.correction_service()`. This eliminates the second failure path where the CLI bypassed the container entirely, ensuring consistent DI resolution matching all other service access patterns in the codebase. **Behave Step File Updates (4 files) — Correct** All step files systematically updated from class-constructor patching (`patch(CorrectionService, return_value=...)`) to DI-based mocking (`container.correction_service.return_value = ...`). This correctly mirrors the new CLI behavior and is the right testing pattern for DI-resolved services. The `@tdd_expected_fail` tag is properly removed from the TDD capture feature now that the bug is fixed. **Robot Helper Updates (3 files) — Correct** - `helper_plan_correct_tree_wiring.py`: Removes dead `_PATCH_CORRECTION_SVC` constant, adds `container.correction_service.return_value` wiring — clean. - `helper_tdd_plan_correct_plan_id.py`: Same pattern migration — consistent. - `helper_container_resolve_crash.py`: Timeout 25s → 120s — reasonable for parallel Robot runs with startup/migration contention. **Integration Test Stabilization (3 Robot files) — Correct** - `wf07_cicd.robot`: Retry loop (5 attempts, 1s sleep) for config read-after-write propagation — good defensive fix for CI flakiness. - `resource_dag.robot`: `StaticPool` for SQLite thread safety + separate `robot/cycle-parent`/`robot/cycle-child` resource types instead of self-referential `robot/cycle-type` — correct fix for both thread-safety and cycle detection semantics. - `rxpy_route_validation.robot`: Config file re-creation after context cleanup — ensures test determinism. ### Verification Checklist - ✅ Specification alignment: Correction engine + checkpoint rollback per spec - ✅ DI pattern consistency: `container.correction_service()` matches codebase conventions - ✅ Conventional Changelog commit format: `bug(di): ...` - ✅ `Closes #986` in PR body - ✅ `Type/Bug` label + `v3.3.0` milestone - ✅ Single atomic commit - ✅ No `# type: ignore` suppressions - ✅ No secrets or credentials in code - ✅ Test updates are systematic and consistent across all affected files ### ⚠️ MERGE BLOCKED: Conflicts + Core Fix Superseded This PR has `mergeable: false` (merge conflicts with master). Independent verification confirms the core fix has already landed on master through subsequent PRs: | File | PR Change | Master Status | |------|-----------|---------------| | `container.py` | Add `checkpoint_service` wiring | ✅ Already applied | | `plan.py` | Use `container.correction_service()` | ✅ Already applied | | `tdd_correction_checkpoint_wiring.feature` | Remove `@tdd_expected_fail` | ✅ Already applied | | All 4 Behave step files | DI mock pattern migration | ✅ Already applied | | `helper_tdd_plan_correct_plan_id.py` | DI mock pattern | ✅ Already applied | | `helper_container_resolve_crash.py` | Timeout 120s | ✅ Already applied | | `rxpy_route_validation.robot` | Config recreation | ✅ Already applied | | `robot/e2e/wf07_cicd.robot` | Retry loop | ❌ Not on master | | `robot/resource_dag.robot` | StaticPool + separate types | ❌ Not on master | | `robot/helper_plan_correct_tree_wiring.py` | Remove dead `_PATCH_CORRECTION_SVC` | ❌ Dead code still on master | **Recommendation:** Close this PR. The 3 remaining changes (wf07 retry loop, resource_dag StaticPool/types, dead code cleanup) are valuable test stabilization improvements but should be submitted as a fresh PR from a rebased branch since this PR's primary purpose is fulfilled and it has irreconcilable conflicts. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-pr-self-reviewer
Owner

Review claimed by reviewer pool instance pr-reviewer-pool-3151342-1775157992. Dispatching independent code review.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer

Review claimed by reviewer pool instance pr-reviewer-pool-3151342-1775157992. Dispatching independent code review. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
Owner

Review claimed by reviewer pool instance pr-reviewer-pool-3151342-1775157992. Dispatching independent code review.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer

Review claimed by reviewer pool instance pr-reviewer-pool-3151342-1775157992. Dispatching independent code review. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
Owner

Review claimed by reviewer pool instance pr-reviewer-pool-3983434-1775170710. Dispatching independent code review.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer

Review claimed by reviewer pool instance pr-reviewer-pool-3983434-1775170710. Dispatching independent code review. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
freemo requested changes 2026-04-03 01:09:28 +00:00
Dismissed
freemo left a comment

Independent Code Review: REQUEST_CHANGES (unmergeable — conflicts + core fix superseded)

Code Quality Verdict

The code in this PR is correct and well-crafted. The implementation cleanly addresses all acceptance criteria from issue #986. I have no objections to the code quality, design, or test patterns.

Why This PR Cannot Be Merged

mergeable: false — This PR has merge conflicts with master in 5 files. I independently verified the conflicts using git merge-tree:

Conflicting File Conflict Type
features/steps/plan_cli_uncovered_region_coverage_steps.py Both branches added same DI mock line; PR adds comment
features/steps/plan_correct_tree_wiring_steps.py Both branches added same DI mock line; PR adds comment
features/steps/plan_explain_cli_coverage_steps.py Both branches added same DI mock line; PR adds comment
features/steps/tdd_plan_correct_plan_id_steps.py Both branches added same DI mock line; whitespace diff
features/tdd_correction_checkpoint_wiring.feature Both branches removed @tdd_expected_fail

Core Fix Already on Master

I independently verified that the primary bug fix has already been applied to master:

Change Master Status
container.py: checkpoint_service=checkpoint_service wiring Already applied
plan.py: container.correction_service() instead of ad-hoc constructor Already applied
tdd_correction_checkpoint_wiring.feature: @tdd_expected_fail removed Already applied
All Behave step files: DI mock pattern migration Already applied (causing conflicts)

Issue #986 is already closed (2026-03-30).

Remaining Valuable Changes NOT on Master

These 3 test stabilization improvements from this PR have not landed on master and are worth preserving:

  1. robot/e2e/wf07_cicd.robot — Retry loop (5 attempts, 1s sleep) for config read-after-write propagation. Good defensive fix for CI flakiness.
  2. robot/resource_dag.robotStaticPool for SQLite thread safety + separate robot/cycle-parent/robot/cycle-child resource types for proper cycle detection semantics.
  3. robot/helper_plan_correct_tree_wiring.py — Dead _PATCH_CORRECTION_SVC constant still present on master (cleanup opportunity).

Additionally, robot/rxpy_route_validation.robot config file re-creation after context cleanup is not on master.

Recommendation

Close this PR. Submit the 4 remaining test stabilization changes as a fresh PR from a rebased branch. The core purpose of this PR (issue #986 fix) is already fulfilled on master.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer

## Independent Code Review: REQUEST_CHANGES (unmergeable — conflicts + core fix superseded) ### Code Quality Verdict The code in this PR is **correct and well-crafted**. The implementation cleanly addresses all acceptance criteria from issue #986. I have no objections to the code quality, design, or test patterns. ### Why This PR Cannot Be Merged **`mergeable: false`** — This PR has merge conflicts with master in 5 files. I independently verified the conflicts using `git merge-tree`: | Conflicting File | Conflict Type | |---|---| | `features/steps/plan_cli_uncovered_region_coverage_steps.py` | Both branches added same DI mock line; PR adds comment | | `features/steps/plan_correct_tree_wiring_steps.py` | Both branches added same DI mock line; PR adds comment | | `features/steps/plan_explain_cli_coverage_steps.py` | Both branches added same DI mock line; PR adds comment | | `features/steps/tdd_plan_correct_plan_id_steps.py` | Both branches added same DI mock line; whitespace diff | | `features/tdd_correction_checkpoint_wiring.feature` | Both branches removed `@tdd_expected_fail` | ### Core Fix Already on Master I independently verified that the primary bug fix has already been applied to master: | Change | Master Status | |---|---| | `container.py`: `checkpoint_service=checkpoint_service` wiring | ✅ Already applied | | `plan.py`: `container.correction_service()` instead of ad-hoc constructor | ✅ Already applied | | `tdd_correction_checkpoint_wiring.feature`: `@tdd_expected_fail` removed | ✅ Already applied | | All Behave step files: DI mock pattern migration | ✅ Already applied (causing conflicts) | Issue #986 is already **closed** (2026-03-30). ### Remaining Valuable Changes NOT on Master These 3 test stabilization improvements from this PR have **not** landed on master and are worth preserving: 1. **`robot/e2e/wf07_cicd.robot`** — Retry loop (5 attempts, 1s sleep) for config read-after-write propagation. Good defensive fix for CI flakiness. 2. **`robot/resource_dag.robot`** — `StaticPool` for SQLite thread safety + separate `robot/cycle-parent`/`robot/cycle-child` resource types for proper cycle detection semantics. 3. **`robot/helper_plan_correct_tree_wiring.py`** — Dead `_PATCH_CORRECTION_SVC` constant still present on master (cleanup opportunity). Additionally, `robot/rxpy_route_validation.robot` config file re-creation after context cleanup is not on master. ### Recommendation **Close this PR.** Submit the 4 remaining test stabilization changes as a fresh PR from a rebased branch. The core purpose of this PR (issue #986 fix) is already fulfilled on master. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-pr-self-reviewer
Owner

Merge conflict detected. This PR has mergeable: false — the branch has conflicts with master. The implementing agent needs to rebase this branch onto latest master before this PR can be reviewed and merged.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer

Merge conflict detected. This PR has `mergeable: false` — the branch has conflicts with master. The implementing agent needs to rebase this branch onto latest master before this PR can be reviewed and merged. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
Owner

🔒 Review claimed by reviewer-pool-1 [claim-token: reviewer-pool-1-1180-1775242400]


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer

🔒 Review claimed by reviewer-pool-1 [claim-token: reviewer-pool-1-1180-1775242400] --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
freemo requested changes 2026-04-03 18:48:26 +00:00
Dismissed
freemo left a comment

Independent Code Review: REQUEST_CHANGES (unmergeable — superseded by master)

Code Quality Assessment

The code in this PR is correct and well-implemented. The single-commit fix cleanly addresses all acceptance criteria from issue #986. No code quality objections.

Independent Verification — Core Fix Already on Master

I independently verified the current state of master:

File PR Change Master (verified via git show)
application/container.py:838 Add checkpoint_service=checkpoint_service Already present
cli/commands/plan.py:3011 Use container.correction_service() Already present
All 4 Behave step files DI mock pattern migration Already applied (causing conflicts)
tdd_correction_checkpoint_wiring.feature Remove @tdd_expected_fail Already applied

Merge Conflicts Confirmed

git merge-tree confirms conflicts in 5 files — all are trivial "both sides made the same change" conflicts in the Behave step files and feature file. This is because the fix landed on master through a different path.

Issue #986 Status

Issue #986 is already closed (2026-03-30). All acceptance criteria are satisfied on master.

Remaining Valuable Changes NOT on Master

These 3 test stabilization improvements have not landed on master and are worth preserving in a fresh PR:

  1. robot/e2e/wf07_cicd.robot — Retry loop (5 attempts, 1s sleep) for config set/get read-after-write propagation. Eliminates transient CI flakiness.
  2. robot/resource_dag.robotStaticPool for SQLite thread safety + separate robot/cycle-parent/robot/cycle-child resource types instead of self-referential robot/cycle-type. Fixes both thread-safety and cycle detection test semantics.
  3. robot/rxpy_route_validation.robot — Config file re-creation after context cleanup. Ensures test determinism when context deletion removes sibling files.

Recommendation

Close this PR. The primary bug fix (issue #986) is already on master. The 3 remaining Robot test stabilization changes should be submitted as a fresh PR from a rebased branch — they are independently valuable and should not be lost.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer

## Independent Code Review: REQUEST_CHANGES (unmergeable — superseded by master) ### Code Quality Assessment The code in this PR is **correct and well-implemented**. The single-commit fix cleanly addresses all acceptance criteria from issue #986. No code quality objections. ### Independent Verification — Core Fix Already on Master I independently verified the current state of master: | File | PR Change | Master (verified via `git show`) | |------|-----------|----------------------------------| | `application/container.py:838` | Add `checkpoint_service=checkpoint_service` | ✅ Already present | | `cli/commands/plan.py:3011` | Use `container.correction_service()` | ✅ Already present | | All 4 Behave step files | DI mock pattern migration | ✅ Already applied (causing conflicts) | | `tdd_correction_checkpoint_wiring.feature` | Remove `@tdd_expected_fail` | ✅ Already applied | ### Merge Conflicts Confirmed `git merge-tree` confirms conflicts in 5 files — all are trivial "both sides made the same change" conflicts in the Behave step files and feature file. This is because the fix landed on master through a different path. ### Issue #986 Status Issue #986 is **already closed** (2026-03-30). All acceptance criteria are satisfied on master. ### Remaining Valuable Changes NOT on Master These 3 test stabilization improvements have **not** landed on master and are worth preserving in a fresh PR: 1. **`robot/e2e/wf07_cicd.robot`** — Retry loop (5 attempts, 1s sleep) for config `set`/`get` read-after-write propagation. Eliminates transient CI flakiness. 2. **`robot/resource_dag.robot`** — `StaticPool` for SQLite thread safety + separate `robot/cycle-parent`/`robot/cycle-child` resource types instead of self-referential `robot/cycle-type`. Fixes both thread-safety and cycle detection test semantics. 3. **`robot/rxpy_route_validation.robot`** — Config file re-creation after context cleanup. Ensures test determinism when context deletion removes sibling files. ### Recommendation **Close this PR.** The primary bug fix (issue #986) is already on master. The 3 remaining Robot test stabilization changes should be submitted as a fresh PR from a rebased branch — they are independently valuable and should not be lost. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-pr-self-reviewer
Owner

🔒 Review claimed by reviewer-pool-1 [claim-token: reviewer-pool-1-1180-1775359200]


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer

🔒 Review claimed by reviewer-pool-1 [claim-token: reviewer-pool-1-1180-1775359200] --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
freemo requested changes 2026-04-05 03:31:05 +00:00
Dismissed
freemo left a comment

Independent Code Review: REQUEST_CHANGES (unmergeable — superseded)

Assessment

The code in this PR is correct and well-implemented — no code quality objections. However, this PR cannot and should not be merged for the following independently verified reasons:

1. Merge Conflicts (mergeable: false)

The PR has unresolvable merge conflicts with master. Forgejo reports mergeable: false.

2. Core Fix Already on Master

I independently verified container.py on master (SHA 9c99d39a) and confirmed:

correction_service = providers.Singleton(
    CorrectionService,
    checkpoint_service=checkpoint_service,
    event_bus=event_bus,
)

The checkpoint_service=checkpoint_service wiring — the root cause fix for this PR — is already present on master.

3. Issue #986 Already Closed

Issue #986 was closed on 2026-03-30 and already carries the State/Completed label. All acceptance criteria are satisfied on master.

Remaining Valuable Changes

These test stabilization improvements from this PR have NOT landed on master and are worth preserving in a fresh PR:

  1. robot/e2e/wf07_cicd.robot — Retry loop for config read-after-write propagation
  2. robot/resource_dag.robotStaticPool for SQLite thread safety + separate resource types for cycle detection
  3. robot/rxpy_route_validation.robot — Config file re-creation after context cleanup

Recommendation

Close this PR. The primary bug fix (issue #986) is already on master. The 3 remaining Robot test stabilization changes should be submitted as a fresh PR from a rebased branch.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer

## Independent Code Review: REQUEST_CHANGES (unmergeable — superseded) ### Assessment The code in this PR is **correct and well-implemented** — no code quality objections. However, this PR **cannot and should not be merged** for the following independently verified reasons: ### 1. Merge Conflicts (`mergeable: false`) The PR has unresolvable merge conflicts with master. Forgejo reports `mergeable: false`. ### 2. Core Fix Already on Master I independently verified `container.py` on master (SHA `9c99d39a`) and confirmed: ```python correction_service = providers.Singleton( CorrectionService, checkpoint_service=checkpoint_service, event_bus=event_bus, ) ``` The `checkpoint_service=checkpoint_service` wiring — the root cause fix for this PR — is **already present on master**. ### 3. Issue #986 Already Closed Issue #986 was closed on 2026-03-30 and already carries the `State/Completed` label. All acceptance criteria are satisfied on master. ### Remaining Valuable Changes These test stabilization improvements from this PR have NOT landed on master and are worth preserving in a fresh PR: 1. **`robot/e2e/wf07_cicd.robot`** — Retry loop for config read-after-write propagation 2. **`robot/resource_dag.robot`** — `StaticPool` for SQLite thread safety + separate resource types for cycle detection 3. **`robot/rxpy_route_validation.robot`** — Config file re-creation after context cleanup ### Recommendation **Close this PR.** The primary bug fix (issue #986) is already on master. The 3 remaining Robot test stabilization changes should be submitted as a fresh PR from a rebased branch. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-pr-self-reviewer
Owner

🔒 Review claimed by reviewer-pool-1 [claim-token: reviewer-pool-1-1180-1775364500]


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer

🔒 Review claimed by reviewer-pool-1 [claim-token: reviewer-pool-1-1180-1775364500] --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
freemo left a comment

Independent Code Review: REQUEST_CHANGES — PR Superseded, Should Be Closed

Independent Verification Summary

I independently verified the current state of master (SHA 329799a2) against this PR's changes:

PR Change Master Status Verification Method
container.py: Add checkpoint_service=checkpoint_service to CorrectionService DI Singleton Already present (line 838) git show origin/master:src/cleveragents/application/container.py
plan.py: Replace ad-hoc constructor with container.correction_service() Already present (line 3046) git show origin/master:src/cleveragents/cli/commands/plan.py
All Behave step files: DI mock pattern migration Already applied Confirmed via merge conflict analysis
tdd_correction_checkpoint_wiring.feature: Remove @tdd_expected_fail Already applied Confirmed via merge conflict analysis
resource_dag.robot: SQLite thread-safety fix Already addressed differently Master uses shared_session pattern instead of StaticPool
wf07_cicd.robot: Config read-after-write retry Already addressed Commit 998aaf25 on master
rxpy_route_validation.robot: Config file re-creation Already addressed Commit e4c01492 on master

Code Quality Assessment

The code in this PR is correct and well-implemented. No code quality objections. The single-commit fix cleanly addresses all acceptance criteria from issue #986.

Why This PR Cannot Be Merged

  1. mergeable: false — Forgejo reports merge conflicts with master
  2. Core fix already on master — The checkpoint_service wiring and container.correction_service() CLI change are already present
  3. Issue #986 already closed — Closed 2026-03-30 with State/Completed label
  4. Test stabilization changes also addressed — Master has addressed resource_dag.robot, wf07_cicd.robot, and rxpy_route_validation.robot through different commits

Recommendation

Close this PR. All changes — both the core bug fix and the test stabilization improvements — have been addressed on master through subsequent work. There are no remaining changes from this PR that need to be preserved.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer

## Independent Code Review: REQUEST_CHANGES — PR Superseded, Should Be Closed ### Independent Verification Summary I independently verified the current state of master (SHA `329799a2`) against this PR's changes: | PR Change | Master Status | Verification Method | |-----------|---------------|---------------------| | `container.py`: Add `checkpoint_service=checkpoint_service` to `CorrectionService` DI Singleton | ✅ Already present (line 838) | `git show origin/master:src/cleveragents/application/container.py` | | `plan.py`: Replace ad-hoc constructor with `container.correction_service()` | ✅ Already present (line 3046) | `git show origin/master:src/cleveragents/cli/commands/plan.py` | | All Behave step files: DI mock pattern migration | ✅ Already applied | Confirmed via merge conflict analysis | | `tdd_correction_checkpoint_wiring.feature`: Remove `@tdd_expected_fail` | ✅ Already applied | Confirmed via merge conflict analysis | | `resource_dag.robot`: SQLite thread-safety fix | ✅ Already addressed differently | Master uses `shared_session` pattern instead of `StaticPool` | | `wf07_cicd.robot`: Config read-after-write retry | ✅ Already addressed | Commit `998aaf25` on master | | `rxpy_route_validation.robot`: Config file re-creation | ✅ Already addressed | Commit `e4c01492` on master | ### Code Quality Assessment The code in this PR is **correct and well-implemented**. No code quality objections. The single-commit fix cleanly addresses all acceptance criteria from issue #986. ### Why This PR Cannot Be Merged 1. **`mergeable: false`** — Forgejo reports merge conflicts with master 2. **Core fix already on master** — The `checkpoint_service` wiring and `container.correction_service()` CLI change are already present 3. **Issue #986 already closed** — Closed 2026-03-30 with `State/Completed` label 4. **Test stabilization changes also addressed** — Master has addressed `resource_dag.robot`, `wf07_cicd.robot`, and `rxpy_route_validation.robot` through different commits ### Recommendation **Close this PR.** All changes — both the core bug fix and the test stabilization improvements — have been addressed on master through subsequent work. There are no remaining changes from this PR that need to be preserved. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-pr-self-reviewer
Owner

PR #1180 — Closing Recommendation

This PR has been independently reviewed and confirmed as fully superseded. All 13 file changes in this PR have already been addressed on master through subsequent work:

  • Core bug fix (container.py + plan.py): Already on master
  • Behave step file updates: Already on master (causing the merge conflicts)
  • Robot test stabilization (resource_dag.robot, wf07_cicd.robot, rxpy_route_validation.robot): Already addressed on master through different commits

Issue #986 is already closed with State/Completed. This PR should be closed without merge.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer

## PR #1180 — Closing Recommendation This PR has been independently reviewed and confirmed as **fully superseded**. All 13 file changes in this PR have already been addressed on master through subsequent work: - **Core bug fix** (`container.py` + `plan.py`): Already on master - **Behave step file updates**: Already on master (causing the merge conflicts) - **Robot test stabilization** (`resource_dag.robot`, `wf07_cicd.robot`, `rxpy_route_validation.robot`): Already addressed on master through different commits Issue #986 is already closed with `State/Completed`. This PR should be closed without merge. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-pr-self-reviewer
freemo closed this pull request 2026-04-05 04:57:56 +00:00
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 56s
Required
Details
CI / lint (pull_request) Successful in 3m21s
Required
Details
CI / build (pull_request) Successful in 15s
Required
Details
CI / helm (pull_request) Successful in 24s
CI / typecheck (pull_request) Successful in 4m13s
Required
Details
CI / security (pull_request) Successful in 4m16s
Required
Details
CI / integration_tests (pull_request) Successful in 6m59s
Required
Details
CI / unit_tests (pull_request) Successful in 7m42s
Required
Details
CI / docker (pull_request) Successful in 1m24s
Required
Details
CI / e2e_tests (pull_request) Successful in 12m29s
CI / coverage (pull_request) Successful in 11m40s
Required
Details
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Successful in 54m3s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core!1180
No description provided.