Commit Graph

1 Commits

  • fix: warn when populated legacy ~/.claude/homunculus exists (#2036)
    After the XDG migration the CLI reads from
    $XDG_DATA_HOME/ecc-homunculus/ (default ~/.local/share/ecc-homunculus/),
    but installs that retained an older manual copy at ~/.claude/homunculus/
    saw observations land in the new location while `instinct-cli.py status`
    silently continued to look at the new directory only. The reporter
    spent hours tracing the divergence because nothing surfaced the legacy
    tree.
    
    Add `_detect_legacy_homunculus_dir()` which returns the legacy path
    when ~/.claude/homunculus/ contains real ECC state (projects/,
    instincts/, evolved/, or observations.jsonl) and the active
    HOMUNCULUS_DIR is different. `cmd_status` calls it at the bottom of
    its output and prints a one-time, scoped warning that names both
    paths and points at the existing migrate-homunculus.sh script.
    
    Empty placeholder directories (just ~/.claude/homunculus/ with no
    content) are ignored so users who have already migrated and left the
    empty shell behind don't get nagged on every status call.
    
    Tests cover three branches: populated legacy dir triggers the warning,
    absent legacy dir stays silent, and empty placeholder legacy dir stays
    silent.