Перейти к содержимому

Обновление

Перевод существующей установки на новую версию происходит на месте - без повторной установки. Ваши секреты (.env.local), конфигурация (agents.config.json), данные (~/.maven, хранилище (vault) Obsidian), логины CLI (claude / codex / hermes / …) и локальные движки (~/wm-engine, ~/openseo) остаются ровно там, где были. Подменяется только исходный код приложения.

Когда доступна новая версия, появляется баннер обновления. Он показывает версию и что изменилось. Версия - единственный критерий: баннер предлагает обновление только тогда, когда удалённая версия действительно новее, так что даунгрейд он не предложит никогда.

Нажмите Update. M.A.V.E.N забирает объявленный коммит, ставит зависимости через npm ci --ignore-scripts, собирает и перезапускается. Прогресс показан в оверлее; по завершении страница перезагружается уже на новой версии. Если сборка падает, происходит откат к предыдущей рабочей сборке.

Плановые проверки выполняются дважды в день - по умолчанию в 09:00 и 21:00 местного времени, оба часа настраиваются в Settings → Updates. Проверка только показывает баннер. Автоматические обновления по умолчанию выключены; если их включить, обновление применяется не чаще раза в сутки по UTC и только когда удалённая версия новее.

Для приватного репозитория апдейтеру нужен токен с правом чтения в .env.local: он читает сначала GITHUB_MAVEN_UPDATE, затем GITHUB_TOKEN, затем GH_TOKEN. Токен передаётся git через GIT_CONFIG_*, никогда в командной строке, поэтому он не может утечь в логи.

Ручной запуск node scripts/self-update.mjs требует предварительного Check now (или --expect-sha= / --allow-unverified) - апдейтер применяет ровно тот коммит, который объявил.

Установка без git-репозитория не может сделать pull; она обновляется распаковкой нового zip, и баннер об этом сообщает. Процедура, из папки вашей установки:

Terminal window
# 1) Stop the running app - pick the line for YOUR OS.
systemctl --user stop maven # Linux (systemd)
# launchctl unload -w ~/Library/LaunchAgents/com.maven.app.plist # macOS (launchd)
# Stop-ScheduledTask -TaskName MAVEN # Windows (PowerShell)
# … no autostart? just stop your `npm run dev` / `npm start` process.
# 2) Back up your secrets.
cd ~/maven && cp .env.local ~/maven-env-$(date +%Y%m%d).bak 2>/dev/null || true
# 3) Swap in the new source. --delete removes files REMOVED in the new version
# (renamed apps); the --exclude list protects your local-only files.
unzip -oq ~/maven-<VERSION>.zip -d /tmp/maven-new
rsync -a --delete \
--exclude='.env.local' --exclude='.env.*' --exclude='agents.config.json' \
--exclude='node_modules' --exclude='.next' --exclude='.git' \
--exclude='.claude' --exclude='generated' --exclude='*.tsbuildinfo' \
/tmp/maven-new/maven-<VERSION>/ ~/maven/
rm -rf /tmp/maven-new
# 4) Refresh deps and restart.
cd ~/maven && npm install
systemctl --user restart maven # Linux
# launchctl load -w ~/Library/LaunchAgents/com.maven.app.plist # macOS
# Start-ScheduledTask -TaskName MAVEN # Windows

Нет rsync? unzip -o ~/maven-<VERSION>.zip -d /tmp/mv && cp -a /tmp/mv/maven-<VERSION>/. ~/maven/ обновляет и добавляет файлы, но оставляет удалённые (обычно это безвредно). На Windows выполняйте shell-команды в Git Bash или WSL.

После перезапуска откройте http://localhost:3000; если что-то выглядит не так, читайте логи - journalctl --user -u maven -f (Linux), ~/.maven/maven.err.log (macOS) или историю Scheduled Task (Windows).

Переход с ≤ 6.15.x - релиз безопасности (прочитать один раз)

