# Инструкция для Cursor Agent (новый ноутбук) ## Контекст пользователя Пользователь **Руслан** переезжает на новый ноутбук. Репозитории клонируются в **другие пути** (другой `$HOME`, возможно другая структура каталогов). Нужно **вернуть историю чатов Cursor в UI** — те же треды в Agent/Composer при открытии тех же репозиториев. Этот репозиторий — **полный архив** чатов с предыдущего ноутбука (`cursor-chat-archive`). ## Что внутри архива | Путь | Содержимое | |------|------------| | `manifest.json` | Карта репозиторий → старые пути, workspace id, composer id | | `source-profile.json` | Старый `$HOME`, `Documents/repos` | | `global/state.vscdb` | Глобальная SQLite Cursor (все Composer-чаты) | | `global/storage.json`, `ide_state.json` | Доп. состояние UI | | `repos/<имя-репо>/agent-transcripts/` | Agent-чаты (jsonl) | | `repos/<имя-репо>/workspace-storage//` | Состояние воркспейса | | `repos/<имя-репo>/composers/*.json` | Экспорт composer (читаемый бэкап) | | `scripts/restore-archive.py` | Скрипт восстановления | Старый профиль: `/home/ruslanpi`, репозитории: `/home/ruslanpi/Documents/repos/`. ## Задача для агента 1. Убедиться, что пользователь **полностью закрыл Cursor**. 2. Клонировать этот репозиторий (если ещё не клонирован): `git clone git@91.108.237.249:komehdaht/cursor-chat-archive.git` 3. Создать `restore-config.json` из `restore-config.example.json`: ```json { "new_home": "/home/НОВЫЙ_ПОЛЬЗОВАТЕЛЬ", "new_repos_root": "/home/НОВЫЙ_ПОЛЬЗОВАТЕЛЬ/Documents/repos" } ``` Пути должны совпадать с реальным расположением клонированных репозиториев. 4. Запустить: ```bash python3 scripts/restore-archive.py ``` 5. **Перезапустить Cursor**, открыть папки репозиториев из `new_repos_root`. 6. Проверить Agent sidebar — должны появиться старые чаты. 7. Если чаты не видны: прочитать `~/.cursor/cursor-chat-restore-report.json`, сверить `new_workspace_id` в отчёте с `manifest.json`, при необходимости адаптировать пути в `state.vscdb` (как делали для `mailgw-salt` → скрипт `fix-mailgw-chat-history.py` на старом ноуте). ## Важно - Имена папок репозиториев (`mailgw-salt`, `lmru--devops--argocd-apps`, …) должны **совпадать** с `repos/` в архиве. - Workspace id на новом пути = `md5("file://" + absolute_path)` (три слэша: `file:///home/...`). - Slug проекта в `~/.cursor/projects/` = путь без ведущего `/`, слэши заменены на `-` (например `home-user-Documents-repos-mailgw-salt`). - Не пушить этот архив в корпоративный Git — только личная Gitea. ## Если пользователь просит «подхватить чаты» Кратко: **восстановить из cursor-chat-archive через `restore-archive.py`, не создавать пустой workspace на старом пути.**