codex-workflow-v2 2.0.0-beta.12.4 → 2.0.0-beta.12.6

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 (36) hide show
  1. package/README.md +31 -4
  2. package/dist/src/alpha6/downstream-proof.d.ts +34 -0
  3. package/dist/src/alpha6/downstream-proof.js +296 -0
  4. package/dist/src/alpha6/downstream-proof.js.map +1 -0
  5. package/dist/src/cli.js +32 -1
  6. package/dist/src/cli.js.map +1 -1
  7. package/dist/src/contracts.d.ts +34 -1
  8. package/dist/src/dependency-provenance.d.ts +8 -1
  9. package/dist/src/dependency-provenance.js +36 -5
  10. package/dist/src/dependency-provenance.js.map +1 -1
  11. package/dist/src/git.d.ts +1 -1
  12. package/dist/src/git.js +5 -2
  13. package/dist/src/git.js.map +1 -1
  14. package/dist/src/version.d.ts +1 -1
  15. package/dist/src/version.js +1 -1
  16. package/dist/src/workflow.d.ts +8 -0
  17. package/dist/src/workflow.js +224 -8
  18. package/dist/src/workflow.js.map +1 -1
  19. package/docs/autonomy-guardrails.md +16 -0
  20. package/docs/development-flow.md +19 -0
  21. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  22. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  23. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  24. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +27 -6
  25. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +28 -8
  26. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +42 -14
  27. package/docs/release.md +11 -1
  28. package/docs/updating-existing-project.md +37 -2
  29. package/docs/validation-report.md +95 -82
  30. package/package.json +1 -1
  31. package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +1 -1
  32. package/plugins/codex-workflow-gateway/references/protocol.md +27 -1
  33. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +43 -1
  34. package/schemas/downstream-proof-invalidation-event.schema.json +70 -0
  35. package/schemas/task.schema.json +27 -0
  36. package/scripts/generate-pdf-docs.py +13 -2
@@ -141,6 +141,22 @@ validation, Risk Audit, Human confirmation, journaled execution, readback, and r
141
141
  authorization. Other check failures use the normal continuable remediation route; they do not
142
142
  receive the narrow Plan-integrity shortcut, but attempt count alone never stops them.
143
143
 
144
+ ### Downstream-proof predecessor recovery
145
+
146
+ Core prevents `task step-complete` when the active proof Step has dirty files outside its own
147
+ `allowedWrites`. A bounded recovery is advertised only when every such file belongs to a completed
148
+ transitive predecessor, the branch and registered Git history are exact, the active Step has no
149
+ completion evidence, and no unrelated path exists. The atomic transition preserves product files
150
+ and HEAD, moves invalidated predecessor commits into historical `invalidatedStepCommits`, clears stale Step
151
+ evidence, supersedes execution authority, yields C1, and routes the same Task to ordinary `plan-set`.
152
+ The route grants no authority to change Task objective, requirements, acceptance, or Milestone
153
+ topology.
154
+
155
+ Docker permission diagnostics are classified before consuming retry authority. Sandbox `EPERM` or
156
+ permission denial gets one exact escalated rerun of the health probe/Plan check. It is not an infra
157
+ failure and cannot authorize a Docker Desktop restart or image substitution. Only an escalated
158
+ invocation that reaches Docker and proves daemon unavailability establishes that failure class.
159
+
144
160
  ## Atomic context refresh
145
161
 
146
162
  When `next` returns top-level `action: task context-refresh` with an exact option, a
@@ -99,6 +99,25 @@ the exact evidence-bound early `replan-required` posture; it never edits source,
99
99
  Continue through the advertised corrective yield and corrective replan rather than calling
100
100
  `task run` again.
101
101
 
