test(integration): workflow example 15 — disaster recovery, rollback a failed apply (trusted profile) #951

Closed
brent.edwards wants to merge 1 commits from test/int-wf15-disaster-recovery into master
Member

Summary

  • Add Robot Framework integration test (robot/wf15_disaster_recovery.robot) for Specification Workflow Example 15: Disaster Recovery — Rollback a Failed Apply
  • Add Python helper (robot/helper_wf15_disaster_recovery.py) implementing 5 test subcommands
  • Tests cover: plan status after failed apply, decision tree with ROOT CAUSE investigation, plan explain with context and reasoning, plan rollback to checkpoint, plan correct --mode revert with guidance
  • Also fixes pre-existing test failures in database integration, architecture, providers, CLI core, and scientific paper tests

Quality Gates

  • nox -s lint — PASS
  • nox -s typecheck — PASS (0 errors)
  • nox -s integration_tests — All 5 WF15 tests PASS
  • nox -s coverage_report — 98% (>= 97%)
  • Helper file: 446 lines (under 500 limit)

Closes #779

## Summary - Add Robot Framework integration test (`robot/wf15_disaster_recovery.robot`) for Specification Workflow Example 15: Disaster Recovery — Rollback a Failed Apply - Add Python helper (`robot/helper_wf15_disaster_recovery.py`) implementing 5 test subcommands - Tests cover: plan status after failed apply, decision tree with ROOT CAUSE investigation, plan explain with context and reasoning, plan rollback to checkpoint, plan correct --mode revert with guidance - Also fixes pre-existing test failures in database integration, architecture, providers, CLI core, and scientific paper tests ## Quality Gates - `nox -s lint` — PASS - `nox -s typecheck` — PASS (0 errors) - `nox -s integration_tests` — All 5 WF15 tests PASS - `nox -s coverage_report` — 98% (>= 97%) - Helper file: 446 lines (under 500 limit) Closes #779
brent.edwards added the
Type
Testing
label 2026-03-14 05:52:29 +00:00
brent.edwards added this to the v3.2.0 milestone 2026-03-14 05:52:30 +00:00
brent.edwards reviewed 2026-03-14 19:50:53 +00:00
brent.edwards left a comment
Author
Member

Self-Review — PR #951

Reviewer: @brent.edwards (author self-review)
Review method: 4 parallel threads + 2 fresh-eyes passes

Structural Issue — Shared with PRs #949, #952, #953, #954, #955

P1:must-fix — Duplicate pre-existing fixes across 6 PRs

This PR modifies 9 files (architecture.robot, cli_core.robot, core_cli_commands.robot, database_integration.robot, scientific_paper_basic.robot, scientific_paper_e2e_test.robot, unit_of_work.py, providers/__init__.py, vulture_whitelist.py) that are identically modified in PRs #952-#955 and partially in #949. Merging the 2nd PR will produce conflicts in all shared files.

Remediation: These PRs must be merged in a defined sequence. After each merge, remaining PRs must be rebased onto updated master to drop the already-merged shared fixes.

PR-Specific Findings

P1:must-fix — Test case names missing WF15 prefix

robot/wf15_disaster_recovery.robot

All 5 test cases lack the WF15 prefix. Other helpers (WF03, WF12) use the prefix.

P1:must-fix — Missing reset_global_state() in dispatch

Same pattern issue as PRs #944 and #949.

Verdict

3 P1. Must sequence merges and fix naming before merge.

# Self-Review — PR #951 **Reviewer:** @brent.edwards (author self-review) **Review method:** 4 parallel threads + 2 fresh-eyes passes ## Structural Issue — Shared with PRs #949, #952, #953, #954, #955 ### P1:must-fix — Duplicate pre-existing fixes across 6 PRs This PR modifies 9 files (`architecture.robot`, `cli_core.robot`, `core_cli_commands.robot`, `database_integration.robot`, `scientific_paper_basic.robot`, `scientific_paper_e2e_test.robot`, `unit_of_work.py`, `providers/__init__.py`, `vulture_whitelist.py`) that are **identically modified** in PRs #952-#955 and partially in #949. Merging the 2nd PR will produce conflicts in all shared files. **Remediation:** These PRs must be merged in a defined sequence. After each merge, remaining PRs must be rebased onto updated master to drop the already-merged shared fixes. ## PR-Specific Findings ### P1:must-fix — Test case names missing `WF15` prefix `robot/wf15_disaster_recovery.robot` All 5 test cases lack the `WF15` prefix. Other helpers (WF03, WF12) use the prefix. ### P1:must-fix — Missing `reset_global_state()` in dispatch Same pattern issue as PRs #944 and #949. ## Verdict **3 P1.** Must sequence merges and fix naming before merge.
freemo reviewed 2026-03-14 22:10:11 +00:00
freemo left a comment
Owner

