Skip to content

chore: update pull request - #338

Merged
edheltzel merged 1 commit into
mainfrom
fix/mcp-template-name-on-main
Oct 19, 2026
Merged

edheltzel merged 1 commit into
mainfrom
fix/mcp-template-name-on-main

Conversation

@edheltzel

Copy link
Copy Markdown
Owner

What Changed

Final changed paths and statuses:

M	templates/mcp.json.template

Risk Assessment

✅ Low: The single command replacement matches the declared executable, sibling templates, and issue #277 without adding unnecessary behavior.

Testing

Locked dependency installation and production build passed. Live checks reproduced the baseline startup failure and verified corrected startup, memory persistence, and database isolation. Evidence was retained, all children exited, and disposable files were removed.

  • Live validation: ✅ go - 3 of 3 scenarios driven live against the product
Scenario Result Live Evidence
Load the template with only the current executable available: the old command fails and recall-mcp connects. ✅ pass live Live CLI and MCP transcript: baseline reports mem-mcp ENOENT; corrected template reports Connected.
Discover Recall tools and retrieve a stored memory after restarting the server. ✅ pass live Live CLI and MCP transcript: tools/list, memory_add, memory_search, fresh connection, and persisted SQLite rows.
Launch from a directory containing spaces and keep default and overridden database stores isolated. ✅ pass live Live CLI and MCP transcript: isolated default-store connection and separate custom-store rows.
Evidence: Live CLI and MCP transcript
Recall MCP template live validation
template consumed by host and MCP client
{
  "mcpServers": {
    "recall-memory": {
      "command": "recall-mcp",
      "args": []
    }
  }
}

disposable storage paths
{
  "custom": "~/.no-mistakes/worktrees/fd32172f1538/01M55747SPNKVCAWTV1TV6N4ED/.mcp-template-validation/custom-store/custom database/recall.db",
  "default": "~/.no-mistakes/worktrees/fd32172f1538/01M55747SPNKVCAWTV1TV6N4ED/.mcp-template-validation/default-store/home/.agents/Recall/recall.db",
  "runtimeHomes": [
    "~/.no-mistakes/worktrees/fd32172f1538/01M55747SPNKVCAWTV1TV6N4ED/.mcp-template-validation/custom-store/home/.agents/Recall",
    "~/.no-mistakes/worktrees/fd32172f1538/01M55747SPNKVCAWTV1TV6N4ED/.mcp-template-validation/default-store/home/.agents/Recall"
  ]
}

native host command
{
  "command": [
    "~/.local/bin/claude",
    "mcp",
    "get",
    "recall-memory"
  ],
  "code": 0,
  "signal": null,
  "stdout": "recall-memory:\n  Scope: User config (available in all your projects)\n  Status: ✘ Failed to connect\n  Issue: ENOENT: Executable not found in $PATH: \"mem-mcp\"\n  Type: stdio\n  Command: mem-mcp\n  Args:\n\nTo remove this server, run: claude mcp remove recall-memory -s user\n",
  "stderr": ""
}

native host command
{
  "command": [
    "~/.local/bin/claude",
    "mcp",
    "get",
    "recall-memory"
  ],
  "code": 0,
  "signal": null,
  "stdout": "recall-memory:\n  Scope: User config (available in all your projects)\n  Status: ✔ Connected\n  Type: stdio\n  Command: recall-mcp\n  Args:\n\nTo remove this server, run: claude mcp remove recall-memory -s user\n",
  "stderr": ""
}

native host command
{
  "command": [
    "~/.local/bin/claude",
    "mcp",
    "list"
  ],
  "code": 0,
  "signal": null,
  "stdout": "Checking MCP server health…\n\nrecall-memory: recall-mcp  - ✔ Connected\ncodegraph: codegraph serve --mcp - ⏸ Pending approval (run `claude` to approve)\n",
  "stderr": ""
}

custom-store first connection: initialize
{
  "name": "recall-memory",
  "version": "0.10.2"
}

tools/list
[
  "context_for_agent",
  "decision_update",
  "loa_show",
  "memory_add",
  "memory_dump",
  "memory_hybrid_search",
  "memory_recall",
  "memory_search",
  "memory_stats"
]

MCP memory_add
{
  "arguments": {
    "type": "breadcrumb",
    "content": "templatenameboundaryoctober remains available through the canonical Recall MCP registration",
    "project": "template-live-check"
  },
  "response": {
    "content": [
      {
        "type": "text",
        "text": "Added breadcrumb #1: templatenameboundaryoctober remains available through the canonical Recall MCP registration"
      }
    ]
  }
}

