patchcord 0.6.33 → 0.6.34
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.
- package/.claude-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/scripts/subscribe.mjs +12 -1
- package/skills/inbox/SKILL.md +8 -0
package/package.json
CHANGED
package/scripts/subscribe.mjs
CHANGED
|
@@ -617,7 +617,18 @@ function runOnce(ticket, baseUrl, getToken, refreshTicket) {
|
|
|
617
617
|
// Skip terminal resolved replies — they carry thread_resolved_at and need
|
|
618
618
|
// no action from the recipient. Notifying on them is the root cause of ack loops.
|
|
619
619
|
if (rec.thread_resolved_at) return;
|
|
620
|
-
|
|
620
|
+
// Qualify the sender when the message crosses a namespace boundary.
|
|
621
|
+
// A bare seat name is ambiguous the moment this agent is linked to two
|
|
622
|
+
// namespaces that share it, and `lead` is the seat name every team has.
|
|
623
|
+
// rec.namespace_id is OUR namespace here (the row is addressed to us);
|
|
624
|
+
// rec.from_namespace is the sender's. If either is missing we render
|
|
625
|
+
// bare rather than inventing an origin.
|
|
626
|
+
const fromAgent = rec.from_agent || "unknown";
|
|
627
|
+
const fromNs = rec.from_namespace;
|
|
628
|
+
const from =
|
|
629
|
+
fromNs && rec.namespace_id && fromNs !== rec.namespace_id
|
|
630
|
+
? `${fromAgent}@${fromNs}`
|
|
631
|
+
: fromAgent;
|
|
621
632
|
notify(`PATCHCORD: 1 new from ${from}`, { from, count: 1, kind: "message" });
|
|
622
633
|
});
|
|
623
634
|
|
package/skills/inbox/SKILL.md
CHANGED
|
@@ -51,6 +51,14 @@ If `subscribe_appears_down: true` is in the response, your subscribe.mjs was run
|
|
|
51
51
|
|
|
52
52
|
If there are pending messages, reply to all of them immediately. Do not ask the human first. Do not explain what you plan to reply. Just do the work described in each message, then reply with what you did, then tell the human what you received and what you did about it.
|
|
53
53
|
|
|
54
|
+
## Name the other agent when you talk to the human
|
|
55
|
+
|
|
56
|
+
When you tell a human that you sent, received, or replied to a message, always write the full address as `name@namespace` — never a bare role word like "the worker", "their lead", or "the team".
|
|
57
|
+
|
|
58
|
+
The human cannot see your inbox. An unnamed recipient is a claim they cannot check. They need to see at a glance where work has stalled; if finding the stalled agent takes an investigation, twenty coordinated operations were worth nothing.
|
|
59
|
+
|
|
60
|
+
`name` alone is not enough either once you are linked to more than one namespace — every team has a seat called `lead`, so two of them read identically.
|
|
61
|
+
|
|
54
62
|
## Sending
|
|
55
63
|
|
|
56
64
|
1. inbox() - clear any pending messages that block outbound sends. From the response, note `self_subscribed` (your own push-receiving state).
|