Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions docs/adr/0024-owned-vpn-protocol-transitions.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,17 @@ Cached runtime reuse verifies complete receipt/file hashes and the same executin
kernel facts, without fetching, building or regenerating credentials. First-ever
runtime preparation still requires the original vendor/build gate.

The private fresh preparer runs that same executing-kernel, vendor-CVE, pinned
tool-build and configuration verification into separate empty transient directories.
Require explicit consent, exact three-file source pins and the approved current
receiver callback pin. Retain a staged schema-1 baseline and derive a staged
schema-2 candidate with identical credentials/runtime/kernel facts. Neither snapshot
claims installation. Reject occupied, aliased, nested or managed-state destinations;
recheck source/kernel facts before acknowledging. Write receipts last. Interrupted
transient files grant no authority and are never adopted or replaced by a retry.
Do not publish a legacy WG transaction, root, unit, reservation, history fence or
network change. Existing direct installation retains its vendor gate and wire format.

The private generation-cache backend binds a schema-2 composite request containing
the cloud-plan hash, exact WG input delta, retained source/file pins and complete
cached/candidate receipts. Under the exposed common reservation and WG fence,
Expand Down
19 changes: 17 additions & 2 deletions docs/development/wireguard-implementation.md
Original file line number Diff line number Diff line change
Expand Up @@ -797,6 +797,21 @@ POSIX tests exercise real private files and locks with simulated networking only

## Reserved generation cache journal

`PrepareFresh` first builds a complete private staged schema-1 baseline, then uses
the same cached-generation path to derive a staged schema-2 candidate. Explicit
consent, the three retained source-file pins, the approved current receiver/helper
pin, canonical distinct empty private directories and actual namespace/collision
checks precede the original vendor-CVE/executing-kernel/build gate. Both snapshots
stay outside managed runtime, authority and unit directories. The binary/configuration
build is shared with direct installation, which preserves its original wire format.

Source bytes and executing-kernel facts are rechecked before acknowledgment. Each
snapshot receipt is written last after exclusive complete file writes; interrupted
prefixes remain unpublished and are refused on retry. Neither preparation creates
keys, a legacy install transaction, a root/unit, reservation, history fence or live
network state. A private snapshot is not attestation or protocol mutation authority;
the coordinator must still bind it into the exact reserved generation/cache request.

The private cache backend now binds complete cached/candidate WG receipts and
source-role pins beside the cloud-plan hash and exact input delta in a schema-2
composite request. It requires the exact exposed common reservation and retained
Expand Down Expand Up @@ -875,8 +890,8 @@ only an exact installed candidate with complete kernel absence and a drained uni
Read-only status reports recovery required without repairing the journal or claiming
activation. Installed partial peer/address drift is not a reboot-recovery prefix.

Cloud ordering, common completion, generation-bearing epoch publication, first-ever
private runtime staging and public protocol CLI admission remain integration work.
Cloud ordering, common completion, generation-bearing epoch publication, fresh-build
orchestration and public protocol CLI admission remain integration work.
No live server/client or traffic acceptance is implied by these private primitives.

