Files
dotfiles/common/claude/memory/-home-connor/dotbot-force-deletes-live-dirs.md
T
2026-10-22 09:21:28 -04:00

1.7 KiB

name, description, metadata
name description metadata
dotbot-force-deletes-live-dirs dotbot's link defaults are force+relink, so install DELETES a real file or directory at any link target — including the Claude memory dir, which is now a linked directory
type
project

Every dotbot config in ~/.dotfiles restates link: {create: true, relink: true, force: true} (meta/base.conf.yaml and each meta/hosts/*.conf.yaml — dotbot does not carry a defaults block between files). force: true means install removes whatever real file or directory sits at a link target and replaces it with the symlink, without asking.

As of 2026-10-03 that now includes a directory of live data:

~/.claude/projects/-home-connor/memory: common/claude/memory/-home-connor

Why this matters: before that link existed, the repo held 6 plain copies of memory files whose MEMORY.md was missing all 14 entries written after 2026-08-31 — copies drift silently because Claude Code only ever reads the live path. Linking fixes the drift, but it also means that on any machine where the live memory dir holds files not yet in the repo, install will delete them.

How to apply: before running install on a machine whose Claude memory dir is a real directory rather than a symlink, copy its *.md into common/claude/memory/<sanitized-cwd>/ first and verify with cmp. The sanitized name is the cwd with non-alphanumerics replaced by -, so it differs per machine: -home-connor on mainframe, -home-connorjohnstone on sctfw004 (user connorjohnstone). That is why the memory link lives in meta/hosts/mainframe.conf.yaml only.

Related: podman-compose-bind-mount-restart — the same shape of trap, where a tool reports success without doing the thing you wanted.