diff --git a/examples/project/goal-vision-refresh-state-budget-smoke.py b/examples/project/goal-vision-refresh-state-budget-smoke.py index 854fd688dc..2c5e5238e5 100644 --- a/examples/project/goal-vision-refresh-state-budget-smoke.py +++ b/examples/project/goal-vision-refresh-state-budget-smoke.py @@ -62,6 +62,8 @@ def write_fixture(root: Path) -> tuple[Path, Path, Path]: "status": "active", "repo": str(project), "state_file": state_file, + # This fixture isolates vision authoring from Stride review. + "execution_profile": {"stride_strategy": "off"}, "adapter": {"kind": "fixture", "status": "connected-read-only"}, "authority_sources": [], "coordination": { diff --git a/tests/control_plane/test_refresh_state_replan_gate.py b/tests/control_plane/test_refresh_state_replan_gate.py index 3efd11b36e..18ccf30f75 100644 --- a/tests/control_plane/test_refresh_state_replan_gate.py +++ b/tests/control_plane/test_refresh_state_replan_gate.py @@ -357,6 +357,7 @@ def _replan_gate_tmp_fixture( "status": "active", "repo": str(project), "state_file": str(state.relative_to(project)), + "execution_profile": {"stride_strategy": "off"}, "coordination": { "agent_model": "peer_v1", "registered_agents": [AGENT_ID], diff --git a/tests/control_plane/test_vision_budget_cli.py b/tests/control_plane/test_vision_budget_cli.py index 29c8d87a99..a46c4df5b2 100644 --- a/tests/control_plane/test_vision_budget_cli.py +++ b/tests/control_plane/test_vision_budget_cli.py @@ -50,6 +50,7 @@ def test_projected_autonomous_example_updates_evidence_without_changing_goal( guard = fixture.run_quota(registry, runtime) assert guard["effective_action"] == "autonomous_replan_required" assert guard["requires_user_action"] is False + assert guard["replan_action_packet"].get("stride_control") is None contract = guard["replan_action_packet"]["writeback_contract"]["vision_authoring"] packet = copy.deepcopy(contract["minimal_example"]) assert "JSON replaces the complete packet" in contract["authoring_hint"] diff --git a/tests/control_plane_ts/fixtures/primary_action_instruction_selection.json b/tests/control_plane_ts/fixtures/primary_action_instruction_selection.json index a7df1513bc..74c5bce250 100644 --- a/tests/control_plane_ts/fixtures/primary_action_instruction_selection.json +++ b/tests/control_plane_ts/fixtures/primary_action_instruction_selection.json @@ -166,7 +166,7 @@ {"name":"packet-164","mode":"autonomous_replan","payload":{"replan_action_packet":{"settlement_only":1}},"facts":{"goal_id":"","agent_lane":{"todo_id":"","label":null,"next_step_truthy":false,"next_step_label":null},"work_lane":{"monitor_kind":null,"obligation":null,"monitor_due_items":[],"selected_todo_id":"","action_label":null,"action_text":null,"due_action_text":null,"obligation_text":null,"reason_codes":[]},"capability_gate":{"action":null,"runnable_count":0},"scoped_fallback":{"todo_id":"","label":null,"fallback_kind":null},"agent_todos":{"first_executable_items":[],"first_open_items":[]},"backlog":[],"recommended_action":null,"pending_intent":null,"observation_target":null,"lifecycle":{"present":false,"action":null},"replan_packet":{"settlement_only":false,"rule":null,"has_required_outcome":false,"has_successor_command":false},"frontier_action":null,"orchestration":{"mode":null,"child_count":null,"peer_count":0},"contract_obligation":null},"expected":"produce one typed outcome from the host-projected replan action packet","candidate":null,"packet_instruction":"produce one typed outcome from the host-projected replan action packet"}, {"name":"packet-165","mode":"autonomous_replan","payload":{"replan_action_packet":{"uncovered_frontier":{"required_any_of":["typed"]},"writeback_contract":{"successor_command":"next"}}},"facts":{"goal_id":"","agent_lane":{"todo_id":"","label":null,"next_step_truthy":false,"next_step_label":null},"work_lane":{"monitor_kind":null,"obligation":null,"monitor_due_items":[],"selected_todo_id":"","action_label":null,"action_text":null,"due_action_text":null,"obligation_text":null,"reason_codes":[]},"capability_gate":{"action":null,"runnable_count":0},"scoped_fallback":{"todo_id":"","label":null,"fallback_kind":null},"agent_todos":{"first_executable_items":[],"first_open_items":[]},"backlog":[],"recommended_action":null,"pending_intent":null,"observation_target":null,"lifecycle":{"present":false,"action":null},"replan_packet":{"settlement_only":false,"rule":null,"has_required_outcome":true,"has_successor_command":true},"frontier_action":null,"orchestration":{"mode":null,"child_count":null,"peer_count":0},"contract_obligation":null},"expected":"select one bounded next slice; prefer replan_action_packet.writeback_contract.successor_command","candidate":null,"packet_instruction":"select one bounded next slice; prefer replan_action_packet.writeback_contract.successor_command"}, {"name":"packet-166","mode":"autonomous_replan","payload":{"replan_action_packet":{"uncovered_frontier":{"required_any_of":[]},"writeback_contract":{"successor_command":"next"}}},"facts":{"goal_id":"","agent_lane":{"todo_id":"","label":null,"next_step_truthy":false,"next_step_label":null},"work_lane":{"monitor_kind":null,"obligation":null,"monitor_due_items":[],"selected_todo_id":"","action_label":null,"action_text":null,"due_action_text":null,"obligation_text":null,"reason_codes":[]},"capability_gate":{"action":null,"runnable_count":0},"scoped_fallback":{"todo_id":"","label":null,"fallback_kind":null},"agent_todos":{"first_executable_items":[],"first_open_items":[]},"backlog":[],"recommended_action":null,"pending_intent":null,"observation_target":null,"lifecycle":{"present":false,"action":null},"replan_packet":{"settlement_only":false,"rule":null,"has_required_outcome":false,"has_successor_command":true},"frontier_action":null,"orchestration":{"mode":null,"child_count":null,"peer_count":0},"contract_obligation":null},"expected":"produce one typed outcome from the host-projected replan action packet","candidate":null,"packet_instruction":"produce one typed outcome from the host-projected replan action packet"}, - {"name":"lifecycle-167","mode":"autonomous_replan","payload":{"autonomous_replan_obligation":{"resolution_mode":"todo_lifecycle_settlement","recommended_action":null}},"facts":{"goal_id":"","agent_lane":{"todo_id":"","label":null,"next_step_truthy":false,"next_step_label":null},"work_lane":{"monitor_kind":null,"obligation":null,"monitor_due_items":[],"selected_todo_id":"","action_label":null,"action_text":null,"due_action_text":null,"obligation_text":null,"reason_codes":[]},"capability_gate":{"action":null,"runnable_count":0},"scoped_fallback":{"todo_id":"","label":null,"fallback_kind":null},"agent_todos":{"first_executable_items":[],"first_open_items":[]},"backlog":[],"recommended_action":null,"pending_intent":null,"observation_target":null,"lifecycle":{"present":true,"action":null},"replan_packet":{"settlement_only":false,"rule":null,"has_required_outcome":false,"has_successor_command":false},"frontier_action":null,"orchestration":{"mode":null,"child_count":null,"peer_count":0},"contract_obligation":null},"expected":"settle the exact completed Todo lifecycle or link a real runnable successor; do not create lifecycle-only filler","candidate":null,"packet_instruction":"produce one typed outcome from the host-projected replan action packet"}, + {"name":"lifecycle-167","mode":"autonomous_replan","payload":{"autonomous_replan_obligation":{"resolution_mode":"todo_lifecycle_settlement","recommended_action":null}},"facts":{"goal_id":"","agent_lane":{"todo_id":"","label":null,"next_step_truthy":false,"next_step_label":null},"work_lane":{"monitor_kind":null,"obligation":null,"monitor_due_items":[],"selected_todo_id":"","action_label":null,"action_text":null,"due_action_text":null,"obligation_text":null,"reason_codes":[]},"capability_gate":{"action":null,"runnable_count":0},"scoped_fallback":{"todo_id":"","label":null,"fallback_kind":null},"agent_todos":{"first_executable_items":[],"first_open_items":[]},"backlog":[],"recommended_action":null,"pending_intent":null,"observation_target":null,"lifecycle":{"present":true,"action":null},"replan_packet":{"settlement_only":false,"rule":null,"has_required_outcome":false,"has_successor_command":false},"frontier_action":null,"orchestration":{"mode":null,"child_count":null,"peer_count":0},"contract_obligation":null},"expected":"follow the exact Todo lifecycle recovery actions; preserve independent work and gates, and do not add links to terminal Todos or create lifecycle-only filler","candidate":null,"packet_instruction":"produce one typed outcome from the host-projected replan action packet"}, {"name":"lifecycle-168","mode":"autonomous_replan","payload":{"autonomous_replan_obligation":{"resolution_mode":"todo_lifecycle_settlement","recommended_action":"Settle exact lifecycle"}},"facts":{"goal_id":"","agent_lane":{"todo_id":"","label":null,"next_step_truthy":false,"next_step_label":null},"work_lane":{"monitor_kind":null,"obligation":null,"monitor_due_items":[],"selected_todo_id":"","action_label":null,"action_text":null,"due_action_text":null,"obligation_text":null,"reason_codes":[]},"capability_gate":{"action":null,"runnable_count":0},"scoped_fallback":{"todo_id":"","label":null,"fallback_kind":null},"agent_todos":{"first_executable_items":[],"first_open_items":[]},"backlog":[],"recommended_action":null,"pending_intent":null,"observation_target":null,"lifecycle":{"present":true,"action":"Settle exact lifecycle"},"replan_packet":{"settlement_only":false,"rule":null,"has_required_outcome":false,"has_successor_command":false},"frontier_action":null,"orchestration":{"mode":null,"child_count":null,"peer_count":0},"contract_obligation":null},"expected":"Settle exact lifecycle","candidate":null,"packet_instruction":"produce one typed outcome from the host-projected replan action packet"}, {"name":"lifecycle-169","mode":"autonomous_replan","payload":{"autonomous_replan_obligation":{"resolution_mode":"todo_lifecycle_settlement","recommended_action":"😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀"}},"facts":{"goal_id":"","agent_lane":{"todo_id":"","label":null,"next_step_truthy":false,"next_step_label":null},"work_lane":{"monitor_kind":null,"obligation":null,"monitor_due_items":[],"selected_todo_id":"","action_label":null,"action_text":null,"due_action_text":null,"obligation_text":null,"reason_codes":[]},"capability_gate":{"action":null,"runnable_count":0},"scoped_fallback":{"todo_id":"","label":null,"fallback_kind":null},"agent_todos":{"first_executable_items":[],"first_open_items":[]},"backlog":[],"recommended_action":null,"pending_intent":null,"observation_target":null,"lifecycle":{"present":true,"action":"😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀..."},"replan_packet":{"settlement_only":false,"rule":null,"has_required_outcome":false,"has_successor_command":false},"frontier_action":null,"orchestration":{"mode":null,"child_count":null,"peer_count":0},"contract_obligation":null},"expected":"😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀...","candidate":null,"packet_instruction":"produce one typed outcome from the host-projected replan action packet"}, {"name":"lanes-170","mode":"task_orchestration","payload":{"task_orchestration_contract":{"mode":"adaptive","eligible_child_lanes":[],"eligible_peer_lanes":["a"]}},"facts":{"goal_id":"","agent_lane":{"todo_id":"","label":null,"next_step_truthy":false,"next_step_label":null},"work_lane":{"monitor_kind":null,"obligation":null,"monitor_due_items":[],"selected_todo_id":"","action_label":null,"action_text":null,"due_action_text":null,"obligation_text":null,"reason_codes":[]},"capability_gate":{"action":null,"runnable_count":0},"scoped_fallback":{"todo_id":"","label":null,"fallback_kind":null},"agent_todos":{"first_executable_items":[],"first_open_items":[]},"backlog":[],"recommended_action":null,"pending_intent":null,"observation_target":null,"lifecycle":{"present":false,"action":null},"replan_packet":{"settlement_only":false,"rule":null,"has_required_outcome":false,"has_successor_command":false},"frontier_action":null,"orchestration":{"mode":"adaptive","child_count":0,"peer_count":1},"contract_obligation":null},"expected":"choose whether to spawn admitted child lanes (0 eligible); the task coordinator reviews evidence and writes back this bundle once","candidate":null,"packet_instruction":"produce one typed outcome from the host-projected replan action packet"},