Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 14 additions & 6 deletions loopx/semantics/project_registry_io_manifest_v1.json
Original file line number Diff line number Diff line change
Expand Up @@ -495,7 +495,15 @@
},
{
"site": "loopx/cli_commands/capability.py::<module>.handle_capability_command::codec_read:load_registry#1",
"line": 212,
"line": 233,
"column": 21,
"kind": "codec_read",
"api": "load_registry",
"classification": "codec_api"
},
{
"site": "loopx/cli_commands/capability.py::<module>.handle_capability_command::codec_read:load_registry#2",
"line": 245,
"column": 21,
"kind": "codec_read",
"api": "load_registry",
Expand Down Expand Up @@ -1895,39 +1903,39 @@
},
{
"site": "loopx/thread_agent_binding.py::<module>.bind_thread_agent_in_registry::codec_write:mutate_project_registry#1",
"line": 566,
"line": 649,
"column": 16,
"kind": "codec_write",
"api": "mutate_project_registry",
"classification": "codec_api"
},
{
"site": "loopx/thread_agent_binding.py::<module>.bind_thread_agent_in_registry::codec_read:load_registry#1",
"line": 573,
"line": 656,
"column": 15,
"kind": "codec_read",
"api": "load_registry",
"classification": "codec_api"
},
{
"site": "loopx/thread_agent_binding.py::<module>.resolve_registry_thread_agent_binding::codec_read:load_registry#1",
"line": 329,
"line": 412,
"column": 15,
"kind": "codec_read",
"api": "load_registry",
"classification": "codec_api"
},
{
"site": "loopx/thread_agent_binding.py::<module>.unbind_thread_agent_in_registry::codec_write:mutate_project_registry#1",
"line": 625,
"line": 708,
"column": 16,
"kind": "codec_write",
"api": "mutate_project_registry",
"classification": "codec_api"
},
{
"site": "loopx/thread_agent_binding.py::<module>.unbind_thread_agent_in_registry::codec_read:load_registry#1",
"line": 632,
"line": 715,
"column": 15,
"kind": "codec_read",
"api": "load_registry",
Expand Down
4 changes: 2 additions & 2 deletions tests/control_plane/checkpoint_process.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,10 @@ def main(request):
adapter = provider_update if mode == "writer" else checkpoint_context_io
original = adapter.effect_runtime_result

def native(method, params):
def native(method, params, **kwargs):
target = "coordination.local_authority.todo_update" if mode == "writer" else "goal.checkpoint_read_context.commit"
if method != target:
return original(method, params)
return original(method, params, **kwargs)
envelope = {"mode": "writer" if mode == "writer" else "checkpoint", "barrier": str(barrier),
"provider": request["provider"], "method": method, "params": params,
"provider_direct": request.get("provider_direct", False)}
Expand Down
4 changes: 2 additions & 2 deletions tests/control_plane/test_archive_retry_delivery.py
Original file line number Diff line number Diff line change
Expand Up @@ -301,10 +301,10 @@ def test_archive_ack_transport_failure_preserves_committed_result(
registry, runtime, _ = _fixture(tmp_path)
execute = provider_terminal_lifecycle.effect_runtime_result

def unavailable_ack(method, params):
def unavailable_ack(method, params, **kwargs):
if method == "coordination.local_authority.todo_archive_ack":
raise OSError("injected acknowledgement transport failure")
return execute(method, params)
return execute(method, params, **kwargs)

with monkeypatch.context() as patch:
patch.setattr(
Expand Down
2 changes: 1 addition & 1 deletion tests/control_plane/test_canonical_handoff_mode.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ def test_provider_failure_is_not_a_legacy_fallback(canonical_mode, monkeypatch):
state, runtime, _ = canonical_mode
from loopx.control_plane.todos import provider_handoff_mode
from loopx.control_plane.coordination.local_authority import LocalCoordinationAuthorityUnavailable
monkeypatch.setattr(provider_handoff_mode, "effect_runtime_result", lambda *_args: {
monkeypatch.setattr(provider_handoff_mode, "effect_runtime_result", lambda *_args, **_kwargs: {
"status": "unavailable", "reason_code": "synthetic_provider_down", "reason": "Unavailable"})
before = state.read_bytes()
with pytest.raises(LocalCoordinationAuthorityUnavailable, match="Unavailable"):
Expand Down
8 changes: 4 additions & 4 deletions tests/control_plane/test_canonical_lease_inspection.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,14 +131,14 @@ def test_registration_change_retries_and_uses_new_eligibility(tmp_path, monkeypa
original = effect_runtime.effect_runtime_result
calls = []

def change_registration(method, payload):
def change_registration(method, payload, **kwargs):
if method == "task_lease.inspect.native":
calls.append(method)
if len(calls) == 1:
updated = json.loads(registry.read_text())
updated["goals"][0]["coordination"]["registered_agents"] = ["agent-b"]
registry.write_text(json.dumps(updated))
return original(method, payload)
return original(method, payload, **kwargs)

monkeypatch.setattr(effect_runtime, "effect_runtime_result", change_registration)
result = _inspect(registry, runtime)
Expand All @@ -155,11 +155,11 @@ def test_continuous_source_churn_exhausts_bounded_retry_without_success(tmp_path
original = effect_runtime.effect_runtime_result
calls = []

def change_source(method, payload):
def change_source(method, payload, **kwargs):
if method == "task_lease.inspect.native":
calls.append(method)
registry.write_text(registry.read_text() + "\n")
return original(method, payload)
return original(method, payload, **kwargs)

monkeypatch.setattr(effect_runtime, "effect_runtime_result", change_source)
with pytest.raises(LocalCoordinationAuthorityUnavailable) as error:
Expand Down
8 changes: 4 additions & 4 deletions tests/control_plane/test_checkpoint_provider_fence.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,9 @@ def test_provider_transaction_cannot_commit_between_final_head_and_checkpoint(tm
original = context_io.effect_runtime_result
observed = []

def native(method, params):
def native(method, params, **kwargs):
if method != "goal.checkpoint_read_context.commit":
return original(method, params)
return original(method, params, **kwargs)
checkpoint = start_probe({"mode": "checkpoint", "provider": provider, "barrier": str(barrier),
"params": params, "repeat": True})
writer = None
Expand Down Expand Up @@ -206,9 +206,9 @@ def test_failed_save_releases_provider_and_requires_fresh_comparison(tmp_path, m
barrier.mkdir()
original = context_io.effect_runtime_result

def native(method, params):
def native(method, params, **kwargs):
if method != "goal.checkpoint_read_context.commit":
return original(method, params)
return original(method, params, **kwargs)
child = start_probe({"mode": "checkpoint", "provider": provider, "barrier": str(barrier),
"params": params, "fault": fault})
try:
Expand Down
12 changes: 6 additions & 6 deletions tests/control_plane/test_validated_create_recovery.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ def project(registry, runtime):
def test_lost_response_replays_exact_create_after_another_edit(promoted, monkeypatch):
registry, runtime, state = promoted
real = provider_create.effect_runtime_result
def lose_response(method, request):
real(method, request)
def lose_response(method, request, **kwargs):
real(method, request, **kwargs)
raise EffectRuntimeResponseAmbiguous(method, timeout=1)
monkeypatch.setattr(provider_create, "effect_runtime_result", lose_response)
with pytest.raises(LocalCoordinationAuthorityUnavailable) as error:
Expand Down Expand Up @@ -108,8 +108,8 @@ def test_revision_lost_response_still_projects_exact_new_declaration(promoted, m
registry, runtime, _ = promoted
created = add_goal_todo(**intent(registry))
real = provider_update.effect_runtime_result
def lose_response(method, request):
real(method, request)
def lose_response(method, request, **kwargs):
real(method, request, **kwargs)
raise EffectRuntimeResponseAmbiguous(method, timeout=1)
monkeypatch.setattr(provider_update, "effect_runtime_result", lose_response)
with pytest.raises(EffectRuntimeResponseAmbiguous):
Expand Down Expand Up @@ -174,8 +174,8 @@ def test_process_exit_after_commit_recovers_through_public_cli(promoted):
from loopx.control_plane.todos import provider_create
from loopx.todos import add_goal_todo
real = provider_create.effect_runtime_result
def exit_after_commit(method, request):
real(method, request)
def exit_after_commit(method, request, **kwargs):
real(method, request, **kwargs)
os._exit(77)
provider_create.effect_runtime_result = exit_after_commit
add_goal_todo(registry_path=Path(sys.argv[1]), goal_id="goal-a", role="agent",
Expand Down
Loading