102
+ If a later proof Step leaves changes both in its own scope and in files owned by a completed
103
+ transitive predecessor, fresh `next` advertises `task downstream-proof-recover` instead of
104
+ `task step-complete`. The command preserves the dirty worktree and HEAD, append-only records the
105
+ invalidated predecessor completion, yields its C1 lease, and returns the same Task to `task plan-set`.
106
+ The replacement Plan must cover the unfinished remainder and pass a fresh Risk Audit and execution
107
+ authorization. Do not stash, reset, commit, or recreate the Task around this route.
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
+ A sandboxed Docker `EPERM`, `operation not permitted`, or `permission denied` result is not a failed
117
+ daemon check. Re-run the exact probe/check once with sandbox escalation without consuming a retry.
118
+ Restart Docker Desktop only with separate authorization after the escalated call reaches Docker and
119
+ proves the daemon unavailable.
120
+
102
121
  Execution authorization and final acceptance use the human path by default. If the user has
103
122
  previously issued an active delegation grant for the exact transition and scope, the named
104
123
  delegate may perform that transition with `--delegation-grant`. The event keeps the delegate
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: архитектура beta.12.4
2
+ title: Codex Workflow V2: архитектура beta.12.6
3
3
  subtitle: Источники истины, lifecycle, роли, delegation, зависимости Tasks и границы доверия
4
4
  part: Часть 1 из 3 | Архитектура
5
5
  document_version: 2.0
6
- date: 28 августа 2026
7
- subject: Архитектура и границы Codex Workflow V2 beta.12.4
6
+ date: 29 августа 2026
7
+ subject: Архитектура и границы Codex Workflow V2 beta.12.6
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.4 гарантирует
21
+ ## 1.1. Что beta.12.6 гарантирует
22
22
 
23
23
  - exact project-local npm package и совместимый handshake до lifecycle действий;
24
24
  - Discovery до materialization Task или Milestone;
@@ -29,8 +29,10 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
29
29
  - external-sealed Step/Task review в отдельных Codex tasks;
30
30
  - state-bound human gates либо ранее выданные bounded delegation contracts;
31
31
  - journaled recovery для составных переходов и fail-closed поведение при drift/corruption.
32
+ - bounded recovery, когда downstream proof требует изменить уже завершённый predecessor Step:
33
+ worktree и HEAD сохраняются, stale completion authority снимается, та же Task возвращается в planning.
32
34
 
33
- ## 1.2. Что beta.12.4 не гарантирует
35
+ ## 1.2. Что beta.12.6 не гарантирует
34
36
 
35
37
  - правильность продуктовой идеи или автоматически выбранного provider Task;
36
38
  - semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
@@ -247,13 +249,32 @@ beta.11 `task plan-integrity-recover` существует для одного
247
249
  отсутствует exact root npm script и текущий Step не может изменить package.json. Recovery не меняет
248
250
  worktree или Plan и не создаёт synthetic second failure; он записывает bound `replan-required`.
249
251
 
252
+ beta.12.6 различает другой случай: активный downstream proof оставил изменения в собственном scope и
253
+ показал необходимость исправить completed transitive predecessor. Fresh `next` вместо невозможного
254
+ `step-complete` рекламирует `task downstream-proof-recover`. Atomic transition сохраняет dirty files и
255
+ HEAD, переносит predecessor commits в historical `invalidatedStepCommits`, очищает только stale Step evidence,
256
+ yield C1 и возвращает ту же Task к новому Plan/risk audit/authorization. Unrelated dirty file,
257
+ non-predecessor ownership, повреждённый journal или unregistered commit fail closed.
258
+
259
+ Если старая версия не может установить этот fix из-за running Step/dirty preflight, beta.12.6
260
+ добавляет отдельный update bridge. После двух exact dependency-only commits на active base и Task
261
+ branch Core проверяет Task history на `HEAD^`, candidate на `HEAD`, все version surfaces, отсутствие
262
+ leases/transactions, predecessor ownership и content hash dirty set. Переход регистрирует только
263
+ dependency commit, не меняет product bytes/Step и делает обычный `task downstream-proof-recover`
264
+ достижимым до manifest-induced Knowledge refresh. Это не общее разрешение dirty update.
265
+
266
+ Docker socket `EPERM` в sandbox не является доказательством сломанного daemon. Gateway один раз
267
+ повторяет exact health probe или Plan check с sandbox escalation без расходования remediation attempt.
268
+ Restart Docker Desktop требует отдельного разрешения и допустим только после escalated daemon failure.
269
+
250
270
  > **Стоп P04-A:** `split-required` возвращает `STRUCTURAL_REPLACEMENT_REQUIRED` и `structuralReplacementAvailable=false`. Нельзя вызывать retained replacement command, потреблять replacement Discovery или вручную менять topology. Продолжение возможно только после P04-B/P05.
