Skip to content

install.sh aborts when agent harness tool config is a symlink instead of update the config #2671

Open

Description

@sanathusk

Version

codebase-memory-mcp 0.12.1

Platform

macOS (Intel)

Install channel

GitHub release archive / install.sh / install.ps1

Binary variant

standard

What happened, and what did you expect?

Current:

install.sh downloads, verifies, and installs the binary fine, then fails during agent configuration if any harness config file is a symlink.

In my case /Users/sanath/Library/Application Support/Zed/settings.json is a symlink (dotfiles checkout pattern), and the Zed step fails:

error: agent_config agent=Zed op=mcp_install path=/Users/sanath/Library/Application Support/Zed/settings.json (target: regular file, 379 bytes)

That single failure aborts the whole activation:

error: one or more agent configurations failed; the published/current executable was kept, and PATH/index cleanup was not attempted
error: activation stopped after one or more agent configuration or cleanup operations failed; the published/current executable was kept, and configuration changes that completed may remain. Please restart your coding-agent sessions after resolving the errors above.

Expected:

a user-owned symlink should either be followed (like a normal config file — this is the common ln -s ~/dotfiles/... pattern) or skipped with a warning for that one agent. It should not fail the entire install, keep the old executable, skip PATH/index cleanup, and leave other agents' configs partially applied.

Secondary diagnostics issue: the path is a symlink (mcp: ... is a symlink per local ls -l), but the error detail says (target: regular file, 379 bytes). That hides the actual refusal reason and makes triage hard. Compare src/cli/cli.c:describe_agent_config_target() + src/cli/config_edit_path.c:edit_path_classify() — the fail-closed symlink policy and the cbm_path_info_utf8() (lstat-based, src/foundation/compat_fs.c) reporting seem to disagree here.

Reproduction

  1. Code: N/A — installer bug, no repo to index. Config precondition:
    ls -l "/Users/sanath/Library/Application Support/Zed/settings.json" shows a symlink (e.g. settings.json -> ~/dotfiles/zed/settings.json, 379 bytes target).
  2. Command: curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash
  3. Result: binary verified (Verified candidate: codebase-memory-mcp 0.12.1), agents detected, OpenCode/Antigravity/etc. configured, then Zed mcp_install errors and the whole activation stops with the two error: lines above.
    Expected: install succeeds; Zed entry is written through the symlink (or Zed is skipped with a warning and install still completes).

Workarounds tried: none yet — replacing the symlink with a regular file, or --clients=<list without zed> / --skip-config, would presumably bypass it but defeats dotfiles management.

Logs

codebase-memory-mcp installer
  os:      darwin
  arch:    amd64
  target:  /Users/sanath/.local/bin/codebase-memory-mcp

Downloading codebase-memory-mcp-darwin-amd64.tar.gz...
######################################################################## 100.0%
Checksum verified.
Extracting...
Fixing macOS code signing...
Verified candidate: codebase-memory-mcp 0.12.1
codebase-memory-mcp install 0.12.1

Found 1 existing index(es). Keeping them. After install, re-index to pick up this version's improvements:
  /Users/sanath/.cache/codebase-memory-mcp/activity.db

xattr: /tmp/cbm-install-Sp6XB1/codebase-memory-mcp: No such xattr: com.apple.quarantine
/tmp/cbm-install-Sp6XB1/codebase-memory-mcp: replacing existing signature
codebase-memory-mcp 0.12.1
Stopping active CBM sessions and operations for install...
Installed binary -> /Users/sanath/.local/bin/codebase-memory-mcp

Detected agents: Claude-Code Codex Gemini-CLI Zed OpenCode Antigravity KiloCode VS-Code Cursor Cline Copilot-CLI Factory-Droid Goose Grok-Build Kimi Code CLI Amp Devin CLI / Local Pi Oh My Pi (omp)

Antigravity:
  mcp: /Users/sanath/.gemini/config/mcp_config.json
  instructions: /Users/sanath/.gemini/GEMINI.md
Zed:
error: agent_config agent=Zed op=mcp_install path=/Users/sanath/Library/Application Support/Zed/settings.json (target: regular file, 379 bytes)
  mcp: /Users/sanath/Library/Application Support/Zed/settings.json
  instructions: /Users/sanath/.config/zed/AGENTS.md
  skill: /Users/sanath/.agents/skills/codebase-memory/SKILL.md (1 installed)
KiloCode:
  mcp: /Users/sanath/.config/kilo/kilo.jsonc
  instructions: /Users/sanath/.config/kilo/rules/codebase-memory-mcp.md
  agent: /Users/sanath/.config/kilo/agents/codebase-memory-scout.md
  agent: /Users/sanath/.config/kilo/agents/codebase-memory.md
  agent: /Users/sanath/.config/kilo/agents/codebase-memory-auditor.md
Pi:
  instructions: /Users/sanath/.pi/agent/AGENTS.md
  skill: /Users/sanath/.pi/agent/skills/codebase-memory/SKILL.md (1 installed)
  extension: /Users/sanath/.pi/agent/extensions/cbmem.ts
error: one or more agent configurations failed; the published/current executable was kept, and PATH/index cleanup was not attempted
error: activation stopped after one or more agent configuration or cleanup operations failed; the published/current executable was kept, and configuration changes that completed may remain. Please restart your coding-agent sessions after resolving the errors above.

Diagnostics trajectory (memory / performance / leak issues)

## Diagnostics trajectory (memory / performance / leak issues)
N/A — install-time config failure, not a memory/performance issue.

Project scale (if relevant)

N/A

Confirmations

  • I searched existing issues and this is not a duplicate.
  • My reproduction uses shareable code (a dummy snippet or a public OSS repository), not proprietary code.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingeditor/integrationEditor compatibility and CLI integrationwindowsWindows-specific issues

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions