Skip to content

Bug: Profile mode (-p) loads SOUL.md from wrong path — uses global instead of profile directory #8093

@andrewxia

Description

@andrewxia

Bug Description

When launching Hermes with a specific profile using -p <profile> flag, the agent incorrectly loads SOUL.md from the global path ~/.hermes/SOUL.md instead of the profile-specific path ~/.hermes/profiles/<profile>/SOUL.md.

Reproduction Steps

# 1. Create a profile
^[[45;1R^[[45;1Rhermes profile create hm-investor

# 2. Verify profile structure
hermes profile show hm-investor
# Output shows:
# Path:    /home/ubuntu/.hermes/profiles/hm-investor
# SOUL.md: exists

# 3. Check profile's SOUL.md exists and differs from global
cat /home/ubuntu/.hermes/profiles/hm-investor/SOUL.md  # Has profile-specific content
cat /home/ubuntu/.hermes/SOUL.md                        # Different content (default/empty)

# 4. Launch Hermes with the profile
hermes -p hm-investor
# or via alias:
hm-investor

# 5. Observe: Agent loads SOUL.md from ~/.hermes/SOUL.md (global)
# instead of ~/.hermes/profiles/hm-investor/SOUL.md (profile)

Expected Behavior

When using hermes -p hm-investor, the agent should load:

  • ~/.hermes/profiles/hm-investor/SOUL.md

Actual Behavior

Agent loads:

  • ~/.hermes/SOUL.md (global path)

Environment

  • Version: v2026.4.8 (2026-04-08T11:56:44Z)
  • OS: Ubuntu (Linux)
  • Profile alias: hm-investorhermes -p hm-investor

Verification

# Profile directory has correct SOUL.md
$ ls -la /home/ubuntu/.hermes/profiles/hm-investor/SOUL.md
-rw-r--r-- 1 ubuntu ubuntu 2664 Apr 12 09:20 /home/ubuntu/.hermes/profiles/hm-investor/SOUL.md

# Global SOUL.md also exists (but shouldn't be loaded in profile mode)
$ ls -la /home/ubuntu/.hermes/SOUL.md
-rw-r--r-- 1 ubuntu ubuntu 2664 Apr 12 09:11 /home/ubuntu/.hermes/SOUL.md

# Files are identical (profile content leaked to global due to this bug)
$ diff /home/ubuntu/.hermes/SOUL.md /home/ubuntu/.hermes/profiles/hm-investor/SOUL.md
# (no output - files identical, confirming the bug caused cross-contamination)

Impact

  1. Profile isolation broken: Profiles cannot have distinct personas/SOUL.md
  2. Cross-contamination risk: When a profile agent writes to SOUL.md, it overwrites the global file, affecting all other agents
  3. Multi-agent workflows compromised: Users cannot reliably run separate agents with different personalities via profiles

Related Issues

Workaround

None known — the bug prevents proper profile-based SOUL.md isolation.


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions