codex-workflow-v2 2.0.0-beta.12.5 → 2.0.0-beta.12.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +29 -3
  2. package/dist/src/alpha6/downstream-proof.d.ts +41 -2
  3. package/dist/src/alpha6/downstream-proof.js +360 -5
  4. package/dist/src/alpha6/downstream-proof.js.map +1 -1
  5. package/dist/src/alpha6/plan-risk.js +2 -2
  6. package/dist/src/alpha6/plan-risk.js.map +1 -1
  7. package/dist/src/cli.js +57 -1
  8. package/dist/src/cli.js.map +1 -1
  9. package/dist/src/contracts.d.ts +44 -1
  10. package/dist/src/dependency-provenance.d.ts +9 -2
  11. package/dist/src/dependency-provenance.js +49 -5
  12. package/dist/src/dependency-provenance.js.map +1 -1
  13. package/dist/src/git.d.ts +1 -1
  14. package/dist/src/git.js +4 -2
  15. package/dist/src/git.js.map +1 -1
  16. package/dist/src/version.d.ts +1 -1
  17. package/dist/src/version.js +1 -1
  18. package/dist/src/workflow.d.ts +11 -1
  19. package/dist/src/workflow.js +434 -28
  20. package/dist/src/workflow.js.map +1 -1
  21. package/docs/autonomy-guardrails.md +7 -0
  22. package/docs/development-flow.md +16 -0
  23. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  24. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  25. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  26. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +26 -6
  27. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +27 -7
  28. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +34 -12
  29. package/docs/release.md +11 -1
  30. package/docs/updating-existing-project.md +61 -2
  31. package/docs/validation-report.md +92 -83
  32. package/package.json +2 -1
  33. package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +1 -1
  34. package/plugins/codex-workflow-gateway/references/protocol.md +12 -1
  35. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +33 -1
  36. package/schemas/downstream-proof-invalidation-event.schema.json +1 -0
  37. package/schemas/downstream-proof-replan-recovery-event.schema.json +61 -0
  38. package/schemas/task.schema.json +56 -0
  39. package/scripts/generate-pdf-docs.py +13 -2
@@ -152,6 +152,13 @@ evidence, supersedes execution authority, yields C1, and routes the same Task to
152
152
  The route grants no authority to change Task objective, requirements, acceptance, or Milestone
153
153
  topology.
154
154
 
155
+ The beta.12.7 compatibility repair for an accidental post-invalidation Knowledge rebind is similarly
156
+ non-semantic. It may restore `needs_fix` and preserve an exact dirty-worktree binding, but it cannot
157
+ approve a replacement Plan, infer new requirements, or treat preserved bytes as completed evidence.
158
+ After any required Knowledge refresh, the full unfinished remainder is planned again. Carryover into
159
+ execution is valid only when one newly authorized Step owns every bound path and the current
160
+ HEAD/path/content hashes still match; checks and strict review retain their ordinary authority.
161
+
155
162
  Docker permission diagnostics are classified before consuming retry authority. Sandbox `EPERM` or
156
163
  permission denial gets one exact escalated rerun of the health probe/Plan check. It is not an infra
157
164
  failure and cannot authorize a Docker Desktop restart or image substitution. Only an escalated
@@ -106,6 +106,22 @@ invalidated predecessor completion, yields its C1 lease, and returns the same Ta
106
106
  The replacement Plan must cover the unfinished remainder and pass a fresh Risk Audit and execution
107
107
  authorization. Do not stash, reset, commit, or recreate the Task around this route.
108
108
 
109
+ If the repository is still on a package version that cannot advertise that route, beta.12.6 has
110
+ one update-only bridge. After exact dependency-only commits have aligned the active Milestone base
111
+ and Task branch, `update downstream-proof-dependency-recover` validates recorded history at the
112
+ candidate parent, binds the active proof dirty set by content hash, and registers only the Task
113
+ dependency commit. Product bytes and Step state remain unchanged; fresh `next` must then advertise
114
+ the ordinary `task downstream-proof-recover`. This is not a general dirty-update permission.
115
+
116
+ If beta.12.6 already performed that recovery but a subsequent Knowledge approval mechanically
117
+ rebound its rejected Plan, use only the beta.12.7 stranded-replan bridge advertised by fresh `next`.
118
+ The source preflight runs before dependency transport and binds the exact beta.12.6 Task revision,
119
+ HEAD, dirty paths, and content hash. After dependency-only base/Task commits and provenance recovery,
120
+ `task downstream-proof-replan-recover` restores `needs_fix`. Reconcile/approve stale Project Knowledge,
121
+ then replace the full unfinished Plan. The preserved dirty set may enter execution only through one
122
+ new Step whose `allowedWrites` owns every path and whose fresh `next` reports validated carryover.
123
+ Completing that Step still requires its checks, Core-owned commit, and any guarded strict review.
124
+
109
125
  A sandboxed Docker `EPERM`, `operation not permitted`, or `permission denied` result is not a failed
110
126
  daemon check. Re-run the exact probe/check once with sandbox escalation without consuming a retry.
111
127
  Restart Docker Desktop only with separate authorization after the escalated call reaches Docker and
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: архитектура beta.12.5
2
+ title: Codex Workflow V2: архитектура beta.12.7
3
3
  subtitle: Источники истины, lifecycle, роли, delegation, зависимости Tasks и границы доверия
4
4
  part: Часть 1 из 3 | Архитектура
5
5
  document_version: 2.0
6
6
  date: 29 августа 2026
7
- subject: Архитектура и границы Codex Workflow V2 beta.12.5
7
+ subject: Архитектура и границы Codex Workflow V2 beta.12.7
8
8
  ---
9
9
 
10
10
  # 1. Назначение и граница системы
@@ -18,7 +18,7 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
18
18
  Система рассчитана на одного пользователя и одну машину. Она не предоставляет distributed locking,
19
19
  криптографическую идентификацию actor string или безопасную синхронизацию state между компьютерами.
20
20
 
21
- ## 1.1. Что beta.12.5 гарантирует
21
+ ## 1.1. Что beta.12.7 гарантирует
22
22
 
23
23
  - exact project-local npm package и совместимый handshake до lifecycle действий;
24
24
  - Discovery до materialization Task или Milestone;
@@ -31,8 +31,10 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
31
31
  - journaled recovery для составных переходов и fail-closed поведение при drift/corruption.
32
32
  - bounded recovery, когда downstream proof требует изменить уже завершённый predecessor Step:
33
33
  worktree и HEAD сохраняются, stale completion authority снимается, та же Task возвращается в planning.
34
+ - bounded compatibility recovery, если beta.12.6 после этого recovery ошибочно rebind-нула отвергнутый
35
+ Plan: exact dirty bytes сохраняются до нового consolidated Step, а Knowledge refresh не отменяет `plan-set`.
34
36
 
35
- ## 1.2. Что beta.12.5 не гарантирует
37
+ ## 1.2. Что beta.12.7 не гарантирует
36
38
 
37
39
  - правильность продуктовой идеи или автоматически выбранного provider Task;
38
40
  - semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
@@ -249,13 +251,31 @@ beta.11 `task plan-integrity-recover` существует для одного
249
251
  отсутствует exact root npm script и текущий Step не может изменить package.json. Recovery не меняет
250
252
  worktree или Plan и не создаёт synthetic second failure; он записывает bound `replan-required`.
251
253
 
252
- beta.12.5 различает другой случай: активный downstream proof оставил изменения в собственном scope и
254
+ beta.12.6 различает другой случай: активный downstream proof оставил изменения в собственном scope и
253
255
  показал необходимость исправить completed transitive predecessor. Fresh `next` вместо невозможного
254
256
  `step-complete` рекламирует `task downstream-proof-recover`. Atomic transition сохраняет dirty files и
255
257
  HEAD, переносит predecessor commits в historical `invalidatedStepCommits`, очищает только stale Step evidence,
256
258
  yield C1 и возвращает ту же Task к новому Plan/risk audit/authorization. Unrelated dirty file,
257
259
  non-predecessor ownership, повреждённый journal или unregistered commit fail closed.
258
260
 