251
271
 
252
272
  # 10. Operational checklist
253
273
 
254
274
  - exact package version установлен, bundled gateway соответствует release и переустановлен;
255
- - handshake подтверждает protocol 2, state schema 2 и beta.12.4 capabilities;
275
+ - handshake подтверждает protocol 2, state schema 2 и beta.12.6 capabilities;
256
276
  - каждый mutation следует свежему `status -> next` и exact option contract;
277
+ - Docker permission failure сначала классифицируется как sandbox boundary, а не как infra retry;
257
278
  - semantic unknowns и human gates не маскируются delegation;
258
279
  - Task chats создаёт coordinator, credentials остаются только в памяти;
259
280
  - dependencies, progress и review posture берутся из Core projections;
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  title: Codex Workflow V2: delegated chat-only guide
3
- subtitle: Актуальный beta.12.4 путь от нового Discovery до принятого Milestone без ручного CLI
3
+ subtitle: Актуальный beta.12.6 путь от нового Discovery до принятого Milestone без ручного CLI
4
4
  part: Часть 2 из 3 | Практика
5
5
  document_version: 2.0
6
- date: 28 августа 2026
7
- subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.4
6
+ date: 29 августа 2026
7
+ subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.6
8
8
  ---
9
9
 
10
- # 1. Рабочая модель beta.12.4
10
+ # 1. Рабочая модель beta.12.6
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.4 как точную devDependency после публикации release.
43
+ 2. Установите beta.12.6 как точную 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.4 должен сообщать `packageVersion=2.0.0-beta.12.4`, `protocolVersion=2`,
59
+ Handshake beta.12.6 должен сообщать `packageVersion=2.0.0-beta.12.6`, `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.4 в delegated режиме.
119
+ Проведи новый Milestone через Codex Workflow V2 beta.12.6 в delegated режиме.
120
120
  Repository: <ABSOLUTE-REPOSITORY-ROOT>.
121
121
  Milestone ID: AUTO.
122
122
  Delegate actor: agent:milestone-coordinator.
@@ -293,10 +293,12 @@ Task chat записывает его только при совпадении p
293
293
  | Состояние | Действие |
294
294
  |---|---|
295
295
  | First proven impossible npm check после legacy/late authorization | Только рекламируемый `task plan-integrity-recover` |
296
+ | Downstream proof требует изменить completed predecessor | Только `task downstream-proof-recover`, затем новый Plan/risk audit/authorization в той же Task |
296
297
  | Failed guarded review | Та же Task: исправление и новый strict review без attempt hard stop |
297
298
  | Finding `route=fix` | Продолжить тот же Step; count остаётся диагностикой |
298
299
  | Finding `route=replan` с exact Plan conflict | `task plan-set`, меняются только implementation Steps |
299
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` |
300
302
  | Exact beta.11 attempt-four `stop-escalate` | Только advertised prepare, затем отдельный Human-confirmed apply; исходный stop сохраняется |
301
303
  | Любой другой explicit `stop-escalate` | Terminal user attention |
302
304
  | Stale dependency binding | Новый handoff/claim только по fresh `next` |
@@ -305,6 +307,22 @@ Task chat записывает его только при совпадении p
305
307
  Plan-integrity recovery не редактирует Plan, package.json или worktree и не синтезирует второй failure.
306
308
  P04-A не переносит completed Steps и не rewires dependencies при split.
307
309
 
