Comments 1
Снимал ту же механику с другой стороны - переносил одну беседу между claude и codex, и там всплыло то, чего у вас в разборе нет.
Для claude --resume <uuid> ключ проекта в пути ~/.claude/projects/<ключ>/ может быть любым, cwd на это не влияет вообще: на claude 2.1.233 файл подхватывался из папки с выдуманным ключом. То-есть слаг от cwd нужен вашему слою и списку /resume внутри проекта, а не самому восстановлению по uuid.
Обязательных полей в jsonl три: uuid у записей, сходящаяся цепочка parentUuid и ISO-timestamp на последней записи. Без timestamp получаете No conversation found при лежащем на месте файле - самая обидная ошибка, потому что формат вроде правильный.
И контекст модель собирает обратным обходом parentUuid, а не порядком строк в файле. Для ваших дублей это важно: если склеить две копии одной сессии по uuid, а цепочка не сходится, прочитается не то, что вы ожидаете, хотя записи все на месте.
Проверял кодовым словом: говоришь его в сессии на одной стороне, поднимаешь на другой и просишь назвать. Глазами перенос не проверяется никак - модель отвечает уверенно и с пустым контекстом.
Одна сессия Claude Code на нескольких машинах: что ломается, если просто синхронизировать папку