patchcord 0.6.5 → 0.6.7

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "patchcord",
3
3
  "description": "Cross-machine agent messaging. Messages from other agents land in the inbox and wake the agent to reply.",
4
- "version": "0.6.5",
4
+ "version": "0.6.7",
5
5
  "author": {
6
6
  "name": "ppravdin"
7
7
  },
package/bin/patchcord.mjs CHANGED
@@ -1195,7 +1195,10 @@ if (cmd === "login" || cmd === "orchestrator" || cmd === "teamlead" || cmd === "
1195
1195
  const hostname = run("hostname -s") || run("hostname") || "unknown";
1196
1196
  writeWorkerConfig(tool, dir, base, json.token, hostname);
1197
1197
  if (role) {
1198
- try { writeFileSync(join(dir, "AGENTS.md"), `# ${arg} role: ${role}\n\nYou are \`${arg}\` in the \`${ns}\` Patchcord team. Role: ${role}.\nCoordinate with teammates over Patchcord (inbox / send_message / reply).\n`); } catch {}
1198
+ const agyNote = (tool === "antigravity" || tool === "agy")
1199
+ ? "\nIf the `inbox` MCP tool is not loaded, Patchcord is disconnected — do not run the patchcord CLI or read tokens from config files; do the user's/mux task only.\n"
1200
+ : "";
1201
+ try { writeFileSync(join(dir, "AGENTS.md"), `# ${arg} — role: ${role}\n\nYou are \`${arg}\` in the \`${ns}\` Patchcord team. Role: ${role}.\nCoordinate with teammates over Patchcord (inbox / send_message / reply).${agyNote}`); } catch {}
1199
1202
  }
1200
1203
  // Record in the local team manifest so `team launch` / `team status` see it.
1201
1204
  try {
@@ -1949,6 +1952,18 @@ if (!cmd || cmd === "install" || cmd === "agent" || cmd?.startsWith("--")) {
1949
1952
  if (removedStaleGlobal) {
1950
1953
  globalChanges.push("Removed global Patchcord skills/instructions (agy reads ~/.gemini/skills — per-project only)");
1951
1954
  }
1955
+ // agy-cli loads ALL of ~/.gemini/skills in every folder — warn if orchestrator/mux
1956
+ // skills are present (they mention patchcord/inbox and trigger CLI/token scavenging).
1957
+ const geminiSkillsRoot = join(HOME, ".gemini", "skills");
1958
+ if (existsSync(geminiSkillsRoot)) {
1959
+ const noisy = ["orchestrator-comms", "orchestrator-team", "orchestrator-flow", "mux", "actor-lead", "actor-team-lead", "patchcord"];
1960
+ let entries = [];
1961
+ try { entries = readdirSync(geminiSkillsRoot, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name); } catch {}
1962
+ const found = entries.filter((n) => noisy.some((p) => n.includes(p)));
1963
+ if (found.length) {
1964
+ console.log(` ${M.yellow}warning:${M.rst} ~/.gemini/skills has global skills (${found.join(", ")}) — agy-cli reads them in every folder and may hunt patchcord without MCP. Keep orchestrator/patchcord skills in ~/.claude/skills or per-project .agents/skills only.`);
1965
+ }
1966
+ }
1952
1967
  // true = configured, false = file absent (definitely not), null = unparseable (unknown)
1953
1968
  const hasPatchcordMcp = (p, keyPath) => {
1954
1969
  if (!existsSync(p)) return false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "patchcord",
3
- "version": "0.6.5",
3
+ "version": "0.6.7",
4
4
  "description": "Cross-machine agent messaging for Claude Code and Codex",
5
5
  "scripts": {
6
6
  "version": "node scripts/sync-plugin-version.mjs && git add .claude-plugin/plugin.json"
@@ -1,15 +1,24 @@
1
1
  ---
2
2
  name: patchcord-inbox
3
- description: Patchcord MCP inbox workflow for this project's Antigravity agent
3
+ description: >
4
+ Antigravity-only. Patchcord MCP inbox workflow for THIS project's agy seat.
5
+ Active ONLY when mcp_patchcord_inbox (or patchcord/inbox) is loaded — ignore
6
+ entirely when Patchcord MCP is absent.
4
7
  ---
5
8
 
6
9
  ## Applies only when Patchcord MCP tools are loaded
7
10
 
8
- If the `inbox` MCP tool is not available in this session, this skill does not
9
- apply. Do nothing: do not run the Patchcord CLI, read a token from a config
10
- file, or call the HTTP API. A missing project MCP config is a normal state.
11
+ If the `inbox` MCP tool is **not** available in this session, this skill does not
12
+ apply. **Stop here.** Do nothing patchcord-related:
11
13
 
12
- Invoke with `/patchcord-inbox` when Patchcord MCP is connected in this project.
14
+ - Do **not** run the `patchcord` CLI (`whoami`, `inbox`, `recall`, HTTP calls, etc.).
15
+ - Do **not** read a bearer token from `.agents/mcp_config.json`, `.mcp.json`,
16
+ `settings.json`, env vars, or **any other project's folder**.
17
+ - Do **not** "check patchcord", "find the session", or fabricate an MCP connection.
18
+ - A missing MCP tool is normal — proceed with the user's actual task (mux paste,
19
+ files, commands) with zero patchcord steps.
20
+
21
+ Invoke with `/patchcord-inbox` only when Patchcord MCP is connected in this project.
13
22
 
14
23
  Call the `inbox` MCP tool now. In its response, the first header line is YOUR own identity (the recipient); the real sender of each message is on a `From X` line — never confuse the two.
15
24
 
@@ -1,13 +1,15 @@
1
1
  ---
2
2
  name: patchcord-wait
3
- description: Block until one Patchcord message arrives (this project's Antigravity agent)
3
+ description: >
4
+ Antigravity-only. Block until one Patchcord message arrives. Active ONLY when
5
+ wait_for_message MCP is loaded — ignore when Patchcord MCP is absent.
4
6
  ---
5
7
 
6
8
  ## Applies only when Patchcord MCP tools are loaded
7
9
 
8
- If the `wait_for_message` MCP tool is not available in this session, this skill
9
- does not apply. Do nothing: do not run the Patchcord CLI, read a token from a
10
- config file, or call the HTTP API. A missing project MCP config is a normal state.
10
+ If the `wait_for_message` MCP tool is **not** available in this session, this skill
11
+ does not apply. **Stop here.** Do not run the Patchcord CLI, read tokens from config
12
+ files (this project or any other), or call the HTTP API.
11
13
 
12
14
  Invoke with `/patchcord-wait` when Patchcord MCP is connected in this project.
13
15