{ "id": "memory-continuity", "name": "Memory Continuity", "description": "Preserves working state across /new, reset, compaction, and gateway restarts via a simple markdown checkpoint file.", "version": "4.0.0", "author": { "name": "dtzp555-max", "url": "https://github.com/dtzp555-max" }, "license": "MIT", "repository": "https://github.com/dtzp555-max/memory-continuity", "category": "memory", "tags": ["memory", "continuity", "state", "recovery", "markdown", "zero-dependency"], "icon": "brain", "minOpenClawVersion": "2026.3.0", "source": "https://github.com/dtzp555-max/memory-continuity", "interop": { "complements": [ { "id": "lossless-claw", "reason": "MC uses lifecycle hooks for working-state recovery; lossless-claw uses the contextEngine slot for lossless context compression. They occupy different plugin slots and serve different purposes — install both for best results." } ], "conflicts": [], "slot": "hooks-only", "slotNote": "Does NOT occupy the contextEngine slot. Safe to run alongside any context engine." }, "configSchema": { "type": "object", "additionalProperties": false, "properties": { "maxStateLines": { "type": "number", "default": 50, "description": "Max lines for CURRENT_STATE.md before auto-compress warning" }, "archiveOnNew": { "type": "boolean", "default": true, "description": "Archive CURRENT_STATE.md to session_archive/ on /new" }, "autoExtract": { "type": "boolean", "default": true, "description": "Auto-extract working state from conversation at agent_end" }, "maxArchiveCount": { "type": "number", "default": 20, "description": "Maximum number of archive files to keep in session_archive/" }, "ignorePatterns": { "type": "array", "default": [], "description": "Regex patterns to ignore sessions (e.g. cron jobs, subagent noise). Matched against first user message." }, "sessionLogging": { "type": "boolean", "default": true, "description": "Write session summaries to memory/sessions/ daily logs" }, "tailProtectCount": { "type": "number", "default": 3, "description": "Number of recent critical message pairs to protect during compaction" }, "summaryEnabled": { "type": "boolean", "default": true, "description": "Generate daily and weekly summaries from session logs" }, "relevanceInjection": { "type": "boolean", "default": true, "description": "Inject relevant historical context at session start" }, "maxRelevanceItems": { "type": "number", "default": 3, "description": "Maximum number of relevant history items to inject" }, "archiveDecayDays": { "type": "number", "default": 30, "description": "Days before archives move to cold storage (0 = disabled)" } } }, "uiHints": { "maxStateLines": { "label": "Max state file lines", "help": "Keep checkpoint small for fast recovery" }, "archiveOnNew": { "label": "Archive on /new", "help": "Save a snapshot before session reset" }, "autoExtract": { "label": "Auto-extract state", "help": "Automatically save working state when conversation ends" }, "maxArchiveCount": { "label": "Max archive files", "help": "Old archives are auto-deleted when this limit is reached" }, "ignorePatterns": { "label": "Ignore patterns", "help": "Skip state extraction for sessions matching these patterns (regex)" }, "sessionLogging": { "label": "Session logging", "help": "Append session summaries to daily markdown logs" }, "tailProtectCount": { "label": "Tail protect count", "help": "Keep N recent user/assistant pairs visible after compaction" }, "summaryEnabled": { "label": "Summary generation", "help": "Auto-generate daily/weekly summaries from session logs" }, "relevanceInjection": { "label": "Relevance injection", "help": "Inject related history when starting a new session" }, "maxRelevanceItems": { "label": "Max relevance items", "help": "How many related history entries to inject (2-5)" }, "archiveDecayDays": { "label": "Archive decay days", "help": "Move archives older than N days to cold/ subfolder (0 to disable)" } } }