Merge remote-tracking branch 'gitea/main' into codex/delivery-workbench-release-20260626-ffsync
This commit is contained in:
@@ -37,9 +37,21 @@ def test_load_latest_ai_agent_high_risk_owner_review_queue_reads_newest_file(tmp
|
||||
assert loaded["program_status"]["current_task_id"] == "P2-409"
|
||||
assert loaded["program_status"]["next_task_id"] == "P2-410"
|
||||
assert loaded["program_status"]["read_only_mode"] is True
|
||||
assert (
|
||||
loaded["program_status"]["runtime_authority"]
|
||||
== "controlled_apply_break_glass_queue_readback_no_live_execution"
|
||||
)
|
||||
assert loaded["queue_truth"]["all_high_risk_actions_paused"] is False
|
||||
assert loaded["queue_truth"]["high_risk_owner_review_required"] is False
|
||||
assert loaded["queue_truth"]["high_risk_controlled_apply_enabled"] is True
|
||||
assert loaded["queue_truth"]["critical_break_glass_required"] is True
|
||||
assert loaded["rollups"]["queue_item_count"] == 7
|
||||
assert loaded["rollups"]["approval_packet_count"] == 7
|
||||
assert loaded["rollups"]["rejection_guard_count"] == 8
|
||||
assert loaded["rollups"]["controlled_apply_queue_count"] == 5
|
||||
assert loaded["rollups"]["critical_break_glass_queue_count"] == 2
|
||||
assert loaded["rollups"]["owner_response_required_count"] == 2
|
||||
assert loaded["rollups"]["high_risk_owner_review_required_count"] == 0
|
||||
assert loaded["rollups"]["telegram_send_count"] == 0
|
||||
|
||||
|
||||
@@ -118,6 +130,26 @@ def test_ai_agent_high_risk_owner_review_queue_requires_rollback_owner(tmp_path)
|
||||
load_latest_ai_agent_high_risk_owner_review_queue(tmp_path)
|
||||
|
||||
|
||||
def test_ai_agent_high_risk_owner_review_queue_keeps_high_risk_on_controlled_apply(tmp_path):
|
||||
snapshot = _snapshot()
|
||||
high_item = next(item for item in snapshot["owner_review_queue_items"] if item["risk_tier"] == "high")
|
||||
high_item["owner_response_required"] = True
|
||||
_write_snapshot(tmp_path, snapshot)
|
||||
|
||||
with pytest.raises(ValueError, match="owner_response_required"):
|
||||
load_latest_ai_agent_high_risk_owner_review_queue(tmp_path)
|
||||
|
||||
|
||||
def test_ai_agent_high_risk_owner_review_queue_keeps_critical_on_break_glass(tmp_path):
|
||||
snapshot = _snapshot()
|
||||
critical_item = next(item for item in snapshot["owner_review_queue_items"] if item["risk_tier"] == "critical")
|
||||
critical_item["owner_response_required"] = False
|
||||
_write_snapshot(tmp_path, snapshot)
|
||||
|
||||
with pytest.raises(ValueError, match="owner_response_required"):
|
||||
load_latest_ai_agent_high_risk_owner_review_queue(tmp_path)
|
||||
|
||||
|
||||
def test_ai_agent_high_risk_owner_review_queue_requires_rollup_consistency(tmp_path):
|
||||
snapshot = _snapshot()
|
||||
snapshot["rollups"]["queue_item_count"] = 99
|
||||
|
||||
@@ -21,8 +21,12 @@ def test_ai_agent_high_risk_owner_review_queue_endpoint_returns_committed_snapsh
|
||||
assert data["program_status"]["read_only_mode"] is True
|
||||
assert (
|
||||
data["program_status"]["runtime_authority"]
|
||||
== "high_risk_owner_review_queue_no_live_execution_committed_snapshot"
|
||||
== "controlled_apply_break_glass_queue_readback_no_live_execution"
|
||||
)
|
||||
assert data["queue_truth"]["all_high_risk_actions_paused"] is False
|
||||
assert data["queue_truth"]["high_risk_owner_review_required"] is False
|
||||
assert data["queue_truth"]["high_risk_controlled_apply_enabled"] is True
|
||||
assert data["queue_truth"]["critical_break_glass_required"] is True
|
||||
assert data["rollups"]["source_readback_count"] == len(data["source_readbacks"]) == 6
|
||||
assert data["rollups"]["queue_item_count"] == len(data["owner_review_queue_items"]) == 7
|
||||
assert data["rollups"]["high_risk_queue_count"] == 5
|
||||
@@ -34,6 +38,10 @@ def test_ai_agent_high_risk_owner_review_queue_endpoint_returns_committed_snapsh
|
||||
assert data["rollups"]["rollback_owner_required_count"] == 7
|
||||
assert data["rollups"]["postcheck_required_count"] == 7
|
||||
assert data["rollups"]["blocked_runtime_action_count"] == 42
|
||||
assert data["rollups"]["controlled_apply_queue_count"] == 5
|
||||
assert data["rollups"]["critical_break_glass_queue_count"] == 2
|
||||
assert data["rollups"]["owner_response_required_count"] == 2
|
||||
assert data["rollups"]["high_risk_owner_review_required_count"] == 0
|
||||
assert data["rollups"]["owner_response_received_count"] == 0
|
||||
assert data["rollups"]["owner_response_accepted_count"] == 0
|
||||
assert data["rollups"]["auto_worker_run_count"] == 0
|
||||
@@ -52,8 +60,19 @@ def test_ai_agent_high_risk_owner_review_queue_endpoint_returns_committed_snapsh
|
||||
assert data["telegram_policy"]["telegram_send_allowed"] is False
|
||||
assert data["telegram_policy"]["gateway_queue_write_allowed"] is False
|
||||
assert data["telegram_policy"]["direct_bot_api_allowed"] is False
|
||||
assert data["routing_policy"]["high_risk_default_route"] == "pause_to_owner_review_queue"
|
||||
assert data["routing_policy"]["critical_risk_default_route"] == "pause_to_owner_review_queue"
|
||||
assert data["routing_policy"]["high_risk_default_route"] == "controlled_apply_queue"
|
||||
assert data["routing_policy"]["critical_risk_default_route"] == "critical_break_glass_queue"
|
||||
assert data["routing_policy"]["owner_response_required"] is False
|
||||
assert data["routing_policy"]["verbal_approval_accepted"] is False
|
||||
assert all(
|
||||
item["owner_response_required"] is False
|
||||
for item in data["owner_review_queue_items"]
|
||||
if item["risk_tier"] == "high"
|
||||
)
|
||||
assert all(
|
||||
item["owner_response_required"] is True
|
||||
for item in data["owner_review_queue_items"]
|
||||
if item["risk_tier"] == "critical"
|
||||
)
|
||||
assert data["activation_boundaries"]["live_execution_enabled"] is False
|
||||
assert data["activation_boundaries"]["openclaw_replacement_allowed"] is False
|
||||
|
||||
Reference in New Issue
Block a user