Includes global state.vscdb, per-repo transcripts, workspace storage, composer exports, and restore scripts for a new machine. Co-authored-by: Cursor <cursoragent@cursor.com>
55 lines
3.7 KiB
Markdown
55 lines
3.7 KiB
Markdown
# Инструкция для 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/<hash>/` | Состояние воркспейса |
|
||
| `repos/<имя-репo>/composers/*.json` | Экспорт composer (читаемый бэкап) |
|
||
| `scripts/restore-archive.py` | Скрипт восстановления |
|
||
|
||
Старый профиль: `/home/ruslanpi`, репозитории: `/home/ruslanpi/Documents/repos/<repo>`.
|
||
|
||
## Задача для агента
|
||
|
||
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 на старом пути.**
|