MCP memory_search
{
  "arguments": {
    "query": "templatenameboundaryoctober",
    "table": "breadcrumbs",
    "project": "template-live-check"
  },
  "response": {
    "content": [
      {
        "type": "text",
        "text": "Found 1 results for \"templatenameboundaryoctober\":\n\n[breadcrumbs#1] template-live-check | 2026-10-17 15:28:39 | provenance: user_authored\ntemplatenameboundaryoctober remains available through the canonical Recall MCP registration"
      }
    ]
  }
}

custom-store first connection: server exit
{
  "code": 0,
  "signal": null,
  "stderr": "RECALL MCP server running\n"
}

custom-store fresh connection: initialize
{
  "name": "recall-memory",
  "version": "0.10.2"
}

MCP memory_search
{
  "arguments": {
    "query": "templatenameboundaryoctober",
    "table": "breadcrumbs",
    "project": "template-live-check"
  },
  "response": {
    "content": [
      {
        "type": "text",
        "text": "Found 1 results for \"templatenameboundaryoctober\":\n\n[breadcrumbs#1] template-live-check | 2026-10-17 15:28:39 | provenance: user_authored\ntemplatenameboundaryoctober remains available through the canonical Recall MCP registration"
      }
    ]
  }
}

custom-store fresh connection: server exit
{
  "code": 0,
  "signal": null,
  "stderr": "RECALL MCP server running\n"
}

persisted custom database rows
[
  {
    "content": "templatenameboundaryoctober remains available through the canonical Recall MCP registration",
    "project": "template-live-check"
  }
]

isolated default-store connection: initialize
{
  "name": "recall-memory",
  "version": "0.10.2"
}

MCP memory_search
{
  "arguments": {
    "query": "templatenameboundaryoctober",
    "table": "breadcrumbs",
    "project": "template-live-check"
  },
  "response": {
    "content": [
      {
        "type": "text",
        "text": "No results found for: \"templatenameboundaryoctober\""
      }
    ]
  }
}

MCP memory_add
{
  "arguments": {
    "type": "breadcrumb",
    "content": "isolateddefaultstoremarker",
    "project": "template-default-check"
  },
  "response": {
    "content": [
      {
        "type": "text",
        "text": "Added breadcrumb #1: isolateddefaultstoremarker"
      }
    ]
  }
}

MCP memory_search
{
  "arguments": {
    "query": "isolateddefaultstoremarker",
    "table": "breadcrumbs",
    "project": "template-default-check"
  },
  "response": {
    "content": [
      {
        "type": "text",
        "text": "Found 1 results for \"isolateddefaultstoremarker\":\n\n[breadcrumbs#1] template-default-check | 2026-10-17 15:28:39 | provenance: user_authored\nisolateddefaultstoremarker"
      }
    ]
  }
}

isolated default-store connection: server exit
{
  "code": 0,
  "signal": null,
  "stderr": "RECALL MCP server running\n"
}

