From b7acd1d69d69a2174553ca87008ed790f542e11f Mon Sep 17 00:00:00 2001 From: "glm-5.2" Date: Sun, 28 Jun 2026 22:10:06 +0000 Subject: [PATCH] tasks: mark call/operation-env-invoke-peer complete --- tasks/call/operation-env-invoke-peer.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tasks/call/operation-env-invoke-peer.md b/tasks/call/operation-env-invoke-peer.md index a68c4a4..3d9b58f 100644 --- a/tasks/call/operation-env-invoke-peer.md +++ b/tasks/call/operation-env-invoke-peer.md @@ -1,7 +1,7 @@ --- id: call/operation-env-invoke-peer name: Add invoke_peer/peer_contains/PeerRef to OperationEnv trait for peer-keyed routing (ADR-029 ยง2) -status: pending +status: completed depends_on: [call/peer-composite-env] scope: moderate risk: medium @@ -153,4 +153,4 @@ impls โ€” the trait surface grows, the behavior is preserved. ## Summary -> To be filled on completion \ No newline at end of file +Added PeerRef enum (Specific/Any variants), invoke_peer trait method with default-impl delegating to invoke_with_policy, and PeerCompositeEnv override with real peer-keyed routing โ€” PeerRef::Specific routes to named peer only (no fallthrough โ†’ NOT_FOUND if peer doesn't serve op), PeerRef::Any reuses invoke_with_policy. Reachability check (scoped_env.allows) gates before peer routing. peer_contains default delegates to contains; PeerCompositeEnv override checks specific peer's sub-overlay. 8 unit tests covering all acceptance criteria. 221 unit + 2 integration tests pass, clippy clean, fmt clean. \ No newline at end of file