Skip to content
Merged
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
37 changes: 35 additions & 2 deletions tests/control_plane/test_local_coordination_authority.py
Original file line number Diff line number Diff line change
Expand Up @@ -2246,6 +2246,27 @@ def test_real_canonical_provider_preserves_complete_complex_todo_semantics(
"--claim-operation-id",
"initial-cli-claim",
]

def recover_native_claim(operation_id):
# Ordinary CLI self-claims expose the execution reference, while the
# existing transaction owner retains the complete durable receipt.
recovered = claim_canonical_todo_if_promoted(
registry_path=registry_path,
runtime_root=runtime_root,
goal_id="goal-a",
todo_id="todo_claimable",
role=None,
claimed_by="agent-a",
actor_agent_id="agent-a",
operation_id=operation_id,
manage_execution=True,
dry_run=False,
)
assert recovered["status"] == "replayed"
assert recovered["original_receipt"]["operation_id"] == operation_id
assert recovered["original_receipt"]["goal_id"] == "goal-a"
return recovered

# Duplicate callers race from separate processes, but one operation must
# produce exactly one accepted claim and the same durable receipt.
with ThreadPoolExecutor(max_workers=2) as pool:
Expand All @@ -2265,7 +2286,13 @@ def test_real_canonical_provider_preserves_complete_complex_todo_semantics(
assert all(
item["status"] in {"applied", "recovered", "replayed"} for item in claims
)
assert claims[0]["original_receipt"] == claims[1]["original_receipt"]
for claim in claims:
assert claim["execution_managed"] is True
assert claim["claim_operation_id"] == "initial-cli-claim"
assert "original_receipt" not in claim
receipts = [recover_native_claim(claim["claim_operation_id"]) for claim in claims]
assert receipts[0]["original_receipt"] == receipts[1]["original_receipt"]
assert all(receipt["provider_revision"] == claims[0]["provider_revision"] for receipt in receipts)
assert claims[0]["provider_revision"] == claims[1]["provider_revision"]
claimed = next(item for item in claims if item["status"] == "applied")
assert claimed["ok"] is True
Expand Down Expand Up @@ -2309,7 +2336,13 @@ def test_real_canonical_provider_preserves_complete_complex_todo_semantics(
)
assert original["status"] == "no_change"
assert replay["status"] == "replayed"
assert replay["original_receipt"] == original["original_receipt"]
assert original["claim_operation_id"] == replay["claim_operation_id"] == "retryable-cli-claim"
assert "original_receipt" not in original and "original_receipt" not in replay
original_receipt = recover_native_claim(original["claim_operation_id"])
replay_receipt = recover_native_claim(replay["claim_operation_id"])
assert replay_receipt["original_receipt"] == original_receipt["original_receipt"]
assert original_receipt["original_receipt"]["result"]["changed"] is False
assert replay_receipt["provider_revision"] == replay["provider_revision"]
assert replay["provider_revision"] == original["provider_revision"]
changed_intent = [
"agent-b" if part == "agent-a" else part for part in claim_command
Expand Down
Loading