custom store remains separate
[
  {
    "content": "templatenameboundaryoctober remains available through the canonical Recall MCP registration",
    "project": "template-live-check"
  }
]
Evidence: Scenario results and child exit statuses
{
  "outcomes": [
    {
      "name": "With only the current executable on PATH, the old mem-mcp template fails and the corrected recall-mcp template connects",
      "result": "pass",
      "live": true
    },
    {
      "name": "The template exposes Recall tools and a stored memory survives a fresh server connection",
      "result": "pass",
      "live": true
    },
    {
      "name": "The unchanged template launches from a path with spaces without a database override and does not leak the other store",
      "result": "pass",
      "live": true
    }
  ],
  "exits": [
    {
      "command": [
        "~/.local/bin/claude",
        "mcp",
        "get",
        "recall-memory"
      ],
      "code": 0,
      "signal": null
    },
    {
      "command": [
        "~/.local/bin/claude",
        "mcp",
        "get",
        "recall-memory"
      ],
      "code": 0,
      "signal": null
    },
    {
      "command": [
        "~/.local/bin/claude",
        "mcp",
        "list"
      ],
      "code": 0,
      "signal": null
    },
    {
      "command": [
        "recall-mcp"
      ],
      "name": "custom-store first connection",
      "code": 0,
      "signal": null
    },
    {
      "command": [
        "recall-mcp"
      ],
      "name": "custom-store fresh connection",
      "code": 0,
      "signal": null
    },
    {
      "command": [
        "recall-mcp"
      ],
      "name": "isolated default-store connection",
      "code": 0,
      "signal": null
    }
  ],
  "records": [
    {
      "label": "template consumed by host and MCP client",
      "value": {
        "mcpServers": {
          "recall-memory": {
            "command": "recall-mcp",
            "args": []
          }
        }
      }
    },
    {
      "label": "disposable storage paths",
      "value": {
        "custom": "~/.no-mistakes/worktrees/fd32172f1538/01M55747SPNKVCAWTV1TV6N4ED/.mcp-template-validation/custom-store/custom database/recall.db",
        "default": "~/.no-mistakes/worktrees/fd32172f1538/01M55747SPNKVCAWTV1TV6N4ED/.mcp-template-validation/default-store/home/.agents/Recall/recall.db",
        "runtimeHomes": [
          "~/.no-mistakes/worktrees/fd32172f1538/01M55747SPNKVCAWTV1TV6N4ED/.mcp-template-validation/custom-store/home/.agents/Recall",
          "~/.no-mistakes/worktrees/fd32172f1538/01M55747SPNKVCAWTV1TV6N4ED/.mcp-template-validation/default-store/home/.agents/Recall"
        ]
      }
    },
    {
      "label": "native host command",
      "value": {
        "command": [
          "~/.local/bin/claude",
          "mcp",
          "get",
          "recall-memory"
        ],
        "code": 0,
        "signal": null,
        "stdout": "recall-memory:\n  Scope: User config (available in all your projects)\n  Status: ✘ Failed to connect\n  Issue: ENOENT: Executable not found in $PATH: \"mem-mcp\"\n  Type: stdio\n  Command: mem-mcp\n  Args:\n\nTo remove this server, run: claude mcp remove recall-memory -s user\n",
        "stderr": ""
      }
    },
    {
      "label": "native host command",
      "value": {
        "command": [
          "~/.local/bin/claude",
          "mcp",
          "get",
          "recall-memory"
        ],
        "code": 0,
        "signal": null,
        "stdout": "recall-memory:\n  Scope: User config (available in all your projects)\n  Status: ✔ Connected\n  Type: stdio\n  Command: recall-mcp\n  Args:\n\nTo remove this server, run: claude mcp remove recall-memory -s user\n",
        "stderr": ""
      }
    },
    {
      "label": "native host command",
      "value": {
        "command": [
          "~/.local/bin/claude",
          "mcp",
          "list"
        ],
        "code": 0,
        "signal": null,
        "stdout": "Checking MCP server health…\n\nrecall-memory: recall-mcp  - ✔ Connected\ncodegraph: codegraph serve --mcp - ⏸ Pending approval (run `claude` to approve)\n",
        "stderr": ""
      }
    },
    {
      "label": "custom-store first connection: initialize",
      "value": {
        "name": "recall-memory",
        "version": "0.10.2"
      }
    },
    {
      "label": "tools/list",
      "value": [
        "context_for_agent",
        "decision_update",
        "loa_show",
        "memory_add",
        "memory_dump",
        "memory_hybrid_search",
        "memory_recall",
        "memory_search",
        "memory_stats"
      ]
    },
    {
      "label": "MCP memory_add",
      "value": {
        "arguments": {
          "type": "breadcrumb",
          "content": "templatenameboundaryoctober remains available through the canonical Recall MCP registration",
          "project": "template-live-check"
        },
        "response": {
          "content": [
            {
              "type": "text",
              "text": "Added breadcrumb #1: templatenameboundaryoctober remains available through the canonical Recall MCP registration"
            }
          ]
        }
      }
    },
    {
      "label": "MCP memory_search",
      "value": {
        "arguments": {
          "query": "templatenameboundaryoctober",
          "table": "breadcrumbs",
          "project": "template-live-check"
        },
        "response": {
          "content": [
            {
              "type": "text",
              "text": "Found 1 results for \"templatenameboundaryoctober\":\n\n[breadcrumbs#1] template-live-check | 2026-10-17 15:28:39 | provenance: user_authored\ntemplatenameboundaryoctober remains available through the canonical Recall MCP registration"
            }
          ]
        }
      }
    },
    {
      "label": "custom-store first connection: server exit",
      "value": {
        "code": 0,
        "signal": null,
        "stderr": "RECALL MCP server running\n"
      }
    },
    {
      "label": "custom-store fresh connection: initialize",
      "value": {
        "name": "recall-memory",
        "version": "0.10.2"
      }
    },
    {
      "label": "MCP memory_search",
      "value": {
        "arguments": {
          "query": "templatenameboundaryoctober",
          "table": "breadcrumbs",
          "project": "template-live-check"
        },
        "response": {
          "content": [
            {
              "type": "text",
              "text": "Found 1 results for \"templatenameboundaryoctober\":\n\n[breadcrumbs#1] template-live-check | 2026-10-17 15:28:39 | provenance: user_authored\ntemplatenameboundaryoctober remains available through the canonical Recall MCP registration"
            }
          ]
        }
      }
    },
    {
      "label": "custom-store fresh connection: server exit",
      "value": {
        "code": 0,
        "signal": null,
        "stderr": "RECALL MCP server running\n"
      }
    },
    {
      "label": "persisted custom database rows",
      "value": [
        {
          "content": "templatenameboundaryoctober remains available through the canonical Recall MCP registration",
          "project": "template-live-check"
        }
      ]
    },
    {
      "label": "isolated default-store connection: initialize",
      "value": {
        "name": "recall-memory",
        "version": "0.10.2"
      }
    },
    {
      "label": "MCP memory_search",
      "value": {
        "arguments": {
          "query": "templatenameboundaryoctober",
          "table": "breadcrumbs",
          "project": "template-live-check"
        },
        "response": {
          "content": [
            {
              "type": "text",
              "text": "No results found for: \"templatenameboundaryoctober\""
            }
          ]
        }
      }
    },
    {
      "label": "MCP memory_add",
      "value": {
        "arguments": {
          "type": "breadcrumb",
          "content": "isolateddefaultstoremarker",
          "project": "template-default-check"
        },
        "response": {
          "content": [
            {
              "type": "text",
              "text": "Added breadcrumb #1: isolateddefaultstoremarker"
            }
          ]
        }
      }
    },
    {
      "label": "MCP memory_search",
      "value": {
        "arguments": {
          "query": "isolateddefaultstoremarker",
          "table": "breadcrumbs",
          "project": "template-default-check"
        },
        "response": {
          "content": [
            {
              "type": "text",
              "text": "Found 1 results for \"isolateddefaultstoremarker\":\n\n[breadcrumbs#1] template-default-check | 2026-10-17 15:28:39 | provenance: user_authored\nisolateddefaultstoremarker"
            }
          ]
        }
      }
    },
    {
      "label": "isolated default-store connection: server exit",
      "value": {
        "code": 0,
        "signal": null,
        "stderr": "RECALL MCP server running\n"
      }
    },
    {
      "label": "custom store remains separate",
      "value": [
        {
          "content": "templatenameboundaryoctober remains available through the canonical Recall MCP registration",
          "project": "template-live-check"
        }
      ]
    }
  ]
}