261
+ Если старая версия не может установить этот fix из-за running Step/dirty preflight, beta.12.6
262
+ добавляет отдельный update bridge. После двух exact dependency-only commits на active base и Task
263
+ branch Core проверяет Task history на `HEAD^`, candidate на `HEAD`, все version surfaces, отсутствие
264
+ leases/transactions, predecessor ownership и content hash dirty set. Переход регистрирует только
265
+ dependency commit, не меняет product bytes/Step и делает обычный `task downstream-proof-recover`
266
+ достижимым до manifest-induced Knowledge refresh. Это не общее разрешение dirty update.
267
+
268
+ beta.12.7 закрывает следующий доказанный Signal case: beta.12.6 уже выполнила downstream-proof
269
+ invalidation, но последующее Project Knowledge approval механически вернуло старый двух-Step Plan в
270
+ `awaiting_execution_authorization`. Read-only `update downstream-proof-replan-update-preflight`
271
+ сначала связывает exact beta.12.6 revision, HEAD, шесть dirty paths и content hash. После двух
272
+ dependency-only commits `update downstream-proof-replan-dependency-preflight/recover` регистрирует
273
+ только новый Workflow HEAD. `task downstream-proof-replan-recover` затем атомарно возвращает ту же
274
+ Task в `needs_fix`; stale Knowledge можно reconciliate/approve, но fresh `next` всё равно требует
275
+ новый `task plan-set`. Новый Plan может передать сохранённые bytes только одному Step, который владеет
276
+ всем dirty set. `task run` принимает carryover лишь при exact HEAD/path/hash match, после чего Step
277
+ проходит обычные checks, Core-owned commit и strict review.
278
+
259
279
  Docker socket `EPERM` в sandbox не является доказательством сломанного daemon. Gateway один раз
260
280
  повторяет exact health probe или Plan check с sandbox escalation без расходования remediation attempt.
261
281
  Restart Docker Desktop требует отдельного разрешения и допустим только после escalated daemon failure.
@@ -265,7 +285,7 @@ Restart Docker Desktop требует отдельного разрешения
265
285
  # 10. Operational checklist
266
286
 
267
287
  - exact package version установлен, bundled gateway соответствует release и переустановлен;
268
- - handshake подтверждает protocol 2, state schema 2 и beta.12.5 capabilities;
288
+ - handshake подтверждает protocol 2, state schema 2 и beta.12.7 capabilities;
269
289
  - каждый mutation следует свежему `status -> next` и exact option contract;
270
290
  - Docker permission failure сначала классифицируется как sandbox boundary, а не как infra retry;
271
291
  - semantic unknowns и human gates не маскируются delegation;
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  title: Codex Workflow V2: delegated chat-only guide
3
- subtitle: Актуальный beta.12.5 путь от нового Discovery до принятого Milestone без ручного CLI
3
+ subtitle: Актуальный beta.12.7 путь от нового Discovery до принятого Milestone без ручного CLI
4
4
  part: Часть 2 из 3 | Практика
5
5
  document_version: 2.0
6
6
  date: 29 августа 2026
7
- subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.5
7
+ subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.7
8
8
  ---
9
9
 
10
- # 1. Рабочая модель beta.12.5
10
+ # 1. Рабочая модель beta.12.7
11
11
 
12
12
  Пользователь работает в одном Codex Project и формулирует продуктовый outcome. Coordinator выполняет
13
13
  CLI, создаёт отдельные Task/Reviewer chats и ведёт supervision loop. Workflow Core остаётся authority
@@ -40,7 +40,7 @@ Blocking unknown, scope change, grant issuance или unrecoverable integrity co
40
40
  # 2. Подготовка проекта перед новым Discovery
41
41
 
42
42
  1. Убедитесь, что checkout чистый и выбран правильный repository root.
43
- 2. Установите beta.12.5 как точную devDependency после публикации release.
43
+ 2. Установите beta.12.7 как точную devDependency после публикации release.
44
44
  3. Обновите и переустановите bundled `codex-workflow-gateway` этого release.
45
45
  4. Проверьте, что declared и installed package versions равны.
46
46
  5. Запустите новый Coordinator chat, не fork старого Milestone conversation.
@@ -56,7 +56,7 @@ AGENTS.md
56
56
  -> doctor только как дополнительная диагностика