Заголовок раздела «Переход с ≤ 6.15.x - релиз безопасности (прочитать один раз)»

Пользуетесь M.A.V.E.N только на этой машине (127.0.0.1 / localhost)? Вам ничего делать не нужно. Ни PIN, ни нового экрана, ни настроек, которые надо менять.

Обновление выполняется само, и на самой машине ничего не ломается. post-update делает разовую миграцию: .env.local и копии учётных данных становятся 0600, боты 3D-Forge получают секрет хука, а отчёт называет, где лежит PIN для удалённого доступа. Что вы можете заметить:

У вас было… После обновления
M.A.V.E.N только на этой машине Ничего не меняется. Теперь существует PIN для удалённых хостов (~/.maven/access-pin, а также в Settings → Security) - на тот день, когда он понадобится.
M.A.V.E.N открыт через Tailscale / LAN без PIN Этот хост в первый раз спросит PIN: введите тот, что в Settings → Security → Показать (или cat ~/.maven/access-pin). Хост запоминается; сессия живёт 30 дней.
Задан MAVEN_ACCESS_PIN=…, в браузере уже разблокировано Ваша cookie разблокировки принимается один раз и переиздаётся; хост запоминается. Ваш PIN по-прежнему действует везде (и на loopback) - переключите режим в Settings → Security, если хотите loopback открытым.
Задан MAVEN_ACCESS_PIN=…, cookie истекла / новое устройство Экран разблокировки на том хосте; ваш PIN работает; хост запоминается.
PIN короче 8 символов По-прежнему работает; лог один раз предупреждает. Смените его в Settings → Security.
Консоль OpenCode с автоподтверждением Теперь она спрашивает разрешения. MAVEN_CHAT_PERMISSION_MODE=bypass возвращает старое поведение по умолчанию. Автономные приложения (OpenMontage, цели Hermes, Loop, Пайплайн) не изменились.
Дни тяжёлой генерации Потолок 25 USD в день по всем платным движкам; поднимите его в Settings → Security или через MAVEN_DAILY_SPEND_USD.
Проекты VC-Forge вне домашних папок Существующие проекты продолжают работать; новые создаются в хранилище / ~/Projects / ~/Documents / ~/Desktop / ~/Obsidian (или MAVEN_VCFORGE_DIR).
R-Forge / N-Forge получали URL localhost или из LAN Теперь отказ; MAVEN_ALLOW_PRIVATE_FETCH=1, если это было намеренно.
Telegram-боты 3D-Forge Переподготавливаются автоматически. Если бот отвечает «hook refused», выполните node scripts/gforge/setup-swarm-3d.mjs --all.
npm run dev -- -H 0.0.0.0 Не надо. Используйте Tailscale / туннель + Settings → Security → Разрешённые хосты.

Полный справочник: Безопасность и удалённый доступ.

Перепрыгиваете через несколько версий сразу? Выполните общую процедуру один раз до целевой версии, затем прочитайте промежуточные заметки в UPDATE.md в репозитории. Те, что всё ещё кусаются:

  • 6.12.5-6.12.7 → новее - старый апдейтер спотыкался на .next/cache при переименовании. Разорвите цикл один раз: cd ~/maven && rm -rf .next/cache && node scripts/self-update.mjs, либо вручную git pull && npm install && npm run build.
  • ≤ 6.5 → новее - Course Gen и Maven-Slides стали P-Forge; /coursegen и /slides перенаправляют. /vibecoding перенаправляет на VC-Forge, /mineru - на D-Forge → MinerU, /seo - на SEO-Forge.
  • ≤ 6.13 → новее - страницы консолей отдельных моделей стали одним Чатом; Music, Thumbnails, OpenMontage и Video Editor - это вкладки M-Forge.

Обновление откатывает отслеживаемые файлы к релизу, но ваши собственные не трогает: agents.config.json (трёхстороннее слияние, если релиз тоже его менял), .env.local, всё в ~/.maven, хранилище и логины CLI.