Обновление
Перевод существующей установки на новую версию происходит на месте - без повторной
установки. Ваши секреты (.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) - апдейтер применяет ровно тот коммит, который
объявил.
Установки из zip
Заголовок раздела «Установки из zip»Установка без git-репозитория не может сделать pull; она обновляется распаковкой нового zip, и баннер об этом сообщает. Процедура, из папки вашей установки:
# 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-newrsync -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 installsystemctl --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.