3.3 KiB
title, type, status, created, updated, verified_on, confidence, tags, sources
| title | type | status | created | updated | verified_on | confidence | tags | sources | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Mnemosyne Automatic Capture Failure | incident | active | 2026-08-01 | 2026-08-01 | 2026-08-01 | high |
|
|
Mnemosyne Automatic Capture Failure — 2026-08-01
Impact
Ordinary Hermes conversations were not being written to Mnemosyne working_memory. Explicit memory tools, SQLite integrity, vectors, FTS indexes, consolidation, backups, and cron monitoring remained operational. The newest automatic/explicit working row before repair was approximately fourteen hours old despite active Hermes sessions.
The always-injected legacy files were also effectively full: MEMORY.md was 5,055 bytes against a 5,000-character limit and USER.md was 2,958 bytes against 3,000. Legacy writes had begun failing.
Root Cause
Structured values under memory.mnemosyne in ~/.hermes/config.yaml had been serialized as strings instead of native YAML types. The critical value was:
sync_roles: "['user']"
The provider interpreted this as the literal invalid role ['user'], so turn synchronization completed without persisting a user row. Other malformed values included skip_contexts, reflect, sleep_threshold, and ignore_patterns.
Repair
- Backed up config to
/home/hermes/.hermes/backups/mnemosyne-capture-fix-20260801_180249/config.yaml.before. - Rewrote structured Mnemosyne settings with native YAML types.
- Set
profile_isolation: truebecause the installation has multiple Hermes profiles. - Preserved
sync_roles: [user]and the intended skipped contexts. - Ran
hermes config checksuccessfully. - Created authoritative Mnemosyne canonical slots for user preferences and key workflows, correcting stale light-theme, numbered-Obsidian, and CT460 route entries.
- Backed up legacy files to
/home/hermes/.hermes/backups/legacy-memory-slim-20260801_180702/. - Reduced legacy injection from 8,013 bytes to 1,080 bytes while retaining essential always-on rules.
Verification
A pre-fix CLI turn using marker MNEMO_E2E_20260801_180113_27053 completed but produced no database row.
A post-fix CLI turn using marker MNEMO_FIXED_20260801_180310_16583 wrote:
[USER] Reply with exactly OK. Memory capture test marker: MNEMO_FIXED_20260801_180310_16583
The row was verified directly in ~/.hermes/mnemosyne/data/mnemosyne.db. Final diagnostics reported zero failed checks, complete working-vector coverage, zero orphan embeddings, 1,482 working rows, and 463 episodic vectors.
Remaining Activation Step
The already-running Telegram gateway/provider instance was initialized before the config repair. Run hermes gateway restart from an external terminal to load the corrected typed configuration for messaging-platform turns. The gateway cannot safely restart itself from one of its own child tool calls.
Monitoring Note
The health script checks capture staleness only after 24 hours. It therefore remained green during this fourteen-hour active-capture outage. A future improvement should compare recent non-cron conversation activity with the newest working_memory row rather than lowering the threshold blindly and creating idle-period false positives.