@dalmasonto/taskflow-mcp 1.0.26 → 1.0.27

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.
@@ -26,17 +26,26 @@ function detectTmuxPane(pid) {
26
26
  catch { /* tmux not available */ }
27
27
  return null;
28
28
  }
29
- /** Generate a unique agent name from the project folder, auto-suffixing on collision */
29
+ /** Generate a unique agent name from the project folder, auto-suffixing on collision.
30
+ * Cleans up dead entries it encounters so the name is available for INSERT. */
30
31
  function generateName(folderName) {
31
32
  const db = getDb();
32
- const existing = db.prepare('SELECT * FROM agent_registry WHERE name = ?').get(folderName);
33
- if (!existing || !isAlive(existing.pid)) {
33
+ const check = (name) => {
34
+ const row = db.prepare('SELECT * FROM agent_registry WHERE name = ?').get(name);
35
+ if (!row)
36
+ return true; // name is free
37
+ if (!isAlive(row.pid)) {
38
+ // Dead entry — remove it so the name can be reused via INSERT
39
+ db.prepare('DELETE FROM agent_registry WHERE id = ?').run(row.id);
40
+ return true;
41
+ }
42
+ return false; // name is taken by a live agent
43
+ };
44
+ if (check(folderName))
34
45
  return folderName;
35
- }
36
46
  for (let i = 2; i < 100; i++) {
37
47
  const candidate = `${folderName}:${i}`;
38
- const row = db.prepare('SELECT * FROM agent_registry WHERE name = ?').get(candidate);
39
- if (!row || !isAlive(row.pid))
48
+ if (check(candidate))
40
49
  return candidate;
41
50
  }
42
51
  return `${folderName}:${Date.now()}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dalmasonto/taskflow-mcp",
3
- "version": "1.0.26",
3
+ "version": "1.0.27",
4
4
  "description": "MCP server for TaskFlow — manage projects, tasks, timers, analytics via AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",