fix(agent): keep completed milestones monotonic
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 1m21s
CD Pipeline / build-and-deploy (push) Successful in 6m48s
CD Pipeline / post-deploy-checks (push) Successful in 1m52s
AWOOOI Harbor 110 Local Repair / workflow-shape (push) Successful in 1s
AWOOOI Harbor 110 Local Repair / harbor-110-local-repair (push) Successful in 17s
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 1m21s
CD Pipeline / build-and-deploy (push) Successful in 6m48s
CD Pipeline / post-deploy-checks (push) Successful in 1m52s
AWOOOI Harbor 110 Local Repair / workflow-shape (push) Successful in 1s
AWOOOI Harbor 110 Local Repair / harbor-110-local-repair (push) Successful in 17s
This commit is contained in:
@@ -2393,6 +2393,42 @@ def test_ai_automation_retry_rollback_terminal_advances_order() -> None:
|
||||
assert payload["current_p0_execution_focus"]["workplan_id"] == "AIA-P0-006"
|
||||
|
||||
|
||||
def test_retry_terminal_keeps_prior_program_milestones_monotonic() -> None:
|
||||
payload = load_latest_awoooi_priority_work_order_readback()
|
||||
runtime_control = _autonomous_runtime_control_retry_rollback_closed()
|
||||
verifier = runtime_control["autonomous_independent_post_verifier"]
|
||||
verifier["closed"] = False
|
||||
verifier["controls"]["verification_result_success"] = False
|
||||
verifier["controls"]["all_postconditions_passed"] = False
|
||||
verifier["active_blockers"] = [
|
||||
"verification_result_success_not_verified",
|
||||
"all_postconditions_passed_not_verified",
|
||||
]
|
||||
|
||||
apply_ai_automation_live_closure_readbacks(
|
||||
payload,
|
||||
autonomous_runtime_control=runtime_control,
|
||||
)
|
||||
|
||||
program = payload["ai_automation_program_ledger"]
|
||||
items = {item["id"]: item for item in program["work_items"]}
|
||||
verifier_item = items["AIA-P0-003"]
|
||||
assert verifier_item["status"] == "done"
|
||||
assert verifier_item["runtime_progress"]["runtime_closed"] is False
|
||||
assert verifier_item["runtime_progress"]["latest_runtime_closed"] is False
|
||||
assert verifier_item["runtime_progress"]["monotonic_program_closed"] is True
|
||||
assert verifier_item["completion_evidence"]["proof_kind"] == (
|
||||
"monotonic_successor_runtime_closure"
|
||||
)
|
||||
assert verifier_item["completion_evidence"]["successor_work_item_id"] == (
|
||||
"AIA-P0-005"
|
||||
)
|
||||
assert program["summary"]["done_count"] == 6
|
||||
assert program["summary"]["completion_percent"] == 30
|
||||
assert program["summary"]["next_work_item_id"] == "AIA-P0-006"
|
||||
assert program["summary"]["invalid_done_without_runtime_evidence_count"] == 0
|
||||
|
||||
|
||||
def test_ai_automation_retry_rollback_terminal_fails_closed() -> None:
|
||||
payload = load_latest_awoooi_priority_work_order_readback()
|
||||
runtime_control = _autonomous_runtime_control_retry_rollback_closed()
|
||||
|
||||
Reference in New Issue
Block a user