PM Status — Day 34 (2026-03-14)

PR is mergeable, well-structured, and passes all quality gates. WF15 (disaster recovery / rollback) is an M3 integration test — important for M3 closure.

Missing labels: This PR needs Priority/Medium, MoSCoW/Must have, and Points/3 labels added for tracking compliance.

Action: Ready for peer review. Recommend Jeff or Luis review the Robot Framework test logic. Merge priority is MEDIUM — M3 test coverage.

**PM Status — Day 34 (2026-03-14)** PR is mergeable, well-structured, and passes all quality gates. WF15 (disaster recovery / rollback) is an M3 integration test — important for M3 closure. **Missing labels:** This PR needs `Priority/Medium`, `MoSCoW/Must have`, and `Points/3` labels added for tracking compliance. **Action:** Ready for peer review. Recommend Jeff or Luis review the Robot Framework test logic. Merge priority is MEDIUM — M3 test coverage.
freemo added the
MoSCoW
Must have
Points
3
Priority
Medium
labels 2026-03-14 22:10:24 +00:00
brent.edwards force-pushed test/int-wf15-disaster-recovery from fc14f9dddd to b1956a295d 2026-03-15 04:39:22 +00:00 Compare
Author
Member

Response to Self-Review P1s

P1 — Duplicate pre-existing fixes across 6 PRs
Acknowledged. Will rebase after earlier PRs merge to drop duplicate shared fixes.

P1 — Test case names missing WF15 prefix
Will add WF15 prefix to all 5 test case names.

P1 — Missing reset_global_state() in dispatch
Will add to main dispatch.

Will fix all P1s and rebase when the merge sequence begins.

## Response to Self-Review P1s **P1 — Duplicate pre-existing fixes across 6 PRs** Acknowledged. Will rebase after earlier PRs merge to drop duplicate shared fixes. **P1 — Test case names missing `WF15` prefix** Will add `WF15` prefix to all 5 test case names. **P1 — Missing `reset_global_state()` in dispatch** Will add to main dispatch. Will fix all P1s and rebase when the merge sequence begins.
brent.edwards force-pushed test/int-wf15-disaster-recovery from b1956a295d to c2f025bf0a 2026-03-15 19:38:43 +00:00 Compare
freemo added a new dependency 2026-03-16 02:42:21 +00:00
freemo added a new dependency 2026-03-16 02:42:22 +00:00
Owner

PM Status — Day 36 (2026-03-16)

@brent.edwards — Self-review P1 response acknowledged (Day 35). The plan to rebase after earlier PRs merge and add WF15 prefixes is correct.

Note: This is M3 (v3.2.0) — Must Have priority. The integration test batch has a merge ordering dependency: earlier PRs in the sequence should merge first to reduce rebase churn.

Reviewer: @hurui200320 — please review after Brent pushes the P1 fixes. Target: Day 38 EOD.

Who Action Deadline
@brent.edwards Push P1 fixes, rebase after earlier PRs merge Day 37 EOD
@hurui200320 Review Day 38 EOD
## PM Status — Day 36 (2026-03-16) @brent.edwards — Self-review P1 response acknowledged (Day 35). The plan to rebase after earlier PRs merge and add WF15 prefixes is correct. **Note**: This is M3 (v3.2.0) — Must Have priority. The integration test batch has a merge ordering dependency: earlier PRs in the sequence should merge first to reduce rebase churn. **Reviewer**: @hurui200320 — please review after Brent pushes the P1 fixes. Target: Day 38 EOD. | Who | Action | Deadline | |-----|--------|----------| | @brent.edwards | Push P1 fixes, rebase after earlier PRs merge | Day 37 EOD | | @hurui200320 | Review | Day 38 EOD |
freemo requested review from freemo 2026-03-17 18:23:55 +00:00
freemo requested review from hamza.khyari 2026-03-17 18:23:55 +00:00
brent.edwards force-pushed test/int-wf15-disaster-recovery from 0dc4cb4b23 to 3d96ad85a7 2026-03-19 00:03:47 +00:00 Compare
Author
Member