57
57
  ```
58
58
 
59
- Handshake beta.12.5 должен сообщать `packageVersion=2.0.0-beta.12.5`, `protocolVersion=2`,
59
+ Handshake beta.12.7 должен сообщать `packageVersion=2.0.0-beta.12.7`, `protocolVersion=2`,
60
60
  `stateSchemaVersion=2`, dependency DAG, initial Plan transaction, mechanical feasibility,
61
61
  Milestone autonomy и structural replacement disabled capabilities.
62
62
 
@@ -116,7 +116,7 @@ delegate, scope, transitions и expiry. DGR передаётся только е
116
116
  ```text
117
117
  НОВЫЙ COORDINATOR CHAT
118
118
 
119
- Проведи новый Milestone через Codex Workflow V2 beta.12.5 в delegated режиме.
119
+ Проведи новый Milestone через Codex Workflow V2 beta.12.7 в delegated режиме.
120
120
  Repository: <ABSOLUTE-REPOSITORY-ROOT>.
121
121
  Milestone ID: AUTO.
122
122
  Delegate actor: agent:milestone-coordinator.
@@ -298,6 +298,8 @@ Task chat записывает его только при совпадении p
298
298
  | Finding `route=fix` | Продолжить тот же Step; count остаётся диагностикой |
299
299
  | Finding `route=replan` с exact Plan conflict | `task plan-set`, меняются только implementation Steps |
300
300
  | `split-required` | Stop: `STRUCTURAL_REPLACEMENT_REQUIRED`, никаких replacement writes |
301
+ | Старая версия + active downstream proof блокируют update | Только beta.12.6 exact dependency commits и advertised `update downstream-proof-dependency-recover` |
302
+ | После downstream recovery beta.12.6 вернула отвергнутый Plan через Knowledge rebind | Только beta.12.7 replan update bridge, затем recovery и новый consolidated Plan той же Task |
301
303
  | Exact beta.11 attempt-four `stop-escalate` | Только advertised prepare, затем отдельный Human-confirmed apply; исходный stop сохраняется |
302
304
  | Любой другой explicit `stop-escalate` | Terminal user attention |
303
305
  | Stale dependency binding | Новый handoff/claim только по fresh `next` |
@@ -310,6 +312,22 @@ P04-A не переносит completed Steps и не rewires dependencies пр
310
312
  dirty worktree/HEAD, append-only фиксирует invalidated predecessor evidence, освобождает C1 и возвращает
311
313
  текущую Task к `task plan-set`. Если fresh `next` не рекламирует этот переход, вызывать его нельзя.
312
314
 