310
+ `task downstream-proof-recover` также не редактирует product files и не создаёт новую Task. Он сохраняет
311
+ dirty worktree/HEAD, append-only фиксирует invalidated predecessor evidence, освобождает C1 и возвращает
312
+ текущую Task к `task plan-set`. Если fresh `next` не рекламирует этот переход, вызывать его нельзя.
313
+
314
+ Если этот переход доступен только после update, не stash/reset product work. Обновите active base в
315
+ отдельном worktree и текущую Task branch двумя отдельными commits только `package.json`/lock, установите
316
+ beta.12.6 и требуйте от fresh `next` `update downstream-proof-dependency-recover`. Read-only preflight
317
+ должен вернуть `eligible=true`, exact `HEAD`/`HEAD^`, Task revision, пустые blockers и content-hash
318
+ binding dirty set. Recover регистрирует только dependency HEAD; следующий fresh `next` должен вернуть
319
+ обычный `task downstream-proof-recover`. Любой иной diff/history/dirty path/lease означает stop.
320
+
321
+ Ошибка Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied` в sandbox не считается
322
+ падением daemon и не расходует retry. Повторите exact read-only probe или Plan check один раз с sandbox
323
+ escalation. Не перезапускайте Docker Desktop и не меняйте image без отдельного разрешения и подтверждённого
324
+ escalated daemon failure.
325
+
308
326
  Если после применённого stop override `next` рекламирует delegated `task context-refresh` или
309
327
  `update dependency-provenance-recover`, выполните только этот advertised atomic/recovery переход и
310
328
  снова запросите `status -> next`. Таких механических refresh/update циклов может быть несколько.
@@ -335,7 +353,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
335
353
 
336
354
  # 14. Итоговый checklist пользователя
337
355
 
338
- - beta.12.4 exact package и новый bundled gateway установлены;
356
+ - beta.12.6 exact package и новый bundled gateway установлены;
339
357
  - новый Coordinator chat не является fork старого Milestone;
340
358
  - bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
341
359
  - Discovery не materialized при blocking unknowns;
@@ -345,5 +363,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
345
363
  - credentials не появились в prompts, reports или files;
346
364
  - каждый transition пришёл из fresh `next`;
347
365
  - beta.11 stop override, если рекламировался, прошёл отдельные prepare и user-confirmed apply без journal rewrite;
366
+ - downstream predecessor recovery, если рекламировался, сохранил worktree и завершился новым Plan authority;
367
+ - active-proof package bridge, если понадобился, зарегистрировал только exact dependency HEAD перед recovery;
348
368
  - split-required остановился без replacement mutations;
349
369
  - Milestone validation и final acceptance связаны с текущим clean base HEAD.
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: технический справочник beta.12.4
2
+ title: Codex Workflow V2: технический справочник beta.12.6
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
- date: 28 августа 2026
7
- subject: Технический контракт Codex Workflow V2 beta.12.4
6
+ date: 29 августа 2026
7
+ subject: Технический контракт Codex Workflow V2 beta.12.6
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.4 | Значение |
16
+ | Параметр beta.12.6 | Значение |
17
17
  |---|---|
18
- | npm package | `codex-workflow-v2@2.0.0-beta.12.4` |
18
+ | npm package | `codex-workflow-v2@2.0.0-beta.12.6` |
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.4 capabilities:
40
+ Ключевые beta.12.6 capabilities:
41
41
 
42
42
  | Группа | Capabilities |
43
43
  |---|---|
@@ -46,7 +46,7 @@ Gateway выполняет:
46
46
  | Task planning | Plan Risk Audit, proof obligations, mechanical feasibility |
47
47
  | C1 | handoff sidecar, handoff bundle, derived Worker actor, credential replacement |
48
48
  | Reviews | strict reviewer, Step strict review, continuable remediation, evidence-bound fix/replan routing |
49
- | Recovery | Task-local dependency provenance, plan integrity, remediation mode, legacy stop override, append-only stop-rebind chain, corrective yield/replan journals |
49
+ | Recovery | Task-local dependency provenance, plan integrity, downstream-proof predecessor invalidation, remediation mode, legacy stop override, append-only stop-rebind chain, corrective yield/replan journals |
50
50
  | Replacement | `structural-task-replacement-disabled-v1` |
51
51
 
52
52
  Handshake incompatibility прекращает работу. Запуск global package, `latest`, mutable range или соседней
@@ -316,13 +316,22 @@ 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.4 compatibility transitions
319
+ # 13.1. beta.12.6 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
+
326
335
  `task stop-override-prepare/apply` обслуживает только exact beta.11 attempt-four policy stop. Prepare
327
336
  не пишет state и создаёт binding по Task revision, Step, attempt-3 continue, attempt-4 stop, трём
328
337
  remediation events, Plan, HEAD, package, human actor и reason. Apply в отдельном user turn добавляет
@@ -345,6 +354,20 @@ diff. Semantic drift, иной commit или разрыв chain fail closed. Pro
345
354
  из уже проверенной override-to-authorization Git chain. Формула должна точно равняться current Task
346
355
  revision; unrelated write, duplicate, неверный parent или product commit блокируют continuation.
347
356
 
357
+ # 13.2. Downstream-proof predecessor recovery
358
+
359
+ Если active Step изменяет только собственный proof artifact, обычный `task step-complete` сохраняется.
360
+ Если dirty set дополнительно содержит файлы completed transitive predecessor, Core проверяет branch,
361
+ зарегистрированную Git history, dependency closure и ownership каждого такого файла. При точном совпадении
362
+ fresh `next` рекламирует lease-bound `task downstream-proof-recover` вместо заведомо невозможного commit.
363
+
364
+ Одна project transaction сохраняет worktree и HEAD, append-only записывает
365
+ `downstream-proof-invalidations.jsonl`, переносит invalidated completion commits в `invalidatedStepCommits`, очищает
366
+ их Step evidence, блокирует proof Step, supersede execution authorization, yield C1 и удаляет lease.
367
+ Следующий action — обычный `task plan-set` той же Task. Replacement Plan обязан заново охватить unfinished
368
+ remainder и пройти fresh Plan Risk Audit и execution authorization. Unrelated/non-predecessor file,
369
+ strict-review evidence, unregistered commit, branch mismatch или damaged sidecar возвращают `doctor`.
370
+
348
371
  # 14. P04-A structural replacement boundary
349
372
 
350
373
  Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
@@ -399,15 +422,20 @@ Graph является навигационным индексом, не Project
399
422
  | `GIT_PRECONDITION_FAILED` | Branch/base/clean/history mismatch | Штатная Git recovery/sync route |
400
423
  | `COMMAND_FAILED` | Git/check/provider process failed | Сохранить evidence и устранить concrete cause |
401
424
 
425
+ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied` внутри sandbox классифицируется
426
+ как execution-boundary access, не как `COMMAND_FAILED` daemon. Exact read-only probe или Plan check один раз
427
+ повторяется с escalation и не расходует remediation/infra retry. Restart Docker Desktop или image mutation
428
+ без отдельного разрешения запрещены; daemon failure подтверждает только escalated invocation.
429
+
402
430
  После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
