Переход с 1.x
ZubrCode 1.x и 2.x ставятся одинаково и используют один бинарь zubrcode —
установка 2.x заменяет его (установка). Сервер, чат и
облачные раннеры принимают только 2.x. Переносить всё руками не нужно:
поддерживаемые настройки 1.x продолжают работать.
Что переносится само
Заголовок раздела «Что переносится само»- Вход. Ключ из
auth.json1.x переносится в хранилище ядра (SQLite) сам — входить заново не нужно. Проверить:zubrcode auth list. - Конфигурация. Те же каталоги (
~/.config/zubrcode,opencode.json,opencode.jsonc,.opencode/). 2.x читает поля 1.x как есть и нормализует их в памяти — файлы переписывать необязательно. - Файлы определений. Агенты, команды, навыки,
AGENTS.mdи MCP-серверы остаются на месте. Старые каталогиagent/,agents/,mode/,modes/,command/,skill/по-прежнему обнаруживаются; для новых файлов предпочтительны.opencode/agents/,.opencode/commands/,.opencode/skills/. - Конфигурация TUI. Слои
tui.json/tui.jsoncзаменены одним глобальным~/.config/zubrcode/cli.json: при первом запуске 2.x поддерживаемые настройки переносятся туда сами, файлы 1.x остаются нетронутыми.
Что поменялось в конфигурации
Заголовок раздела «Что поменялось в конфигурации»Старый синтаксис продолжает работать, но у 2.x есть нативный формат — он явнее и удобнее. Главные переименования:
| 1.x | 2.x |
|---|---|
permission (по инструментам) |
permissions — упорядоченный массив правил |
bash, task, write, patch |
shell, subagent, edit |
agent, mode |
agents |
prompt, disable, variant у агента |
system, disabled, вариант в модели через # |
snapshot |
snapshots |
attachment |
media |
mcp.<имя>, enabled |
mcp.servers.<имя>, disabled |
compaction.preserve_recent_tokens, compaction.reserved |
compaction.keep.tokens, compaction.buffer |
skills.paths, skills.urls |
один массив skills |
command, subtask |
commands, subagent |
reference |
references |
Например, разрешения:
{ "permission": { "bash": { "git push *": "ask" }, "edit": "allow" } }
// 2.x{ "permissions": [ { "action": "shell", "resource": "git push *", "effect": "ask" }, { "action": "edit", "resource": "*", "effect": "allow" } ]}Ещё несколько изменений, которые заметны на практике:
- Пути вне проекта. 1.x спрашивал перед обращением к каталогам вне проекта,
2.x разрешает их по умолчанию. Чтобы вернуть прежнее поведение, добавьте
{ "action": "external_directory", "resource": "*", "effect": "ask" }. - Сжатие контекста.
compaction.tail_turnsиcompaction.pruneв 2.x нет: поля игнорируются с предупреждением, свежий контекст хранится по бюджету токенов (Сжатие контекста). - Игнорируемые поля. Часть полей схемы 1.x не имела смысла в 2.x — они
игнорируются с предупреждением в логе (
logLevel,serverи другие). Это не потеря функциональности. - Плагины. Плагины, написанные под API 1.x, в 2.x не запускаются: переносить их нужно на новый API плагинов.
- LSP. Конфигурация
lspчитается, но языковые серверы не запускаются. Проверки делайте командами lint, typecheck или сборки.
Конвертировать конфигурацию в нативный формат 2.x необязательно — можно попросить агента сделать это за вас:
Перепиши мою конфигурацию ZubrCode из формата 1.x в формат 2.x,сохранив поведение и все посторонние настройки.Поля обоих форматов могут сосуществовать в одном файле; каждую вложенную запись (агент, команда, провайдер) держите в одном формате. После конвертации не запускайте 1.x на этих же файлах — сохраните копию настроек, пока проверяете 2.x.
Раннеры и клиенты 1.x
Заголовок раздела «Раннеры и клиенты 1.x»Чат «Кода» и облачные сессии работают только с 2.x: раннер на ZubrCode 1.x они не примут и попросят обновиться. Обновите машину и перезапустите раннер:
zubrcode upgradezubrcode remoteТо же относится к своему раннеру и к сессиям кода в чате.
Проверьте после обновления
Заголовок раздела «Проверьте после обновления»zubrcode --version— стоит 2.x.- В проекте: модель, вход, агенты, разрешения и MCP-серверы.
- Если поддерживаемая возможность 1.x перестала работать в 2.x — это баг
совместимости: напишите в поддержку (zubriq.by/chat),
приложив вывод
zubrcode --versionи фрагмент конфигурации без ключей.