patchcord 0.3.86 → 0.3.88

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
@@ -799,7 +799,7 @@ if (!cmd || cmd === "install" || cmd === "agent" || cmd === "--token" || cmd ===
799
799
  const skillDest = join(cwd, ".agents", "skills", "patchcord");
800
800
  mkdirSync(skillDest, { recursive: true });
801
801
  writeFileSync(join(skillDest, "SKILL.md"),
802
- readFileSync(join(pluginRoot, "skills", "codex", "SKILL.md"), "utf-8"));
802
+ readFileSync(join(pluginRoot, "per-project-skills", "codex", "SKILL.md"), "utf-8"));
803
803
  const waitDest = join(cwd, ".agents", "skills", "patchcord-wait");
804
804
  mkdirSync(waitDest, { recursive: true });
805
805
  writeFileSync(join(waitDest, "SKILL.md"),
@@ -863,7 +863,7 @@ if (!cmd || cmd === "install" || cmd === "agent" || cmd === "--token" || cmd ===
863
863
  },
864
864
  }, null, 2) + "\n");
865
865
  writeFileSync(join(pluginDir, "skills", "patchcord", "SKILL.md"),
866
- readFileSync(join(pluginRoot, "skills", "codex", "SKILL.md"), "utf-8"));
866
+ readFileSync(join(pluginRoot, "per-project-skills", "codex", "SKILL.md"), "utf-8"));
867
867
  writeFileSync(join(pluginDir, "skills", "patchcord-wait", "SKILL.md"),
868
868
  readFileSync(join(pluginRoot, "skills", "wait", "SKILL.md"), "utf-8"));
869
869
 
@@ -887,7 +887,7 @@ if (!cmd || cmd === "install" || cmd === "agent" || cmd === "--token" || cmd ===
887
887
  const globalSkillDir = join(homedir(), ".agents", "skills", "patchcord");
888
888
  mkdirSync(globalSkillDir, { recursive: true });
889
889
  writeFileSync(join(globalSkillDir, "SKILL.md"),
890
- readFileSync(join(pluginRoot, "skills", "codex", "SKILL.md"), "utf-8"));
890
+ readFileSync(join(pluginRoot, "per-project-skills", "codex", "SKILL.md"), "utf-8"));
891
891
  const globalWaitDir = join(homedir(), ".agents", "skills", "patchcord-wait");
892
892
  mkdirSync(globalWaitDir, { recursive: true });
893
893
  writeFileSync(join(globalWaitDir, "SKILL.md"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "patchcord",
3
- "version": "0.3.86",
3
+ "version": "0.3.88",
4
4
  "description": "Cross-machine agent messaging for Claude Code and Codex",
5
5
  "author": "ppravdin",
6
6
  "license": "MIT",
@@ -26,6 +26,7 @@
26
26
  "hooks/",
27
27
  "scripts/",
28
28
  "skills/",
29
+ "per-project-skills/",
29
30
  "commands/",
30
31
  "README.md"
31
32
  ]
@@ -105,10 +105,20 @@ if [ -n "$NAMESPACE" ] && [ -n "$AGENT_ID" ]; then
105
105
  fi
106
106
  fi
107
107
 
108
- # ── Inbox notification ────────────────────────────────────────
108
+ # ── Inbox notification (deduplicated across Stop + Notification hooks) ──
109
109
  COUNT=$(echo "$RESPONSE" | jq -r '.count // .pending_count // 0' 2>/dev/null || echo "0")
110
110
 
111
111
  if [ "$COUNT" -gt 0 ]; then
112
+ NOTIFY_LOCK="/tmp/patchcord_notify_lock"
113
+ LOCK_AGE=5
114
+ if [ -f "$NOTIFY_LOCK" ]; then
115
+ LOCK_MTIME=$(stat -c %Y "$NOTIFY_LOCK" 2>/dev/null || stat -f %m "$NOTIFY_LOCK" 2>/dev/null || echo "0")
116
+ NOW=$(date +%s)
117
+ if [ $(( NOW - LOCK_MTIME )) -lt $LOCK_AGE ]; then
118
+ exit 0 # Already notified within 5s
119
+ fi
120
+ fi
121
+ touch "$NOTIFY_LOCK"
112
122
  jq -n --arg count "$COUNT" '{
113
123
  "decision": "block",
114
124
  "reason": ($count + " patchcord message(s) waiting. Call inbox() and reply to all immediately.")
File without changes
File without changes