Работать без сети
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 для пакета, добавленного сверх проекта: команда разрешает его вместе со всем замыканием зависимостей и скачивает каждый узел в хранилище (store), не касаясь проекта. Один раз, пока сеть есть, он выполняет vibe install, чтобы собственные пакеты проекта тоже оказались в хранилище, затем vibe cache check, чтобы сверить каждую запись с её отпечатком (fingerprint). Наконец он выполняет vibe install --offline: подбор версий и скачивание обслуживаются только из хранилища, и если чего-то не хватает, команда громко падает, а не ставит частичный граф.
04 spec: Under --offline, resolution and fetch must…
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. Прогрейте хранилище пакетом и его зависимостями. Внутри проекта источник — его реестры; вне проекта — реестры всей машины:
vibe cache add org.vibevm.world/wal
Pre-warming the machine store (<TMP>/home/cache)
✓ created org.vibevm.world/wal@1.0.0
1 fetched, 0 already present — nothing materialised into any project.
072. Посмотрите и проверьте, что лежит в хранилище:
vibe cache check
Integrity sweep of the machine store (<TMP>/home/cache)
1 ok, 0 mismatched, 0 unrecorded.
103. Установите без сети:
vibe install org.vibevm.world/wal --path hello-vibe --offline --assume-yes --quiet
vibe install: 1 package materialised
Три способа включить офлайн-режим
12Флаг --offline у любой команды; переменная окружения VIBE_OFFLINE=1; или настройка offline = true в секции [net] файла ~/.vibe/config.toml. Флаг сильнее переменной, переменная сильнее настройки. По умолчанию vibe работает онлайн.
13 spec: It resolves through the established CLI…
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 spec: Decision: [[mirror]] entries are parallel alternative…
Decision.[[mirror]]entries are parallel alternative URLs for a specific registry (or*for any). During fetch:
Особые случаи и правила
16Если офлайн-установка отказывает пакету, который уже лежит в хранилище, значит, реестры проекта на этой машине ни разу не клонировали и vibe не может узнать, какие версии существуют; одна онлайн-установка в любом проекте клонирует их, а зеркалу file:// клон не нужен вовсе.
17Офлайн-подбор видит хранилище по состоянию на последнее обновление: версия, опубликованная после того, как вы ушли в офлайн, невидима, пока вы не вернётесь и не выполните vibe registry sync или онлайн-установку.
18 spec: Offline resolution is therefore computed against…
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 spec: Anything not available locally…
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 spec: Every self verb honours the offline…
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.