Problem
Hermes has a multi-profile system where each profile (default, kimicoder, coder, etc.) has its own data directory at ~/.hermes/profiles/<profile>/. However, cron jobs are fragmented across profiles:
~/.hermes/cron/jobs.json — 14 jobs (default profile, used by the CLI)
~/.hermes/profiles/kimicoder/cron/jobs.json — 2 jobs (kimicoder profile, used by the running gateway)
The running gateway (as kimicoder profile) only sees its own 2 crons and ignores the other 12.
Post-Mortem: Task t_93298a9e
- Task created: "make a cron task in http://127.0.0.1:9000/cron to monitor every 30 mins the h13b"
- Agent created cron
84d83e65cf6e — this was saved to ~/.hermes/cron/jobs.json (default profile)
- Gateway runs as
kimicoder profile — reads from ~/.hermes/profiles/kimicoder/cron/jobs.json (only 2 jobs)
hermes cron list also uses default profile — shows only 2 jobs
- Result: cron exists in a file but neither the CLI nor the gateway can see it
The cron was not wiped by the update. It was created in the wrong profile.
Impact
- Crons created in one profile are invisible to other profiles
- The
hermes cron list command (default profile) and the running gateway (kimicoder profile) see different sets of crons
- Users lose track of which crons exist and where
- Task t_93298a9e shows "running" but the cron it was supposed to create is in the wrong profile and not being executed
Root Cause
- The cron creation tool doesn't warn about or enforce which profile's storage to use
- The running gateway uses its profile's cron storage, not the default
hermes cron list uses the default profile's storage
- No merge or sync between profile-specific cron stores
Expected Behavior
- All profiles should share a single cron store, OR
- Cron creation should prompt/confirm which profile to use, OR
hermes cron list should show crons across all profiles or clearly indicate which profile each belongs to
Suggested Fix
- Unified cron storage: Move cron storage out of profile-specific directories into a shared location that all profiles read/write
- Profile-aware cron commands:
hermes cron list --profile kimicoder to see a specific profile's crons
- Warning on creation: When creating a cron, warn if the active profile differs from the one running the gateway
- Cross-profile list:
hermes cron list --all to show crons from all profiles
Technical Details
Problem
Hermes has a multi-profile system where each profile (default, kimicoder, coder, etc.) has its own data directory at
~/.hermes/profiles/<profile>/. However, cron jobs are fragmented across profiles:~/.hermes/cron/jobs.json— 14 jobs (default profile, used by the CLI)~/.hermes/profiles/kimicoder/cron/jobs.json— 2 jobs (kimicoder profile, used by the running gateway)The running gateway (as
kimicoderprofile) only sees its own 2 crons and ignores the other 12.Post-Mortem: Task t_93298a9e
84d83e65cf6e— this was saved to~/.hermes/cron/jobs.json(default profile)kimicoderprofile — reads from~/.hermes/profiles/kimicoder/cron/jobs.json(only 2 jobs)hermes cron listalso uses default profile — shows only 2 jobsThe cron was not wiped by the update. It was created in the wrong profile.
Impact
hermes cron listcommand (default profile) and the running gateway (kimicoder profile) see different sets of cronsRoot Cause
hermes cron listuses the default profile's storageExpected Behavior
hermes cron listshould show crons across all profiles or clearly indicate which profile each belongs toSuggested Fix
hermes cron list --profile kimicoderto see a specific profile's cronshermes cron list --allto show crons from all profilesTechnical Details
~/.hermes/cron/jobs.json(14 jobs)~/.hermes/profiles/kimicoder/cron/jobs.json(2 jobs)--hermes-homepointing to the profile dir, while CLI uses~/.hermesby default