--- name: memory description: Manage user profiles, session memory, and persistent memory map for cross-session context. tags: [memory, profile, session, persistence, context, map] category: system --- ## User Profile (localStorage — user_get/user_set) | Command | Purpose | |---------|---------| | `user_get(key)` | Read profile field (e.g. "preferredModel") | | `user_set(key, value)` | Write to profile, auto-persists | | `user_list` | Show all stored profile keys | | `user_forget(key)` | Delete a profile key | Dot notation supported: `user_set knownFacts.name "Alex"` ## Session Memory (VFS-based daily logs) | Command | Purpose | |---------|---------| | `session_save(summary)` | Save session summary | | `session_load(date)` | Read day's log (YYYY-MM-DD) | | `session_recent(count)` | Last N session summaries | | `session_stats` | Aggregate totals | Recent sessions auto-load into context on first message. ## Persistent Memory Map (/memory/map.json) An index of projects, preferences, issues, and session history so the AI never asks to repeat itself. **Location:** `/memory/map.json` — primary map; `/memory/index.json` — auto-generated session index **Read Before Acting:** ``` read_file("memory/map.json") ``` **Update After Significant Work:** - Read current map, modify relevant section, write back - Append to `recent_sessions` (keep last 10) **Map Structure:** - `projects` — WebX11, clients, personal builds - `infrastructure` — security stack, backups, constraints - `preferences` — communication style, UI needs - `active_issues` — open tasks, blockers, manual steps - `recent_sessions` — quick links to session logs **Rules:** - NEVER ask for info already in the map - If info is stale, update immediately - Use `session_save()` after complex tasks - Keep `active_issues` accurate — remove resolved items ## Conversation Patterns - Pattern tracking runs automatically — frequent topics surface as hints - `my-set`, `my-get`, `my-list` store additional personal data - AI conversation context persists within a session (use `ai-clear` to reset) ## When to Use - Session start: call `session_recent(3)`, then `read_file("memory/map.json")` - After identifying user preferences: `user_set` to store them - After complex tasks: `session_save` with a brief summary, update map