sticky-note-cli 3.1.27 → 3.1.29

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/cli.js CHANGED
@@ -1120,9 +1120,11 @@ async function cmdInit() {
1120
1120
  mkdirSafe(path.join(envDir, "agents"));
1121
1121
  mkdirSafe(path.join(envDir, "commands"));
1122
1122
  if (!fs.existsSync(envManifestDest)) {
1123
- // Build manifest from detected MCP servers and skills
1123
+ // Build manifest from detected MCP servers and skills.
1124
+ // Skip permission-detected entries — they are not real server configs and would
1125
+ // be synced back into .mcp.json by session-start.js, breaking Claude Code.
1124
1126
  const manifestData = { version: "1", mcp_servers: {}, permissions: [], env_vars: {} };
1125
- for (const server of mcpServers) {
1127
+ for (const server of mcpServers.filter((s) => s.type !== "permission-detected")) {
1126
1128
  const entry = { type: server.type || "stdio", description: server.name, required: false };
1127
1129
  if (server.command) entry.command = server.command;
1128
1130
  if (server.args) entry.args = server.args;
@@ -1157,7 +1159,7 @@ async function cmdInit() {
1157
1159
  print(` [OK] Copied ${skills.length} detected skill(s) to environment/skills/`);
1158
1160
  }
1159
1161
  }
1160
- print(" [OK] Created environment directory (.sticky-note/environment/)");
1162
+ print(` [OK] Created environment directory (${envDir})`);
1161
1163
 
1162
1164
  // Force-add .claude/hooks/ and .claude/settings.json so git tracks them
1163
1165
  // (needed if .claude/ was previously in .gitignore)
@@ -1460,7 +1462,9 @@ function cmdUpdate() {
1460
1462
  mkdirSafe(path.join(envDir, "agents"));
1461
1463
  mkdirSafe(path.join(envDir, "commands"));
1462
1464
  if (!fs.existsSync(envManifestDest)) {
1463
- const detectedServers = Array.from(detectMcpServers().values());
1465
+ // Skip permission-detected entries — they are not real server configs and would
1466
+ // be synced back into .mcp.json by session-start.js, breaking Claude Code.
1467
+ const detectedServers = Array.from(detectMcpServers().values()).filter((s) => s.type !== "permission-detected");
1464
1468
  const manifestData = { version: "1", mcp_servers: {}, permissions: [], env_vars: {} };
1465
1469
  for (const server of detectedServers) {
1466
1470
  const entry = { type: server.type || "stdio", description: server.name, required: false };
@@ -1490,7 +1494,7 @@ function cmdUpdate() {
1490
1494
  }
1491
1495
  }
1492
1496
  fs.writeFileSync(envManifestDest, JSON.stringify(manifestData, null, 2) + "\n");
1493
- print(` [OK] Created .sticky-note/environment/ (${detectedServers.length} MCP server(s) detected)`);
1497
+ print(` [OK] Created environment/ in ${envDir} (${detectedServers.length} MCP server(s) detected)`);
1494
1498
  }
1495
1499
 
1496
1500
  print(`\n ✨ Scripts updated to v${VERSION}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sticky-note-cli",
3
- "version": "3.1.27",
3
+ "version": "3.1.29",
4
4
  "description": "Human-to-human handoff for AI coding assistants. Git-backed shared memory for Claude Code and Copilot CLI.",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -745,6 +745,7 @@ function ensureEnvironmentProvisioned() {
745
745
  let mcpChanged = false;
746
746
  for (const [name, serverDef] of Object.entries(mcpServers)) {
747
747
  if (mcpConfig.mcpServers[name]) continue; // already present
748
+ if (serverDef.type === "permission-detected") continue; // not a real server config
748
749
  if (hasEnvPlaceholders(serverDef)) {
749
750
  if (debug) process.stderr.write(`[sticky-note] skipping MCP server "${name}" (has placeholders)\n`);
750
751
  continue;