Environment: v0.10.2, Windows 11. Four related findings from one install/update cycle.
1. install has no per-client selector
install writes MCP config, agents, skills, instructions and hooks for every detected client (Claude Code, Codex, OpenCode, Cursor). We only wanted Claude + Codex; the OpenCode/Cursor integrations had to be reverted by hand — and the next install/update silently recreates them. A --clients=claude,codex style selector (or per-client confirmation in interactive mode) would fix this.
2. update -y ran a destructive step before a blocking interactive prompt
On 0.9.0 → 0.10.2, update -y auto-confirmed deletion of other projects' index files (two .db indexes, ~59 MB, lost) and then aborted on the interactive standard/ui variant chooser ("failed to read input" under a non-interactive shell). Destructive cleanup should be sequenced after the last prompt that can abort the run. #1538 removes the chooser, which fixes this particular abort but not the ordering principle; #1544 is adjacent.
3. ui_enabled is invisible to config list / config set
The only way to disable the UI HTTP listener (default 127.0.0.1:9749) is editing config.json ("ui_enabled": false) by hand — the key is not shown by config list, not settable by config set, and the server binary accepts --ui=false without effect. It took two debugging sessions to find the knob; meanwhile the daemon exposes a loopback HTTP surface that looked impossible to turn off.
4. Legacy hook cleanup aborts on an orphan marker
An earlier duplicated install left a Codex config.toml with a # <<< codebase-memory-mcp SessionStart <<< closing marker without its # >>> opener. install then fails that client with error: agent_config ... op=legacy_hook_cleanup and stops the activation ("one or more agent configurations failed"). Since the malformed state was produced by a previous installer run, cleanup could tolerate/strip orphan markers instead of aborting (self-heal).
Environment: v0.10.2, Windows 11. Four related findings from one install/update cycle.
1.
installhas no per-client selectorinstallwrites MCP config, agents, skills, instructions and hooks for every detected client (Claude Code, Codex, OpenCode, Cursor). We only wanted Claude + Codex; the OpenCode/Cursor integrations had to be reverted by hand — and the nextinstall/updatesilently recreates them. A--clients=claude,codexstyle selector (or per-client confirmation in interactive mode) would fix this.2.
update -yran a destructive step before a blocking interactive promptOn 0.9.0 → 0.10.2,
update -yauto-confirmed deletion of other projects' index files (two.dbindexes, ~59 MB, lost) and then aborted on the interactive standard/ui variant chooser ("failed to read input" under a non-interactive shell). Destructive cleanup should be sequenced after the last prompt that can abort the run. #1538 removes the chooser, which fixes this particular abort but not the ordering principle; #1544 is adjacent.3.
ui_enabledis invisible toconfig list/config setThe only way to disable the UI HTTP listener (default
127.0.0.1:9749) is editingconfig.json("ui_enabled": false) by hand — the key is not shown byconfig list, not settable byconfig set, and the server binary accepts--ui=falsewithout effect. It took two debugging sessions to find the knob; meanwhile the daemon exposes a loopback HTTP surface that looked impossible to turn off.4. Legacy hook cleanup aborts on an orphan marker
An earlier duplicated install left a Codex
config.tomlwith a# <<< codebase-memory-mcp SessionStart <<<closing marker without its# >>>opener.installthen fails that client witherror: agent_config ... op=legacy_hook_cleanupand stops the activation ("one or more agent configurations failed"). Since the malformed state was produced by a previous installer run, cleanup could tolerate/strip orphan markers instead of aborting (self-heal).