Работать без сети
01В самолёте или за файрволом vibe продолжает работать из того, что уже есть на машине. Эта страница скачивает нужное до отъезда и ставит из него без сети.
Перед тем как я уйду в офлайн, скачай в машинное хранилище всё, что нужно проекту VibeVM в текущей папке, плюс пакет org.vibevm.world/multi-user-planning, затем проверь хранилище и покажи мне, что офлайн-установка этого проекта проходит.
навык vibevm, установленный у вашего агента; доступ по сети сейчас; проект с vibe.toml
vibe cache list показывает пакеты проекта и лишний; vibe cache check сообщает, что каждая запись цела; vibe install --offline завершается без единого запроса по сети
vibe cache checkvibe reinstall --force --offline --assume-yes
Что происходит
03Агент выполняет vibe cache add для лишнего пакета: команда разрешает его вместе со всем замыканием зависимостей и скачивает каждый узел в хранилище, не касаясь проекта. Один раз, пока сеть есть, он выполняет vibe install, чтобы собственные пакеты проекта тоже оказались в хранилище, затем vibe cache check, чтобы сверить каждую запись с её отпечатком. Наконец он выполняет vibe install --offline: подбор версий и скачивание обслуживаются только из хранилища, и если чего-то не хватает, команда громко падает, а не ставит частичный граф.
04 Under--offline, resolution and fetch must be satisfiable entirely from local sources — the cache (§2.7),[[mirror]]entries with afile://URL, and the project's ownvibe.lock+vibedeps/.
Руками
051. Прогрейте хранилище пакетом и его зависимостями. Внутри проекта источник — его реестры; вне проекта — реестры всей машины:
072. Посмотрите и проверьте, что лежит в хранилище:
103. Установите без сети:
Три способа включить офлайн-режим
12Флаг --offline у любой команды; переменная окружения VIBE_OFFLINE=1; или настройка offline = true в секции [net] файла ~/.vibe/config.toml. Флаг сильнее переменной, переменная сильнее настройки. По умолчанию vibe работает онлайн.
13 It resolves through the established CLI config layering — flag, then aVIBE_OFFLINEenvironment variable, then a user-config[net]key; the flag wins. This mirrors the resolved-posture pattern already used for--unattended/VIBE_UNATTENDED(output::resolve_unattended).
Целая команда без сети
14Для машины, которая никогда не видит реестр, vibe registry vendor записывает папку со всеми пакетами, на которые ссылается лок-файл, готовую служить зеркалом по адресу file:// на той стороне. Отпечатки едут вместе с ней, так что зеркало проверяется, как любое другое.
15 Decision.[[mirror]]entries are parallel alternative URLs for a specific registry (or*for any). During fetch:
Особые случаи и правила
16Если офлайн-установка отказывает пакету, который уже лежит в хранилище, значит, реестры проекта на этой машине ни разу не клонировали и vibe не может узнать, какие версии существуют; одна онлайн-установка в любом проекте клонирует их, а зеркалу file:// клон не нужен вовсе.
17Офлайн-подбор видит хранилище по состоянию на последнее обновление: версия, опубликованная после того, как вы ушли в офлайн, невидима, пока вы не вернётесь и не выполните vibe registry sync или онлайн-установку.
18 Offline resolution is therefore computed against the cache as of its last refresh. This is correct and expected — Mavenmvn -oandcargo --offlinehave the same property — but it must be explicit: a--offlineresolve may pick an older version than an online resolve would.
19Пакетом в хранилище можно пользоваться, даже когда его реестр больше не перечисляет; пакет, который до хранилища не добрался, — жёсткая ошибка с именем недостающей координаты.
20 Anything not available locally is a hard error with an actionable message: it names the missing package and version and tells the operator how to recover (run once online,vibe cache add, orvibe registry vendor).
21Менеджер версий самой программы подчиняется той же позиции: под ней vibe self update, install и reinstall отказывают до первого запроса, называя адрес, который им понадобился бы, а self ls, current и which отвечают с машины как обычно.
22 Everyselfverb honours the offline posture the process resolved —--offline,VIBE_OFFLINEor[net] offline, layered as PROP-010##OFFLINE-LAYERINGsays. Under it a release-lane verb is refused before its first request, naming the verb and the address it would have needed; a source-lane rebuild runs without fetching when the checkout and the crates are already local, and is refused the same way otherwise. The domain never reads the environment for this: the composition root hands the resolved posture in.