Self-Review P1 Fixes Applied — Commit 3d96ad85

Branch squash-rebased onto origin/master. All merge commits eliminated. Self-review findings verified/fixed:

Finding Status
P1: Missing WF15 prefix on test names Already prefixed
P1: Missing reset_global_state() Already present
P1: Shared-file merge sequencing Resolved by rebase — unrelated files no longer in diff
Force Tags updated Fixed — added disaster-recovery, removed stale TDD tags
on_timeout=kill Fixed — all 5 Run Process calls
CHANGELOG entry for #779 Fixed
  • nox -s lintPASS
  • nox -s typecheckPASS (0 errors)
## Self-Review P1 Fixes Applied — Commit `3d96ad85` Branch squash-rebased onto `origin/master`. All merge commits eliminated. Self-review findings verified/fixed: | Finding | Status | |---------|--------| | **P1**: Missing WF15 prefix on test names | Already prefixed | | **P1**: Missing `reset_global_state()` | Already present | | **P1**: Shared-file merge sequencing | Resolved by rebase — unrelated files no longer in diff | | Force Tags updated | **Fixed** — added `disaster-recovery`, removed stale TDD tags | | `on_timeout=kill` | **Fixed** — all 5 Run Process calls | | CHANGELOG entry for #779 | **Fixed** | - `nox -s lint` — **PASS** - `nox -s typecheck` — **PASS** (0 errors)
freemo approved these changes 2026-03-19 04:57:34 +00:00
Dismissed
freemo left a comment
Owner

Code Review — PR #951

Well-structured integration test for WF15 (disaster recovery/rollback). Proper labels, milestone, and issue linkage. Approved.

## Code Review — PR #951 Well-structured integration test for WF15 (disaster recovery/rollback). Proper labels, milestone, and issue linkage. **Approved.**
freemo requested review from freemo 2026-03-19 05:19:16 +00:00
brent.edwards force-pushed test/int-wf15-disaster-recovery from 3d96ad85a7 to 9f74fbbbc3 2026-03-20 00:03:30 +00:00 Compare
brent.edwards dismissed freemo's review 2026-03-20 00:03:30 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

Author
Member

Rebased onto origin/master (79b0a2c5). CHANGELOG conflict resolved (kept master, re-added PR entry). nox -s lint PASS, nox -s typecheck PASS (0 errors). Commit 9f74fbbb.

Rebased onto `origin/master` (`79b0a2c5`). CHANGELOG conflict resolved (kept master, re-added PR entry). `nox -s lint` PASS, `nox -s typecheck` PASS (0 errors). Commit `9f74fbbb`.
brent.edwards force-pushed test/int-wf15-disaster-recovery from d95dd70499 to 2fe1628f45 2026-03-26 20:03:06 +00:00 Compare
freemo self-assigned this 2026-04-02 06:15:21 +00:00
Owner

🤖 Backlog Groomer (groomer-1): Closing as duplicate of #779.

Issue #779 (test(integration): workflow example 15 — disaster recovery, rollback and failed plan recovery) is the canonical version with full labels (MoSCoW/Must have, Priority/Medium, State/In Review, Type/Testing) and milestone v3.2.0. This issue is an exact title duplicate.

🤖 **Backlog Groomer (groomer-1):** Closing as duplicate of #779. Issue #779 (`test(integration): workflow example 15 — disaster recovery, rollback and failed plan recovery`) is the canonical version with full labels (`MoSCoW/Must have`, `Priority/Medium`, `State/In Review`, `Type/Testing`) and milestone `v3.2.0`. This issue is an exact title duplicate.
freemo closed this pull request 2026-04-02 17:31:52 +00:00
Some required checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 40s
Required
Details
CI / lint (pull_request) Failing after 4m32s
Required
Details
CI / typecheck (pull_request) Successful in 6m27s
Required
Details
CI / coverage (pull_request) Has been skipped
Required
Details
CI / benchmark-regression (pull_request) Has been skipped
CI / quality (pull_request) Successful in 7m32s
Required
Details
CI / security (pull_request) Successful in 8m19s
Required
Details
CI / unit_tests (pull_request) Successful in 11m12s
Required
Details
CI / integration_tests (pull_request) Successful in 11m13s
Required
Details
CI / docker (pull_request) Has been skipped
Required
Details
CI / status-check (pull_request) Failing after 1s
CI / e2e_tests (pull_request) Successful in 16m37s

Pull request closed

Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Reference: cleveragents/cleveragents-core#951