315
+ Если этот переход доступен только после update, не stash/reset product work. Обновите active base в
316
+ отдельном worktree и текущую Task branch двумя отдельными commits только `package.json`/lock, установите
317
+ beta.12.6 и требуйте от fresh `next` `update downstream-proof-dependency-recover`. Read-only preflight
318
+ должен вернуть `eligible=true`, exact `HEAD`/`HEAD^`, Task revision, пустые blockers и content-hash
319
+ binding dirty set. Recover регистрирует только dependency HEAD; следующий fresh `next` должен вернуть
320
+ обычный `task downstream-proof-recover`. Любой иной diff/history/dirty path/lease означает stop.
321
+
322
+ Для exact stranded shape после уже выполненного beta.12.6 recovery сначала запустите новой версией
323
+ read-only `update downstream-proof-replan-update-preflight`. Продолжайте только при `eligible=true`,
324
+ source `2.0.0-beta.12.6`, exact revision/HEAD, ожидаемых dirty paths/hash и пустых blockers. Затем
325
+ перенесите beta.12.7 двумя dependency-only commits на base и Task branch, установите пакет и следуйте
326
+ fresh `next` через `update downstream-proof-replan-dependency-recover` и
327
+ `task downstream-proof-replan-recover`. После обязательного Knowledge reconcile/approve fresh `next`
328
+ должен остаться на `task plan-set`, а не resurrect старый Plan. Новый Step обязан один владеть всем
329
+ сохранённым dirty set; `task run` допустим только при `downstreamProofCarryover.state=validated`.
330
+
313
331
  Ошибка Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied` в sandbox не считается
314
332
  падением daemon и не расходует retry. Повторите exact read-only probe или Plan check один раз с sandbox
315
333
  escalation. Не перезапускайте Docker Desktop и не меняйте image без отдельного разрешения и подтверждённого
@@ -345,7 +363,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
345
363
 
346
364
  # 14. Итоговый checklist пользователя
347
365
 
348
- - beta.12.5 exact package и новый bundled gateway установлены;
366
+ - beta.12.7 exact package и новый bundled gateway установлены;
349
367
  - новый Coordinator chat не является fork старого Milestone;
350
368
  - bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
351
369
  - Discovery не materialized при blocking unknowns;
@@ -356,5 +374,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
356
374
  - каждый transition пришёл из fresh `next`;
357
375
  - beta.11 stop override, если рекламировался, прошёл отдельные prepare и user-confirmed apply без journal rewrite;
358
376
  - downstream predecessor recovery, если рекламировался, сохранил worktree и завершился новым Plan authority;
377
+ - active-proof package bridge, если понадобился, зарегистрировал только exact dependency HEAD перед recovery;
378
+ - stranded-replan bridge, если понадобился, завершился новым Plan и полным Step checks/review, а не только сменой navigation;
359
379
  - split-required остановился без replacement mutations;
360
380
  - Milestone validation и final acceptance связаны с текущим clean base HEAD.
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: технический справочник beta.12.5
2
+ title: Codex Workflow V2: технический справочник beta.12.7
3
3
  subtitle: Protocol 2, state schema 2, transactions, credentials, dependency authority, review и recovery
4
4
  part: Часть 3 из 3 | Technical reference
5
5
  document_version: 2.0
6
6
  date: 29 августа 2026
7
- subject: Технический контракт Codex Workflow V2 beta.12.5
7
+ subject: Технический контракт Codex Workflow V2 beta.12.7
8
8
  ---
9
9
 
10
10
  # 1. Runtime contract
@@ -13,9 +13,9 @@ Workflow V2 предоставляет локальные revisioned transitions
13
13
  и `value` либо структурированную ошибку с `code`, `message` и `details`. Chat, PDF и gateway не создают
14
14
  authority сами: mutating permission определяется runtime state и свежим `next`.
15
15
 
16
- | Параметр beta.12.5 | Значение |
16
+ | Параметр beta.12.7 | Значение |
17
17
  |---|---|
18
- | npm package | `codex-workflow-v2@2.0.0-beta.12.5` |
18
+ | npm package | `codex-workflow-v2@2.0.0-beta.12.7` |
19
19
  | protocolVersion | 2 |
20
20
  | stateSchemaVersion | 2 |
21
21
  | lifecycle epoch | 2 |
@@ -37,7 +37,7 @@ Gateway выполняет:
37
37
  5. вызов только package-local `dist/src/cli.js --repo <root>`;
38
38
  6. `gateway handshake` до lifecycle действий.
39
39
 
40
- Ключевые beta.12.5 capabilities:
40
+ Ключевые beta.12.7 capabilities:
41
41
 
42
42
  | Группа | Capabilities |
43
43
  |---|---|
@@ -316,13 +316,34 @@ fresh `next` через corrective yield и обычный Human-confirmed repla
316
316
  P01-A предотвращает поддерживаемые contradictions до fresh authorization. beta.11 path остаётся для
317
317
  pre-P01 authorizations и late/unsupported exact recovery cases.
318
318
 
319
- # 13.1. beta.12.5 compatibility transitions
319
+ # 13.1. beta.12.7 compatibility transitions
320
320
 
321
321
  `update dependency-provenance-recover` больше не требует полного равенства Task manifest/lock с base.
322
322
  Base остаётся version authority, а parent/HEAD candidate сравниваются без единственных Workflow
323
323
  dependency entries. Поэтому recorded Task-local scripts сохраняются; payload drift того же candidate
324
324
  commit по-прежнему блокируется.
325
325
 
326
+ `update downstream-proof-dependency-preflight/recover` — отдельная beta.12.6 совместимость для
327
+ active proof, который делает обычный clean update недостижимым. После exact dependency-only commits
328
+ на active base и Task branch preflight проверяет recorded history на `HEAD^`, candidate на `HEAD`,
329
+ aligned runtime/declared/locked/installed/current/base versions, отсутствие leases/transactions,
330
+ единственный active Step, transitive predecessor ownership и SHA-256 dirty product bytes. Recovery
331
+ добавляет только candidate в `systemCommits` и сохраняет binding в
332
+ `dependencyProvenanceRecoveries.activeDownstreamProof`; product work и Step state не меняются.
333
+ Fresh `next` затем приоритетно рекламирует `task downstream-proof-recover` до Knowledge refresh.
334
+
335
+ `update downstream-proof-replan-update-preflight` — read-only source gate для одного exact
336
+ beta.12.6 stranded shape после predecessor invalidation и ошибочного Knowledge rebind старого Plan.
337
+ Он требует точные source version surfaces, Task revision/status/rebind, preserved HEAD, dirty paths/hash
338
+ и отсутствие lease/transactions. После dependency-only transport
339
+ `update downstream-proof-replan-dependency-preflight/recover` валидирует parent на `HEAD^`, candidate
340
+ на `HEAD` и записывает `dependencyProvenanceRecoveries.downstreamProofReplan` без изменения product
341
+ bytes. `task downstream-proof-replan-recover` атомарно добавляет
342
+ `downstream-proof-replan-recoveries.jsonl`, supersede-ит execution authorization и возвращает Task в
343
+ `needs_fix`. Stale Knowledge refresh разрешён после repair, но не может заменить обязательный
344
+ `task plan-set`. Dirty carryover принимается `task run` только если один replacement Step владеет всем
345
+ set, а HEAD, paths и SHA-256 совпадают с recovery event.
346
+
326
347
  `task stop-override-prepare/apply` обслуживает только exact beta.11 attempt-four policy stop. Prepare
327
348
  не пишет state и создаёт binding по Task revision, Step, attempt-3 continue, attempt-4 stop, трём
328
349
  remediation events, Plan, HEAD, package, human actor и reason. Apply в отдельном user turn добавляет
@@ -421,12 +442,12 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
421
442
  После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
422
443
  не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
423
444
 
424
- # 18. Public command surface beta.12.5
445
+ # 18. Public command surface beta.12.7
425
446
 
426
447
  | Область | Actions |
427
448
  |---|---|
428
449
  | System | `doctor`, `status`, `next`, `gateway handshake`, `locks` |
429
- | Update | `preflight`, `rescue-preflight`, `dependency-provenance-preflight/recover` |
450
+ | Update | `preflight`, `rescue-preflight`, dependency provenance, downstream-proof dependency bridge, downstream-proof replan update/dependency bridge |
430
451
  | Project memory | `scan`, `show`, `status`, `approve`, `reconcile` |
431
452
  | Delegation | `prepare`, `grant`, `list`, `show`, `revoke` |
432
453
  | Graph | `prepare`, `status`, `refresh-request`, `bind`, `fallback` |
@@ -436,7 +457,7 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
436
457
  | Task execution | `start`, `run`, `step-complete`, `submit`, `result-set`, `accept`, `sync-base`, `merge`, `merge-confirm` |
437
458
  | C1 | `handoff[-prepare/-replace/-show]`, `claim`, `writer-credential-replace`, `handback[-create]` |
438
459
  | Review | review/step-review packet, launch, sealed record и record actions |
439
- | Corrective | decision/recovery, plan-integrity, downstream-proof-recover, remediation-mode, stop-override prepare/apply, yield и corrective-replan actions |
460
+ | Corrective | decision/recovery, plan-integrity, downstream-proof-recover/replan-recover, remediation-mode, stop-override prepare/apply, yield и corrective-replan actions |
440
461
  | Replacement | `replacement-materialize` retained, но всегда disabled в P04-A |
441
462
 
442
463
  Exact options берутся из fresh `next`; command help используется только когда
@@ -445,10 +466,11 @@ Exact options берутся из fresh `next`; command help используе
445
466
  # 19. Release и package update gates
446
467
 
447
468
  Перед package update project-local `update preflight` должен вернуть `safe=true`: clean checkout, нет
448
- running Step и active/stale writer lease. External runner допустим только в документированной rescue
449
- compatibility форме.
469
+ running Step и active/stale writer lease. Исключения — документированный alpha.7 rescue, beta.12.6
470
+ active-downstream-proof bridge и beta.12.7 exact stranded-replan bridge; все они fail-closed и не дают
471
+ общего разрешения dirty update.
450
472
 
451
- Перед beta.12.5 tag release repository выполняет:
473
+ Перед beta.12.7 tag release repository выполняет:
452
474
 
453
475
  1. `npm ci`;
454
476
  2. `npm run validate`;
package/docs/release.md CHANGED
@@ -27,7 +27,7 @@ The PDF check deterministically regenerates all three Russian documents from
27
27
  `docs/pdf/sources`, binds the visible package version to the root manifest, and fails when any
28
28
  tracked PDF is stale. Source and binary PDFs are one release unit.
29
29
 
30
- For beta.12.5, the release gate also relies on `npm run release:check` to fail if:
30
+ For beta.12.7, the release gate also relies on `npm run release:check` to fail if:
31
31
 
32
32
  - canonical entity schema 2 shapes drift;
33
33
  - protocol 2 is not the active public contract, or intact protocol-1 adoption evidence stops being readable through the bounded compatibility window;
@@ -53,6 +53,16 @@ For beta.12.5, the release gate also relies on `npm run release:check` to fail i
53
53
  - downstream proof cannot invalidate only completed transitive-predecessor authority while
54
54
  preserving worktree/HEAD, yielding C1, and returning the same Task to fresh planning; or unrelated
55
55
  dirty files and damaged invalidation evidence do not fail closed.
56
+ - an eligible active downstream proof cannot transport one exact dependency-only update across
57
+ aligned base/Task commits while preserving product bytes; or unknown history, unrelated dirty
58
+ scope, content drift within an observation, leases, transactions, and wider candidates do not
59
+ fail closed before provenance registration and ordinary downstream recovery.
60
+ - the exact beta.12.6 post-invalidation Knowledge-rebind shape cannot pass a read-only source gate,
61
+ transport beta.12.7 through dependency-only commits, register provenance, restore `needs_fix`,
62
+ survive required Knowledge refresh, and reach a fresh replacement Plan;
63
+ - preserved dirty bytes can execute without one Step owning the complete bound set, or HEAD/path/hash
64
+ drift is accepted; or the Signal-shaped E2E stops before checks, Core commit, strict Step review,
65
+ and fresh navigation to Task submission.
56
66
  - bundled gateway guidance treats Docker socket `EPERM` as daemon failure, consumes a remediation
57
67
  attempt before one exact escalated probe, or recommends restarting Docker Desktop without separate
58
68
  authority.
@@ -59,6 +59,64 @@ candidate: его HEAD обязан менять ровно `package.json` и `p
59
59
  dependency; любое другое поле, добавленное тем же candidate commit, неизвестный commit, stale base,
