patchcord 0.3.72 → 0.3.74

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/bin/patchcord.mjs CHANGED
@@ -828,6 +828,15 @@ if (!cmd || cmd === "install" || cmd === "agent" || cmd === "--token" || cmd ===
828
828
  writeFileSync(mcpPath, JSON.stringify(mcpConfig, null, 2) + "\n");
829
829
  }
830
830
  console.log(`\n ${green}✓${r} Claude Code configured: ${dim}${mcpPath}${r}`);
831
+
832
+ // Enable patchcord statusline (agent identity + inbox count in status bar)
833
+ try {
834
+ const enableScript = join(pluginRoot, "scripts", "enable-statusline.sh");
835
+ if (existsSync(enableScript)) {
836
+ execSync(`bash "${enableScript}" --full`, { stdio: "ignore" });
837
+ console.log(` ${green}✓${r} Statusline enabled`);
838
+ }
839
+ } catch {}
831
840
  }
832
841
 
833
842
  // Warn about gitignore for per-project configs with tokens
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "patchcord",
3
- "version": "0.3.72",
3
+ "version": "0.3.74",
4
4
  "description": "Cross-machine agent messaging for Claude Code and Codex",
5
5
  "author": "ppravdin",
6
6
  "license": "MIT",
@@ -65,9 +65,14 @@ If send_message fails with a send gate error: call inbox(), reply to or resolve
65
65
 
66
66
  1. Read the message from `inbox()` or `wait_for_message()`
67
67
  2. Do the work - use real code, real files, real results from your project
68
- 3. `reply(message_id, "here's what I did: [concrete changes]")` - use `resolve=true` when the thread is complete
68
+ 3. Reply with the right flag:
69
+ - `reply(message_id, "done: [details]")` — work done, sender might follow up
70
+ - `reply(message_id, "done: [details]", resolve=true)` — work done, conversation finished
71
+ - `reply(message_id, "ack, prioritizing [other task] first", defer=true)` — acknowledged but work not done yet. Message stays in your inbox as a reminder.
69
72
  4. If sender is online: `wait_for_message()` for follow-ups
70
73
 
74
+ When you have multiple pending messages, prioritize by urgency. Use `defer=true` for tasks you'll do later — if you reply without doing the work and don't defer, the message vanishes from your inbox and you will never remember to do it.
75
+
71
76
  ## Cross-user messaging (Gate)
72
77
 
73
78
  To message a user outside your namespace, use `@username` as the to_agent. Example: `send_message("@maria", "hello")`. The message goes through their Gate - connection approval and guardrails apply. If the connection isn't approved yet, your message is held pending their approval (cap 5, 7-day TTL).
@@ -52,23 +52,19 @@ If send_message fails with a send gate error: call inbox(), reply to or resolve
52
52
 
53
53
  1. Read the message
54
54
  2. Do the work described in the message - using your project's actual code, real files, real lines
55
- 3. reply(message_id, "here's what I did: [concrete changes with file paths]") - use `resolve=true` when the thread is complete and no further reply is expected
55
+ 3. Reply with what you did, choosing the right flag:
56
+ - `reply(message_id, "done: [details]")` — work done, sender might follow up
57
+ - `reply(message_id, "done: [details]", resolve=true)` — work done, conversation finished. Notifies the sender.
58
+ - `reply(message_id, "ack, prioritizing [other task] first", defer=true)` — you acknowledged but haven't done the work yet. The message stays in your inbox as a reminder.
56
59
  4. wait_for_message() if the sender is online - stay responsive for follow-ups
57
60
  5. If you can't do the work, say specifically what's blocking you. Don't guess about another agent's code.
58
61
 
62
+ When you have multiple pending messages, prioritize by urgency. Use `defer=true` for tasks you'll do later — if you reply without doing the work and don't defer, the message vanishes from your inbox and you will never remember to do it.
63
+
59
64
  ## Cross-user messaging (Gate)
60
65
 
61
66
  To message a user outside your namespace, use `@username` as the to_agent. Example: `send_message("@maria", "hello")`. The message goes through their Gate - connection approval and guardrails apply. If the connection isn't approved yet, your message is held pending their approval (cap 5, 7-day TTL).
62
67
 
63
- ## Deferred messages
64
-
65
- reply(message_id, content, defer=true) sends a reply but keeps the original message visible in the inbox as "deferred". Use this when:
66
- - The message needs attention from another agent or a later session
67
- - You want to acknowledge receipt but can't fully handle it now
68
- - The human says to mark/defer something for later
69
-
70
- Deferred messages survive context compaction - the agent won't forget them.
71
-
72
68
  ## File sharing
73
69
 
74
70
  Three modes, choose based on context:
@@ -73,10 +73,14 @@ After sending to an offline agent, tell the human: "Message sent. [agent] is not
73
73
 
74
74
  1. Read messages from inbox()
75
75
  2. Check the context tag - is this for your chat?
76
- 3. If yes: answer the question, reply(message_id, "[your-tag] your answer")
76
+ 3. If yes: do the work, then reply with the right flag:
77
+ - `reply(message_id, "[tag] done: [details]")` — work done, sender might follow up
78
+ - `reply(message_id, "[tag] done", resolve=true)` — work done, conversation finished
79
+ - `reply(message_id, "[tag] ack, will do after [other task]", defer=true)` — acknowledged but work not done yet. Message stays in inbox.
77
80
  4. If no: reply(message_id, "For [other-tag] chat", defer=true)
78
- 5. If thread is complete: reply(message_id, "[your-tag] done", resolve=true)
79
- 6. wait_for_message() - stay responsive for follow-ups
81
+ 5. wait_for_message() - stay responsive for follow-ups
82
+
83
+ When you have multiple pending messages, prioritize by urgency. Use `defer=true` for tasks you'll do later — if you reply without doing the work and don't defer, the message vanishes from your inbox and you will never remember to do it.
80
84
 
81
85
  ## File sharing
82
86