403
431
  не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
404
432
 
405
- # 18. Public command surface beta.12.4
433
+ # 18. Public command surface beta.12.6
406
434
 
407
435
  | Область | Actions |
408
436
  |---|---|
409
437
  | System | `doctor`, `status`, `next`, `gateway handshake`, `locks` |
410
- | Update | `preflight`, `rescue-preflight`, `dependency-provenance-preflight/recover` |
438
+ | Update | `preflight`, `rescue-preflight`, `dependency-provenance-preflight/recover`, `downstream-proof-dependency-preflight/recover` |
411
439
  | Project memory | `scan`, `show`, `status`, `approve`, `reconcile` |
412
440
  | Delegation | `prepare`, `grant`, `list`, `show`, `revoke` |
413
441
  | Graph | `prepare`, `status`, `refresh-request`, `bind`, `fallback` |
@@ -417,7 +445,7 @@ Graph является навигационным индексом, не Project
417
445
  | Task execution | `start`, `run`, `step-complete`, `submit`, `result-set`, `accept`, `sync-base`, `merge`, `merge-confirm` |
418
446
  | C1 | `handoff[-prepare/-replace/-show]`, `claim`, `writer-credential-replace`, `handback[-create]` |
419
447
  | Review | review/step-review packet, launch, sealed record и record actions |
