Skip to content

Soul Archive v3.1.0 — Agent Commons co-location

Choose a tag to compare

@dqsjqian dqsjqian released this 28 May 07:47
· 2 commits to master since this release

What changed

Soul Archive now resolves its data directory dynamically:

Condition Resolved location
You've joined Agent Commons (~/.agent-commons/ exists) ~/.agent-commons/skills_data/soul-archive/
Standalone use ~/.skills_data/soul-archive/
--soul-dir flag or SOUL_DIR env var always wins

Why

  • If you use both projects: one directory to back up, one to migrate, one to inspect. Everything moves with you.
  • If you only use Soul Archive: nothing changes — 100% standalone, no implicit dependency on Agent Commons.

Migration

Existing users with data at the legacy path can migrate at their own pace:

python scripts/soul_migrate.py --dry-run    # see what would happen
python scripts/soul_migrate.py              # interactive migration
python scripts/soul_migrate.py --rollback   # reverse it

The migration is opt-in, atomic-ish, and reversible. It moves the directory in place, preserves timestamps, and leaves a forwarding README at the legacy location.

What's new

  • scripts/soul_paths.py — single source of truth for path resolution (Method A: --soul-dir / SOUL_DIR → Method B: ~/.agent-commons/skills_data/soul-archive/ if Agent Commons joined → Method C: ~/.skills_data/soul-archive/ legacy fallback)
  • scripts/soul_migrate.py — opt-in migration tool with --dry-run and --rollback
  • docs/multi-device-sync.md — comprehensive backup, sync, and migration guide with privacy-layered .gitignore templates
  • All 8 existing scripts (soul.py, soul_init.py, soul_extract.py, soul_chat.py, soul_reflect.py, soul_context.py, soul_report.py, soul_agent_memory.py) refactored to call resolve_soul_dir() instead of hard-coding paths

Backwards compatibility

  • Users without ~/.agent-commons/ see no behavior change.
  • Users with ~/.agent-commons/ but data at the legacy path see no forced migration; resolve_soul_dir() detects existing data and continues to use it until the user runs the migration tool.

Companion release

This release pairs with agent-commons v0.2.0, which formalizes the ~/.agent-commons/skills_data/<skill-name>/ location as a non-normative convention in CONVENTIONS.md.

Soul Archive is the first adopter of this convention.

License: MIT.