## Remaining integration
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
schemaVersion = 1
sourcePath = "docs/adr/0024-owned-vpn-protocol-transitions.md"
sourceHash = "sha256:6c9e7d96384237b5a585b0864b0cac338cfba3a47fdecb8f2775dba5ab2dac4d"
reviewedTranslationHash = "sha256:59a8d4f6b2e34befc7e300bca71ab01331fa822df283a6cb07b17815f075f634"
sourceHash = "sha256:60275955e85e2de7237e564d39f1eacc6f9e3381d870a7fa3e35bbb72dd72692"
reviewedTranslationHash = "sha256:9f40a067177c22af6d64a8f429dea396286732d36402c21c220b721d76fd8216"
reviewer = "Codex"
reviewerType = "ai"
reviewedAt = "2026-11-07T07:06:45.787823Z"
reviewedAt = "2026-11-07T07:29:35.747845Z"
reviewRoles = ["editorial", "technical"]
body = '''# ADR 0024: Управляемые переходы VPN-протоколов и неизменяемые эпохи

Expand Down Expand Up @@ -176,6 +176,18 @@ Native-переходы приватны и оставляют общую рез
ядра без скачивания, сборки или генерации ключей. Первая подготовка runtime по-прежнему
требует исходный vendor/build-гейт.

Приватная первая подготовка использует ту же проверку исполняющегося ядра,
vendor-CVE, закреплённой сборки инструмента и конфигурации в отдельных пустых
временных каталогах. Требуются явное согласие, закрепления трёх исходных файлов и
закрепление одобренного callback текущего receiver. Сохраняется базовый staged-кэш
схемы 1, из него выводится staged-кандидат схемы 2 с теми же ключами, runtime и
фактами ядра; ни один снимок не заявляет установку. Занятые, перенаправленные,
вложенные каталоги и пути управляемого состояния отклоняются. Перед подтверждением
повторно сверяются источник и ядро. Квитанции записываются последними. Прерванные
временные файлы не предоставляют полномочий; повтор не принимает и не заменяет их.
Не публикуются прежняя транзакция WG, корень, unit, резервация, барьер истории или
сетевые изменения. Штатная прямая установка сохраняет vendor-гейт и формат данных.

## Явная миграция старого проекта

Миграция — отдельная планируемая операция, а не побочный эффект prepare/deploy. До сохранения базы создания читаются проверенные конфигурация схемы 1, манифесты, исходный bootstrap и наблюдения. Сохраняются все шесть фактических spec и прежний путь bootstrap внутри проекта, исходный serial-маркер, host pin, имена файлов, клиентские экспорты и прежние отпечатки. Ссылки на материалы отдельных протоколов выводятся из существующих объединённых ключей без выпуска ключей или изменения серверных байтов.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
schemaVersion = 1
sourcePath = "docs/development/wireguard-implementation.md"
sourceHash = "sha256:5ebef483496e3c7c584a07a44c22e5bd8a417c995843db9035bd603a1bfd7869"
reviewedTranslationHash = "sha256:ea13485b3eb34244e151f1589bf836214866f84add49e60dcb42c8d1a8c3f6bc"
sourceHash = "sha256:4a885df56bb8316b201cbe1257cf5a8c1de54df5e477a1e4d1a8db34247132e6"
reviewedTranslationHash = "sha256:a79910a1bef057fb5f03b689d3956d828c467f7190eac730e5bd256ab3191c3f"
reviewer = "Codex"
reviewerType = "ai"
reviewedAt = "2026-11-07T07:06:44.938072Z"
reviewedAt = "2026-11-07T07:29:34.895772Z"
reviewRoles = ["editorial", "technical"]
body = '''# Границы реализации стандартного WireGuard

Expand Down Expand Up @@ -686,6 +686,22 @@ helper или unit. Неизвестные файлы и неоднозначн

## Журнал кэша поколения под резервацией

`PrepareFresh` сначала собирает полный приватный staged-кэш схемы 1, затем через
тот же путь подготовки из кэша выводит staged-кандидат схемы 2. Явное согласие,
закрепления трёх сохранённых исходных файлов и одобренного текущего receiver/helper,
раздельные канонические пустые приватные каталоги, фактическое отсутствие пространства
и проверки конфликтов предшествуют прежнему vendor-CVE/ядро/build-гейту. Оба снимка
остаются вне управляемых каталогов runtime, полномочий и unit. Сборка бинарника и
проверка конфигурации общие с прямой установкой; её исходный формат данных сохраняется.

До подтверждения повторно проверяются исходные байты и факты исполняющегося ядра.
Квитанция каждого снимка записывается последней после исключительной записи полных
файлов. Прерванные префиксы остаются неопубликованными и отклоняются при повторе.
Подготовка не создаёт ключи, прежнюю транзакцию установки, корень/unit, резервацию,
барьер истории или действующее сетевое состояние. Приватный снимок не является
аттестацией или полномочием на изменение протокола; координатор обязан связать его
с точным зарезервированным запросом поколения и кэша.

Приватный backend кэша связывает полные квитанции сохранённого/нового WG и закреплённые
роли источника с хешем облачного плана и точной дельтой входа в составном запросе схемы 2.
Нужны точная открытая общая резервация и сохранённый отзыв полномочий WG под блокировками
Expand Down Expand Up @@ -766,8 +782,8 @@ runtime; подготовка и закрытие сохраняют допус
не исправляет журнал и не утверждает активность. Частичный дрейф установленных клиентов/
адресов не считается состоянием восстановления после перезагрузки.

Порядок облачных действий, общее завершение, публикация эпох с поколениями, первая приватная
подготовка runtime и публичный CLI протоколов остаются интеграционной работой. Эти приватные
Порядок облачных действий, общее завершение, публикация эпох с поколениями, координация
первой сборки и публичный CLI протоколов остаются интеграционной работой. Эти приватные
механизмы не означают проверку рабочего сервера/клиента или трафика.

