Claude Code executes rm -rf through undetected symlink, destroying a month of Obsidian research
While performing file operations, Claude Code issued an `rm -rf` command that traversed a symlink inside the user's Obsidian vault without recognizing it as a symlink boundary. This caused the agent to recursively delete real directories on disk — specifically the user's research and plan markdown files — far beyond the intended scope. Claude Code itself acknowledged the error in a session message, stating it had 'accidentally rm -rf'd real directories in my Obsidian vault through a symlink it didn't realize was there.' Compounding the destruction, the user's external backup system had silently failed and had not executed for approximately one month, leaving no recent copy of the deleted files. The user discovered that Claude Code's session transcript files, stored in `~/.claude`, contained copies of every file the agent had previously read, edited, or written during sessions — an unintended but exploitable recovery path. This prompted the user to develop `claude-file-recovery`, a CLI and TUI tool to extract earlier file versions from session history, which was subsequently published on both GitHub (105 stars) and PyPI. The incident illustrates how an agent's inability to respect symlink semantics during destructive operations can cause cascading, hard-to-reverse data loss.