projmux 0.15.0 → 0.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,49 @@
1
+ # Explicit reply recovery
2
+
3
+ An explicit Claude reply names the original request with `--reply-to`. The
4
+ broker preserves that request's `conversationRef`, reverses its exact source
5
+ and target routes, and retains peer, untrusted, coordination-only authority.
6
+ Both activations and the original deadline must still be current. A reply
7
+ cannot extend that deadline. Source metadata remains an unverified routing
8
+ claim; an explicit reply also requires the registered provider's descendant
9
+ caller and any existing qualification and execution guard.
10
+
11
+ When a reply fails, `agent message send` exits nonzero and reports its ref,
12
+ underlying reason, outcome uncertainty, and safe action. Inspect the durable
13
+ attempt before deciding whether to retry:
14
+
15
+ ```sh
16
+ projmux agent message status <failed-reply-ref>
17
+ projmux agent message status <failed-reply-ref> -o json
18
+ ```
19
+
20
+ Only a confirmed zero-write Claude failure permits a new manual attempt.
21
+ Examples include rejected content or frame size, invalid auth configuration,
22
+ pre-write refusal, and an actual zero-byte write. Correct the reported cause,
23
+ then send a new reply ref on the same original correlation:
24
+
25
+ ```sh
26
+ projmux agent message send uid:<original-source-agent> --reply-to <original-request-ref> --message-ref <fresh-reply-ref> -- '<corrected reply>'
27
+ ```
28
+
29
+ Omitting `--message-ref` generates a fresh ref. In the qualified reply-only
30
+ execution guard, use the existing bounded command without that flag:
31
+
32
+ ```sh
33
+ projmux agent message send uid:<original-source-agent> --reply-to <original-request-ref> -- '<corrected reply>'
34
+ ```
35
+
36
+ A same-ref call returns the original immutable receipt and never pushes again.
37
+ Changing its payload is refused with the earlier ref and cause. A fresh ref
38
+ allows one new attempt only when every previous attempt is known-zero. Failed
39
+ records and the original request remain available; recovery never deletes or
40
+ resets them. Store capacity can refuse a new attempt rather than discard its
41
+ history.
42
+
43
+ Delivered replies, partial writes, unknown outcomes, pending attempts, expired
44
+ deadlines, and stale routes must not be resent. Inspect their status and the
45
+ provider outcome. A false `outcomeUnknown` flag by itself is insufficient:
46
+ the stored state and specific zero-write reason must agree. These rules also
47
+ apply after store reload and to concurrent callers. Automatic resend is
48
+ disabled, and replies whose delivery target is Codex do not gain a new retry
49
+ policy here.