## Оставшаяся интеграция
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
schemaVersion = 1
sourcePath = "docs/adr/0024-owned-vpn-protocol-transitions.md"
sourceHash = "sha256:6c9e7d96384237b5a585b0864b0cac338cfba3a47fdecb8f2775dba5ab2dac4d"
reviewedTranslationHash = "sha256:f3ce13e92dbed4161dce29ce6bcb7558aca462b73271ec28db96e1f5c3e91e80"
sourceHash = "sha256:60275955e85e2de7237e564d39f1eacc6f9e3381d870a7fa3e35bbb72dd72692"
reviewedTranslationHash = "sha256:2fb3dd7e9a1a089e94eba17668e901d54ac0e2033924006d9f44d29986aabe0c"
reviewer = "Codex"
reviewerType = "ai"
reviewedAt = "2026-11-07T07:06:45.787823Z"
reviewedAt = "2026-11-07T07:29:35.747845Z"
reviewRoles = ["editorial", "technical"]
body = '''# ADR 0024:受管 VPN 协议迁移与不可变纪元

Expand Down Expand Up @@ -140,6 +140,13 @@ systemctl show --all 将无任务表示为空 Job 值,而不是数字零。
历史、不发布根、不授权转换,也不证明活动健康。缓存重用验证完整回执和文件摘要,以及
相同执行内核事实,不下载、构建或重生成凭据。首次运行时准备仍需原有厂商/构建门禁。

私有首次准备器在独立空临时目录中执行相同的执行内核、厂商 CVE、固定工具构建及配置
验证。要求显式同意、精确三个来源文件固定值,以及已批准当前 receiver 回调固定值。
保留 staged 模式 1 基线,再派生 staged 模式 2 候选,凭据、运行时及内核事实完全相同;
两个快照都不声明已安装。拒绝已占用、别名、嵌套或受管状态目标路径;确认前复查来源及
内核事实。回执最后写入。中断临时文件不授予权限,重试不得接管或替换。不得发布旧式
WG 事务、根、unit、预留、历史屏障或网络变更。原直接安装保留厂商门禁及线格式。

## 显式旧项目迁移

迁移是独立规划操作,绝不是 prepare/deploy 的副作用。捕获创建基线前读取已验证的模式 1 配置、清单、原 bootstrap 及观测。保留全部六个实际 spec、项目内原 bootstrap 路径、原 serial 标记、主机固定值、文件名、客户端导出及旧指纹。由现有组合凭据派生每协议材料引用,不签发新密钥,也不改变服务器字节。
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
schemaVersion = 1
sourcePath = "docs/development/wireguard-implementation.md"
sourceHash = "sha256:5ebef483496e3c7c584a07a44c22e5bd8a417c995843db9035bd603a1bfd7869"
reviewedTranslationHash = "sha256:2e5fc7f091a86c737756af2a2880aee31f021f0c68ed393e7e6be1e487455f0c"
sourceHash = "sha256:4a885df56bb8316b201cbe1257cf5a8c1de54df5e477a1e4d1a8db34247132e6"
reviewedTranslationHash = "sha256:cbe24458fcec9cc30c78469809678bd1f7c04d38c13ea8b898efc19260179a5d"
reviewer = "Codex"
reviewerType = "ai"
reviewedAt = "2026-11-07T07:06:44.938072Z"
reviewedAt = "2026-11-07T07:29:34.895772Z"
reviewRoles = ["editorial", "technical"]
body = '''# 标准 WireGuard 实现边界

Expand Down Expand Up @@ -499,6 +499,17 @@ material/server 角色摘要。必需的公共意图和请求文件仍须通过

## 预留保护下的代际缓存日志

`PrepareFresh` 先构建完整私有 staged 模式 1 基线,再通过相同缓存代际路径派生 staged
模式 2 候选。显式同意、三个保留来源文件及已批准当前 receiver/helper 固定值、规范且
独立的空私有目录,以及实际命名空间缺失和冲突检查,均在原厂商 CVE/执行内核/构建
门禁之前完成。两个快照位于受管运行时、权限和 unit 目录之外。二进制及配置构建与
直接安装共用,直接安装保留原线格式。

确认前复查来源字节及执行内核事实。每个快照都先独占写入并同步完整文件,最后写入
回执;中断前缀保持未发布,重试拒绝接管。准备不创建密钥、旧式安装事务、根/unit、
预留、历史屏障或实时网络状态。私有快照既非证明,也非协议变更权限;协调器仍须将其
绑定到精确预留的代际/缓存请求。

私有缓存后端在模式 2 复合请求中,将完整的缓存/候选 WG 回执与来源角色固定值绑定到云计划
摘要和精确入站差异。它要求精确已暴露公共预留及保留的 WG 历史撤销,并按公共锁、WG 锁
顺序协调。任何私有缓存写入前先记录准备日志,不能从缓存或其回执推断协议权限。
Expand Down Expand Up @@ -553,7 +564,7 @@ starting 重试均协调 PID1 的加载定义。重载前可识别静止的缓
协调,但仅限精确 installed 候选、完整内核缺失及已排空 unit。只读状态报告需要恢复,不
修复日志或声称激活。installed 对等端/地址部分漂移不属于重启恢复前缀。

云顺序、公共完成、带代际纪元发布、首次私有运行时暂存及公共协议 CLI 准入仍需集成。
云顺序、公共完成、带代际纪元发布、首次构建编排及公共协议 CLI 准入仍需集成。
这些私有机制不代表已完成生产服务器、客户端或流量验收。

## 尚待集成
Expand Down
Loading
Loading