420
- | Corrective | decision/recovery, plan-integrity, remediation-mode, stop-override prepare/apply, yield и corrective-replan actions |
448
+ | Corrective | decision/recovery, plan-integrity, downstream-proof-recover, remediation-mode, stop-override prepare/apply, yield и corrective-replan actions |
421
449
  | Replacement | `replacement-materialize` retained, но всегда disabled в P04-A |
422
450
 
423
451
  Exact options берутся из fresh `next`; command help используется только когда
@@ -426,10 +454,10 @@ Exact options берутся из fresh `next`; command help используе
426
454
  # 19. Release и package update gates
427
455
 
428
456
  Перед package update project-local `update preflight` должен вернуть `safe=true`: clean checkout, нет
429
- running Step и active/stale writer lease. External runner допустим только в документированной rescue
430
- compatibility форме.
457
+ running Step и active/stale writer lease. Исключения — документированный alpha.7 rescue и beta.12.6
458
+ active-downstream-proof dependency bridge; оба fail-closed и не дают общего разрешения dirty update.
431
459
 
432
- Перед beta.12.4 tag release repository выполняет:
460
+ Перед beta.12.6 tag release repository выполняет:
433
461
 
434
462
  1. `npm ci`;
435
463
  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.4, the release gate also relies on `npm run release:check` to fail if:
30
+ For beta.12.6, 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;
@@ -50,6 +50,16 @@ For beta.12.4, the release gate also relies on `npm run release:check` to fail i
50
50
  registry, title fallback/readback, or long-Cyrillic multi-attempt E2E evidence is absent.
51
51
  - bounded first-failure Plan-integrity recovery, exact failed-remediation/manifest/worktree
52
52
  bindings, or the no-synthetic-second-failure regression is absent.
53
+ - downstream proof cannot invalidate only completed transitive-predecessor authority while
54
+ preserving worktree/HEAD, yielding C1, and returning the same Task to fresh planning; or unrelated
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
+ - bundled gateway guidance treats Docker socket `EPERM` as daemon failure, consumes a remediation
61
+ attempt before one exact escalated probe, or recommends restarting Docker Desktop without separate
62
+ authority.
53
63
  - the P04-A Milestone dependency/initial-Plan transaction capabilities or the P01-A mechanical
54
64
  feasibility capability is absent from the packaged handshake.
55
65
  - continuable guarded remediation or evidence-bound `fix`/`replan` review routing is absent, or a
@@ -59,6 +59,40 @@ 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
+
62
96
  ### Исключение beta.12.1 для beta.11 attempt-four stop
63
97
 
64
98
  Если beta.11 записал `stop-escalate` перед четвёртой попыткой только после последовательности
@@ -100,8 +134,9 @@ context refresh после уже подтверждённого Human override.
100
134
 
101
135
  ## 1. Подготовьте отдельный чат обновления
102
136
 
103
- Не обновляйте пакет во время выполняющегося Worker Step. Дождитесь завершения текущего ответа
104
- Codex и откройте в нужном проекте отдельный чат `Workflow update`.
137
+ Не обновляйте пакет во время выполняющегося Worker Step, кроме exact beta.12.6 downstream-proof
138
+ исключения выше. В обычном случае дождитесь завершения текущего ответа Codex и откройте в нужном
139
+ проекте отдельный чат `Workflow update`.
105
140
 
106
141
  Передайте агенту этот промпт, заменив `<НОВАЯ_ВЕРСИЯ>` точной опубликованной версией:
107
142