You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On Windows, the memos-local-plugin resolves the Hermes home as ~/.hermes in several places, while Hermes itself uses %LOCALAPPDATA%\hermes (HERMES_HOME). The result is that the plugin's runtime data lives outside the Hermes home, and several features either break or silently miss data.
Hermes' own platform resolution (hermes_constants.py):
hermes backup may not include plugin data — Hermes' backup walks HERMES_HOME; state kept at ~/.hermes/memos-plugin is outside it, so it is only captured if the provider declares backup_paths() (see agent/memory_provider.py). On Windows this is the default layout, so a fresh install's data is at risk of being omitted from backups.
Data is split from the Hermes home — tools, scripts and users that follow HERMES_HOME won't find the plugin's data; the plugin creates its own ~/.hermes directory that is unrelated to the real Hermes home on Windows.
Question
Is this intentional (a cross-platform convention where the plugin keeps its data at Path.home()/.hermes regardless of the host's real home), or an oversight from POSIX-first development? If intentional, it would help to document it; if not, resolving the Hermes home through HERMES_HOME (with a platform fallback, like the fix in #2210) would make the plugin consistent with Hermes on every platform.
Bug Description
On Windows, the memos-local-plugin resolves the Hermes home as
~/.hermesin several places, while Hermes itself uses%LOCALAPPDATA%\hermes(HERMES_HOME). The result is that the plugin's runtime data lives outside the Hermes home, and several features either break or silently miss data.Hermes' own platform resolution (
hermes_constants.py):The plugin hardcodes the POSIX convention instead:
adapters/hermes/memos_provider/__init__.py:132→Path.home() / ".hermes" / "memos-plugin"adapters/hermes/memos_provider/bridge_client.py:69→agent_home = ".hermes"bridge.cts:96/bridge.mts:82→agentHome = ".hermes"core/config/paths.ts:32→hermes: "{HOME}/.hermes/memos-plugin"server/routes/migrate.ts:70→join(homedir(), ".hermes", "memos-state", ...)Observed impact on Windows
config.yamllands under the code dir instead of the runtime home the daemon reads → fix: install.ps1 writes Hermes config template to the wrong location #2211 (fixed by PR).MEMORY.md— hardcoded~/.hermes, but Hermes stores it under%LOCALAPPDATA%\hermes\memories\→ fix: resolve Hermes native memory import path on Windows #2210 (fixed by PR).hermes backupmay not include plugin data — Hermes' backup walksHERMES_HOME; state kept at~/.hermes/memos-pluginis outside it, so it is only captured if the provider declaresbackup_paths()(seeagent/memory_provider.py). On Windows this is the default layout, so a fresh install's data is at risk of being omitted from backups.HERMES_HOMEwon't find the plugin's data; the plugin creates its own~/.hermesdirectory that is unrelated to the real Hermes home on Windows.Question
Is this intentional (a cross-platform convention where the plugin keeps its data at
Path.home()/.hermesregardless of the host's real home), or an oversight from POSIX-first development? If intentional, it would help to document it; if not, resolving the Hermes home throughHERMES_HOME(with a platform fallback, like the fix in #2210) would make the plugin consistent with Hermes on every platform.Environment
Related