60
60
  dirty checkout, lease или transaction по-прежнему блокируют recovery.
61
61
 
62
+ ### Исключение beta.12.6 для активного downstream proof
63
+
64
+ Обычный `update preflight` по-прежнему правильно запрещает обновление при running Step и dirty
65
+ checkout. Но если dirty set уже является подтверждаемым конфликтом между активным proof Step и
66
+ completed transitive predecessor, ожидание чистой границы создаёт цикл: штатный recovery существует
67
+ только в новой версии, а установить её до recovery нельзя. beta.12.6 разрешает только этот exact
68
+ bootstrap и не ослабляет общий preflight.
69
+
70
+ Сначала убедитесь, что нет active/stale writer lease, pending/corrupt transaction и Core operation.
71
+ Не stash/reset/commit product files и не завершайте Step вручную. В отдельном временном worktree
72
+ обновите active Milestone base до точной beta.12.6 и создайте commit только с `package.json` и
73
+ `package-lock.json`. Затем в текущей Task branch установите ту же точную версию и создайте второй
74
+ commit только из этих двух файлов, оставив существующий product dirty set неизменным. Не merge и
75
+ не переносите product commits между ветками.
76
+
77
+ Fresh project-local beta.12.6 `next` обязан вернуть
78
+ `update downstream-proof-dependency-recover`. Выполните read-only
79
+ `update downstream-proof-dependency-preflight --id <TASK-ID>` и продолжайте только при
80
+ `eligible=true`, пустом `blockers`, ожидаемых `HEAD`/`HEAD^`, exact Task revision и непустом
81
+ `activeDownstreamProof`. Binding включает current Plan, единственный active Step, все dirty paths,
82
+ SHA-256 их содержимого и completed predecessor Steps, чья authority будет инвалидирована позже.
83
+ После advertised recover повторите `status -> next`: ожидается `task downstream-proof-recover`,
84
+ который имеет приоритет над Knowledge refresh, вызванным manifest/lock commit. Только после него
85
+ выполняются новый Plan, Risk Audit, authorization и возвращённые `next` Knowledge actions.
86
+
87
+ Read-only preflight является наблюдением, а не confirmation token: recover заново вычисляет и
88
+ записывает binding текущего dirty content. Поэтому изменение допустимого product content до
89
+ recover создаёт другой hash, который нужно сверить в ответе. После recover этот hash остаётся
90
+ аудит-доказательством сохранённых bridge bytes; downstream-proof заново проверяет текущие paths,
91
+ ownership и history, а новый Plan и review оценивают текущий content. Путь fail-closed при unrelated dirty path,
92
+ неизвестном commit до candidate, candidate шире двух dependency-файлов, stale Milestone base,
93
+ version divergence, branch/Plan/Step mismatch, lease или transaction. В этом случае не правьте
94
+ `systemCommits` или внешний state вручную.
95
+
96
+ ### Исключение beta.12.7 для stranded downstream replan
97
+
98
+ Это исключение применимо только если beta.12.6 уже записала downstream-proof invalidation, а затем
99
+ Project Knowledge approval ошибочно rebound-нул отвергнутый Plan и вернул Task в
100
+ `awaiting_execution_authorization`. До изменения dependency запустите beta.12.7 source/runtime
101
+ read-only `update downstream-proof-replan-update-preflight --id <TASK-ID>`. Требуются
102
+ `eligible=true`, source version `2.0.0-beta.12.6`, exact Task revision/branch/base/HEAD, неизменные
103
+ dirty paths/content hash и пустые blockers.
104
+
105
+ Затем тем же двухкоммитным способом обновите active base и Task branch только в `package.json` и
106
+ `package-lock.json`, установите exact beta.12.7 и следуйте fresh `next`. Допустимая цепочка:
107
+ `update downstream-proof-replan-dependency-preflight` ->
108
+ `update downstream-proof-replan-dependency-recover` ->
109
+ `task downstream-proof-replan-recover`. После repair manifest change обычно делает Project Knowledge
110
+ stale: выполните рекламируемые reconcile/approve, но не `task knowledge-rebind` старого Plan. Fresh
111
+ `next` обязан вернуть `task plan-set`.
112
+
113
+ Новый Plan должен заново классифицировать весь unfinished remainder. Сохранённые dirty bytes не
114
+ становятся completed evidence и не коммитятся административным recovery. Они могут быть приняты
115
+ только одним planned Step, `allowedWrites` которого точно покрывает весь dirty set. Перед `task run`
116
+ fresh `next` обязан показать `downstreamProofCarryover.state=validated`; после run обязательны checks,
117
+ Core-owned Step commit и strict review, если Step guarded. Изменение content/path/HEAD, дополнительная
118
+ Task revision, audit/authorization старого Plan, lease или transaction блокируют исключение.
119
+
62
120
  ### Исключение beta.12.1 для beta.11 attempt-four stop
63
121
 
64
122
  Если beta.11 записал `stop-escalate` перед четвёртой попыткой только после последовательности
@@ -100,8 +158,9 @@ context refresh после уже подтверждённого Human override.
100
158
 
101
159
  ## 1. Подготовьте отдельный чат обновления
102
160
 
103
- Не обновляйте пакет во время выполняющегося Worker Step. Дождитесь завершения текущего ответа
104
- Codex и откройте в нужном проекте отдельный чат `Workflow update`.
161
+ Не обновляйте пакет во время выполняющегося Worker Step, кроме exact beta.12.6 downstream-proof
162
+ исключения выше. В обычном случае дождитесь завершения текущего ответа Codex и откройте в нужном
163
+ проекте отдельный чат `Workflow update`.
105
164
 
106
165
  Передайте агенту этот промпт, заменив `<НОВАЯ_ВЕРСИЯ>` точной опубликованной версией:
107
166