Pipeline

Updates from git push no-mistakes

⏭️ **Intent** - skipped

Step was skipped.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

✅ **Test** - passed

✅ No issues found.

  • Live validation: ✅ go - 3 of 3 scenarios driven live against the product
Scenario Result Live Evidence
Load the template with only the current executable available: the old command fails and recall-mcp connects. ✅ pass live Live CLI and MCP transcript: baseline reports mem-mcp ENOENT; corrected template reports Connected.
Discover Recall tools and retrieve a stored memory after restarting the server. ✅ pass live Live CLI and MCP transcript: tools/list, memory_add, memory_search, fresh connection, and persisted SQLite rows.
Launch from a directory containing spaces and keep default and overridden database stores isolated. ✅ pass live Live CLI and MCP transcript: isolated default-store connection and separate custom-store rows.
  • bun install --frozen-lockfile
  • bun run build
  • bun .mcp-template-validation/driver.mjs
  • Isolated claude mcp get recall-memory against baseline and target configurations; claude mcp list against target.
  • Real MCP tool discovery, memory storage/search, server restart, and read-only SQLite verification.
  • Default/custom database isolation from directories containing spaces.
  • Verified child exit statuses, removed disposable files and test-installed dependencies, and confirmed clean git status --short.
⚠️ **Document** - 1 error
  • 🚨 GitButler inspection returns setup_required. Repository rules prohibit raw Git, and this phase cannot initialize GitButler. Provide the base-to-target diff or authorize read-only Git inspection so the documentation review can finish. No documentation edits made; configured lint passes.
✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

@edheltzel
edheltzel force-pushed the fix/mcp-template-name-on-main branch from b95b723 to abdd642 Compare October 18, 2026 21:46
@edheltzel
edheltzel merged commit b836cee into main Oct 19, 2026
3 checks passed
@edheltzel
edheltzel deleted the fix/mcp-template-name-on-main branch October 19, 2026 11:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants