codex-workflow-v2 2.0.0-beta.12 → 2.0.0-beta.12.2

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 (33) hide show
  1. package/README.md +5 -3
  2. package/dist/src/alpha6/remediation.d.ts +8 -3
  3. package/dist/src/alpha6/remediation.js +374 -9
  4. package/dist/src/alpha6/remediation.js.map +1 -1
  5. package/dist/src/alpha7/corrective-recovery.d.ts +8 -1
  6. package/dist/src/alpha7/corrective-recovery.js +144 -26
  7. package/dist/src/alpha7/corrective-recovery.js.map +1 -1
  8. package/dist/src/cli.js +19 -0
  9. package/dist/src/cli.js.map +1 -1
  10. package/dist/src/contracts.d.ts +42 -0
  11. package/dist/src/dependency-provenance.js +5 -3
  12. package/dist/src/dependency-provenance.js.map +1 -1
  13. package/dist/src/version.d.ts +1 -1
  14. package/dist/src/version.js +1 -1
  15. package/dist/src/version.js.map +1 -1
  16. package/dist/src/workflow.d.ts +5 -1
  17. package/dist/src/workflow.js +158 -19
  18. package/dist/src/workflow.js.map +1 -1
  19. package/docs/autonomy-guardrails.md +35 -1
  20. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  21. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  22. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  23. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +23 -5
  24. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +17 -8
  25. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +32 -14
  26. package/docs/release.md +9 -1
  27. package/docs/updating-existing-project.md +38 -0
  28. package/docs/validation-report.md +84 -80
  29. package/package.json +1 -1
  30. package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +1 -1
  31. package/plugins/codex-workflow-gateway/references/protocol.md +21 -1
  32. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +24 -0
  33. package/schemas/stop-escalate-override-event.schema.json +45 -0
@@ -74,7 +74,41 @@ default. `replan` is accepted only with `planConflict.planClause`, `whyFixCannot
74
74
  `minimalPlanChange`; Core retains that evidence in the hash-chained Step-review event and routes
75
75
  the failed Step to `task plan-set`. Replan may change implementation Steps only. Explicit historical
76
76
  `continue-fix`, `replan-required`, `split-required`, and `stop-escalate` decisions remain readable;
77
- an explicit split or stop still outranks ordinary execution.
77
+ an explicit split or stop still outranks ordinary execution except for the narrow beta.11
78
+ attempt-four stop compatibility route below.
79
+
80
+ ### Human-confirmed beta.11 attempt-four stop compatibility
81
+
82
+ Beta.12.1 can resume one historical shape that beta.11 stopped mechanically: the same failed
83
+ guarded Step has exactly two `ordinary` remediation events, one `corrective` third event, an exact
84
+ attempt-3 `continue-fix` decision, and an attempt-4 `stop-escalate` decision under the unchanged
85
+ Plan. Fresh `next` advertises `task stop-override-prepare` only for that shape and only on a clean
86
+ local Task branch with no Step in progress, writer lease, Task transaction, or Core operation.
87
+
88
+ Preparation is read-only and binds Task revision, Step, both corrective decisions, all three
89
+ remediation events, Plan hash, Git HEAD, package version, actor, and reason to an `SOO-*`
90
+ confirmation code. In a later explicit user turn, invoke `task stop-override-apply` with the same
91
+ inputs and code. Apply appends `stop-escalate-overrides.jsonl`; it never deletes or rewrites the
92
+ original stop. A stale binding, wrong code, duplicate/conflicting override, or damaged hash chain
93
+ fails before continuation. Delegation is not accepted for this Human gate.
94
+
95
+ This is not a general stop reversal. It does not apply to `split-required`, semantic Plan drift, a
96
+ different attempt ordinal, missing attempt-3 continue authority, or an agent-authored semantic stop
97
+ outside the beta.11 policy shape. After a valid append, attempt four returns to the normal `task run`
98
+ then strict-review cycle; review quality and all later corrective decisions remain unchanged.
99
+
100
+ Beta.12.2 also handles the case where the accepted third attempt changed
101
+ approved Project Knowledge: the already-applied override may be followed by the ordinary delegated
102
+ `task context-refresh` before attempt four starts. A fresh `next` resumes `task run` only when Core
103
+ can prove all of the following together: the same exact
104
+ three-event remediation history and stop override remain hash-valid; the source and rebound Plans
105
+ differ only in their canonical Knowledge Map binding line; one direct Knowledge rebind and one
106
+ mechanical Plan Risk Audit rebound connect those Plans; the refreshed approval and execution
107
+ authorization share the valid delegated authority; and the override plus refreshed authorization
108
+ bind the same Git HEAD. The proof is derived from existing append-only evidence, so this route does
109
+ not create a second recovery journal. Missing evidence, an extra rebind, semantic Plan change,
110
+ different HEAD, or damaged chronology routes to `doctor` rather than weakening the generic
111
+ two-attempt corrective recovery gate.
78
112
 
79
113
  ### First-failure Plan-integrity recovery
80
114
 
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: архитектура beta.12
2
+ title: Codex Workflow V2: архитектура beta.12.2
3
3
  subtitle: Источники истины, lifecycle, роли, delegation, зависимости Tasks и границы доверия
4
4
  part: Часть 1 из 3 | Архитектура
5
5
  document_version: 2.0
6
6
  date: 27 августа 2026
7
- subject: Архитектура и границы Codex Workflow V2 beta.12
7
+ subject: Архитектура и границы Codex Workflow V2 beta.12.2
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 гарантирует
21
+ ## 1.1. Что beta.12.2 гарантирует
22
22
 
23
23
  - exact project-local npm package и совместимый handshake до lifecycle действий;
24
24
  - Discovery до materialization Task или Milestone;
@@ -30,7 +30,7 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
30
30
  - state-bound human gates либо ранее выданные bounded delegation contracts;
31
31
  - journaled recovery для составных переходов и fail-closed поведение при drift/corruption.
32
32
 
33
- ## 1.2. Что beta.12 не гарантирует
33
+ ## 1.2. Что beta.12.2 не гарантирует
34
34
 
35
35
  - правильность продуктовой идеи или автоматически выбранного provider Task;
36
36
  - semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
@@ -218,6 +218,24 @@ Failed review не ограничивает число попыток. Попы
218
218
  `route=replan` допустим только с точным Plan conflict и меняет лишь implementation Steps, не objective,
219
219
  requirements или acceptance. Explicit `split-required` и `stop-escalate` остаются stop/redirect decisions.
220
220
 
221
+ Beta.12.1 добавила одну append-only compatibility оговорку: beta.11 attempt-four
222
+ `stop-escalate` после exact `ordinary, ordinary, corrective` и prior attempt-3 `continue-fix` можно
223
+ возобновить через read-only `stop-override-prepare` и отдельный Human-confirmed
224
+ `stop-override-apply`. Исходный stop сохраняется, `split-required` не подходит, а stale revision,
225
+ Plan, HEAD, lease, transaction или повреждённая chain блокируют переход. Попытка 4 снова проходит
226
+ обычный `task run` и новый strict review.
227
+
228
+ Beta.12.2 сохраняет этот override при одном последующем delegated `task context-refresh`, если Plan
229
+ изменился только в canonical Knowledge Map binding. Core требует прямой rebind, механически
230
+ эквивалентный Plan Risk Audit, общую delegated authority, корректную chronology и тот же Git HEAD.
231
+ При утрате claimed writer lease используется только одновременно рекламируемый
232
+ `task writer-credential-replace`; semantic Plan drift, второй rebind или повреждённая evidence chain
233
+ возвращают `doctor`.
234
+
235
+ Dependency-provenance recovery beta.12.1 также сохраняет ранее закоммиченные Task-local поля
236
+ manifest/lock, даже если base их не содержит. Candidate остаётся dependency-only: после удаления
237
+ только Workflow dependency parent и HEAD обязаны совпасть по всем product-owned полям.
238
+
221
239
  beta.11 `task plan-integrity-recover` существует для одного первого checks-failed legacy/late case:
222
240
  отсутствует exact root npm script и текущий Step не может изменить package.json. Recovery не меняет
223
241
  worktree или Plan и не создаёт synthetic second failure; он записывает bound `replan-required`.
@@ -227,7 +245,7 @@ worktree или Plan и не создаёт synthetic second failure; он за
227
245
  # 10. Operational checklist
228
246
 
229
247
  - exact package version установлен, bundled gateway соответствует release и переустановлен;
230
- - handshake подтверждает protocol 2, state schema 2 и beta.12 capabilities;
248
+ - handshake подтверждает protocol 2, state schema 2 и beta.12.2 capabilities;
231
249
  - каждый mutation следует свежему `status -> next` и exact option contract;
232
250
  - semantic unknowns и human gates не маскируются delegation;
233
251
  - Task chats создаёт coordinator, credentials остаются только в памяти;
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  title: Codex Workflow V2: delegated chat-only guide
3
- subtitle: Актуальный beta.12 путь от нового Discovery до принятого Milestone без ручного CLI
3
+ subtitle: Актуальный beta.12.2 путь от нового Discovery до принятого Milestone без ручного CLI
4
4
  part: Часть 2 из 3 | Практика
5
5
  document_version: 2.0
6
6
  date: 27 августа 2026
7
- subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12
7
+ subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.2
8
8
  ---
9
9
 
10
- # 1. Рабочая модель beta.12
10
+ # 1. Рабочая модель beta.12.2
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 как точную devDependency после публикации release.
43
+ 2. Установите beta.12.2 как точную 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 должен сообщать `packageVersion=2.0.0-beta.12`, `protocolVersion=2`,
59
+ Handshake beta.12.2 должен сообщать `packageVersion=2.0.0-beta.12.2`, `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 в delegated режиме.
119
+ Проведи новый Milestone через Codex Workflow V2 beta.12.2 в delegated режиме.
120
120
  Repository: <ABSOLUTE-REPOSITORY-ROOT>.
121
121
  Milestone ID: AUTO.
122
122
  Delegate actor: agent:milestone-coordinator.
@@ -297,13 +297,21 @@ Task chat записывает его только при совпадении p
297
297
  | Finding `route=fix` | Продолжить тот же Step; count остаётся диагностикой |
298
298
  | Finding `route=replan` с exact Plan conflict | `task plan-set`, меняются только implementation Steps |
299
299
  | `split-required` | Stop: `STRUCTURAL_REPLACEMENT_REQUIRED`, никаких replacement writes |
300
- | Explicit `stop-escalate` | Terminal user attention |
300
+ | Exact beta.11 attempt-four `stop-escalate` | Только advertised prepare, затем отдельный Human-confirmed apply; исходный stop сохраняется |
301
+ | Любой другой explicit `stop-escalate` | Terminal user attention |
301
302
  | Stale dependency binding | Новый handoff/claim только по fresh `next` |
302
303
  | Review seal drift | Discard review и создать fresh packet |
303
304
 
304
305
  Plan-integrity recovery не редактирует Plan, package.json или worktree и не синтезирует второй failure.
305
306
  P04-A не переносит completed Steps и не rewires dependencies при split.
306
307
 
308
+ Если после применённого stop override `next` рекламирует delegated `task context-refresh`, выполните
309
+ его как обычный atomic refresh и снова запросите `status -> next`. Продолжайте attempt 4 только при
310
+ `stopOverrideContextRebind.state=validated`. При одновременном
311
+ `writerCredentialRecovery.action=task writer-credential-replace` сначала восстановите credential
312
+ точного claimant-актора. `doctor`, semantic Plan change, второй rebind или другой HEAD означают stop,
313
+ а не ручной обход.
314
+
307
315
  # 12. Milestone final acceptance
308
316
 
309
317
  После merge всех required Tasks Coordinator проверяет clean base HEAD и выполняет рекламируемую
@@ -321,7 +329,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
321
329
 
322
330
  # 14. Итоговый checklist пользователя
323
331
 
324
- - beta.12 exact package и новый bundled gateway установлены;
332
+ - beta.12.2 exact package и новый bundled gateway установлены;
325
333
  - новый Coordinator chat не является fork старого Milestone;
326
334
  - bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
327
335
  - Discovery не materialized при blocking unknowns;
@@ -330,5 +338,6 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
330
338
  - Coordinator сам создаёт и supervises Task/Reviewer chats;
331
339
  - credentials не появились в prompts, reports или files;
332
340
  - каждый transition пришёл из fresh `next`;
341
+ - beta.11 stop override, если рекламировался, прошёл отдельные prepare и user-confirmed apply без journal rewrite;
333
342
  - split-required остановился без replacement mutations;
334
343
  - Milestone validation и final acceptance связаны с текущим clean base HEAD.
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: технический справочник beta.12
2
+ title: Codex Workflow V2: технический справочник beta.12.2
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: 27 августа 2026
7
- subject: Технический контракт Codex Workflow V2 beta.12
7
+ subject: Технический контракт Codex Workflow V2 beta.12.2
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 | Значение |
16
+ | Параметр beta.12.2 | Значение |
17
17
  |---|---|
18
- | npm package | `codex-workflow-v2@2.0.0-beta.12` |
18
+ | npm package | `codex-workflow-v2@2.0.0-beta.12.2` |
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 capabilities:
40
+ Ключевые beta.12.2 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 | dependency provenance, plan integrity, remediation mode, corrective yield/replan journals |
49
+ | Recovery | Task-local dependency provenance, plan integrity, remediation mode, legacy stop override, context-only stop rebind, corrective yield/replan journals |
50
50
  | Replacement | `structural-task-replacement-disabled-v1` |
51
51
 
52
52
  Handshake incompatibility прекращает работу. Запуск global package, `latest`, mutable range или соседней
@@ -65,7 +65,7 @@ $CODEX_HOME/workflow-state/v2/projects/<project-id>/
65
65
  tasks/<TASK-ID>/
66
66
  brief.md, plan.md, result.md, evidence.json, state.json
67
67
  .versions/
68
- authorization/review/remediation/corrective/handoff sidecars
68
+ authorization/review/remediation/corrective/stop-override/handoff sidecars
69
69
  milestones/<MS-ID>/
70
70
  plan.json, result.md, evidence.json, state.json
71
71
  .versions/ и scope/autonomy sidecars
@@ -291,7 +291,8 @@ Guarded Step имеет проверяемый, но не ограниченны
291
291
  | Finding `route=replan` с exact Plan conflict | `task plan-set`; меняются только implementation Steps |
292
292
  | `route=replan` без exact conflict | Невалидный review result, state не меняется |
293
293
  | Explicit `split-required` | Structural replacement stop |
294
- | Explicit `stop-escalate` | Terminal user attention |
294
+ | Exact beta.11 attempt-four `stop-escalate` | Append-only Human-confirmed compatibility override |
295
+ | Любой другой explicit `stop-escalate` | Terminal user attention |
295
296
 
296
297
  Attempt count является диагностикой, а не lifecycle authority. Explicit corrective-decision journal
297
298
  сохраняется для намеренного stop/split и совместимого historical recovery, но не требуется после второй
@@ -315,6 +316,26 @@ fresh `next` через corrective yield и обычный Human-confirmed repla
315
316
  P01-A предотвращает поддерживаемые contradictions до fresh authorization. beta.11 path остаётся для
316
317
  pre-P01 authorizations и late/unsupported exact recovery cases.
317
318
 
319
+ # 13.1. beta.12.2 compatibility transitions
320
+
321
+ `update dependency-provenance-recover` больше не требует полного равенства Task manifest/lock с base.
322
+ Base остаётся version authority, а parent/HEAD candidate сравниваются без единственных Workflow
323
+ dependency entries. Поэтому recorded Task-local scripts сохраняются; payload drift того же candidate
324
+ commit по-прежнему блокируется.
325
+
326
+ `task stop-override-prepare/apply` обслуживает только exact beta.11 attempt-four policy stop. Prepare
327
+ не пишет state и создаёт binding по Task revision, Step, attempt-3 continue, attempt-4 stop, трём
328
+ remediation events, Plan, HEAD, package, human actor и reason. Apply в отдельном user turn добавляет
329
+ `stop-escalate-overrides.jsonl`. Original corrective decision остаётся неизменным. Split, stale binding,
330
+ lease/transaction, дубликат с другим binding и tampering fail closed.
331
+
332
+ После apply один delegated `task context-refresh` может сделать исходный stop/override Plan hash
333
+ историческим. `task run` снова доступен только если Core доказывает context-only direct rebind:
334
+ семантическое содержимое Plan совпадает, Plan Risk Audit rebound механический, refresh approval и
335
+ execution authorization имеют одну действующую authority, chronology монотонна, а authorization и
336
+ override связывают один HEAD. Projection содержит `stopOverrideContextRebind.state=validated`.
337
+ Утерянный claimed lease восстанавливается только рекламируемым `task writer-credential-replace`.
338
+
318
339
  # 14. P04-A structural replacement boundary
319
340
 
320
341
  Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
@@ -372,7 +393,7 @@ Graph является навигационным индексом, не Project
372
393
  После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
373
394
  не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
374
395
 
375
- # 18. Public command surface beta.12
396
+ # 18. Public command surface beta.12.2
376
397
 
377
398
  | Область | Actions |
378
399
  |---|---|
@@ -387,7 +408,7 @@ Graph является навигационным индексом, не Project
387
408
  | Task execution | `start`, `run`, `step-complete`, `submit`, `result-set`, `accept`, `sync-base`, `merge`, `merge-confirm` |
388
409
  | C1 | `handoff[-prepare/-replace/-show]`, `claim`, `writer-credential-replace`, `handback[-create]` |
389
410
  | Review | review/step-review packet, launch, sealed record и record actions |
390
- | Corrective | decision/recovery, plan-integrity, remediation-mode, yield и corrective-replan actions |
411
+ | Corrective | decision/recovery, plan-integrity, remediation-mode, stop-override prepare/apply, yield и corrective-replan actions |
391
412
  | Replacement | `replacement-materialize` retained, но всегда disabled в P04-A |
392
413
 
393
414
  Exact options берутся из fresh `next`; command help используется только когда
@@ -399,7 +420,7 @@ Exact options берутся из fresh `next`; command help используе
399
420
  running Step и active/stale writer lease. External runner допустим только в документированной rescue
400
421
  compatibility форме.
401
422
 
402
- Перед beta.12 tag release repository выполняет:
423
+ Перед beta.12.2 tag release repository выполняет:
403
424
 
404
425
  1. `npm ci`;
405
426
  2. `npm run validate`;
@@ -409,6 +430,3 @@ compatibility форме.
409
430
  6. `npm run docs:pdf:check`;
410
431
  7. `npm run release:check` с exact release tag binding;
411
432
  8. validation append-only real-agent lifecycle log.
412
-
413
- PDF source и binaries должны совпасть детерминированно. Tag имеет форму `v<package-version>`.
414
- Publication не выполняется локальными validation commands.
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, the release gate also relies on `npm run release:check` to fail if:
30
+ For beta.12.2, 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;
@@ -44,6 +44,8 @@ For beta.12, the release gate also relies on `npm run release:check` to fail if:
44
44
  commands are absent from the packaged surface.
45
45
  - bounded dependency-provenance recovery, retained passed-review provenance, the exact Signal T04
46
46
  revision-26 fixture, or pending/corrupt-review rejection regressions are absent.
47
+ - dependency recovery again requires Task-local manifest/lock fields to equal the Milestone base,
48
+ or a candidate commit can alter any non-Workflow dependency payload.
47
49
  - the read-only Milestone progress projection, replacement regression, project-monotonic chat
48
50
  registry, title fallback/readback, or long-Cyrillic multi-attempt E2E evidence is absent.
49
51
  - bounded first-failure Plan-integrity recovery, exact failed-remediation/manifest/worktree
@@ -52,6 +54,12 @@ For beta.12, the release gate also relies on `npm run release:check` to fail if:
52
54
  feasibility capability is absent from the packaged handshake.
53
55
  - continuable guarded remediation or evidence-bound `fix`/`replan` review routing is absent, or a
54
56
  third/later failed review is again converted into an attempt-count stop.
57
+ - the append-only, Human-confirmed beta.11 attempt-four stop override, its exact three-event/
58
+ continue/stop binding, split rejection, stale-confirmation rejection, or tamper detection is
59
+ absent from the package.
60
+ - an already-applied beta.11 stop override cannot survive one later context-only Plan rebind with
61
+ exact mechanical audit, delegation, chronology, and same-HEAD evidence; or the route weakens the
62
+ generic stale-decision recovery gate.
55
63
 
56
64
  The separate lifecycle transcript validator fails if the real-agent log contains a mutation that
57
65
  bypasses failed `status`/`next`, an unadvertised or failed mutation, an unresolved syntax-only
@@ -52,6 +52,44 @@ commit остался в Git между `baseCommit` и новым dependency-on
52
52
  него обязательны последовательные `status` и `next`; выполняйте возвращённый Knowledge reconcile
53
53
  или `task context-refresh`, если manifest/lock сделали Knowledge Map stale.
54
54
 
55
+ В beta.12.1 preflight сравнивает parent и candidate после удаления только записей зависимости
56
+ `codex-workflow-v2`. Поэтому ранее закоммиченные Task-local scripts и другие product-owned поля
57
+ `package.json`/lockfile могут отличаться от Milestone base и сохраняются. Это не ослабляет сам
58
+ candidate: его HEAD обязан менять ровно `package.json` и `package-lock.json`, только точную Workflow
59
+ dependency; любое другое поле, добавленное тем же candidate commit, неизвестный commit, stale base,
60
+ dirty checkout, lease или transaction по-прежнему блокируют recovery.
61
+
62
+ ### Исключение beta.12.1 для beta.11 attempt-four stop
63
+
64
+ Если beta.11 записал `stop-escalate` перед четвёртой попыткой только после последовательности
65
+ `ordinary`, `ordinary`, `corrective`, и перед третьей попыткой уже существовал exact
66
+ `continue-fix`, fresh `next` может вернуть `task stop-override-prepare`. Не создавайте новый
67
+ Milestone и не редактируйте sidecar вручную. Сначала выполните только read-only prepare с exact
68
+ Task revision, Step, human actor и содержательной причиной. Проверьте, что ответ связывает тот же
69
+ stop decision, Plan hash, Git HEAD, все три remediation events и policy
70
+ `beta11-attempt4-stop-compatibility-v1`, затем остановитесь перед Human gate.
71
+
72
+ В отдельном пользовательском сообщении разрешите apply с теми же параметрами и возвращённым
73
+ `SOO-*` кодом. `task stop-override-apply` добавляет одну запись в
74
+ `stop-escalate-overrides.jsonl`, сохраняя исходный `stop-escalate`; после него выполните
75
+ последовательные `status` и `next`. Обычно ожидаемый route — `task run` того же Step с последующим
76
+ новым strict review. Beta.12.2 дополнительно покрывает случай, когда третья
77
+ попытка изменила Project Knowledge: перед `task run` допустим обычный
78
+ delegated `task context-refresh`. После него Workflow продолжит attempt 4 только при
79
+ доказанном прямом rebind: source и current Plan отличаются исключительно canonical Knowledge Map
80
+ binding, Plan Risk Audit rebound механический, refresh approval/authorization имеют одну валидную
81
+ delegated authority, а override и новая execution authorization связывают тот же Git HEAD. Новая
82
+ recovery-запись для этого не создаётся — используется уже существующая append-only цепочка.
83
+ Если C1 остаётся claimed, но writer lease после Human boundary отсутствует, `next` вместе с
84
+ `task run` рекламирует `task writer-credential-replace`; сначала восстановите credential exact
85
+ claimant-актора, затем запускайте Step.
86
+
87
+ Этот путь не работает для `split-required`, другого attempt ordinal, семантически изменённого
88
+ Plan, другого HEAD, отсутствующего attempt-3 continue, более чем одного rebind, повреждённой
89
+ chronology, active/stale lease на Human prepare/apply boundary или незавершённой Task transaction.
90
+ Delegated approval для самого stop override отсутствует; delegation относится только к обычному
91
+ context refresh после уже подтверждённого Human override.
92
+
55
93
  ## 1. Подготовьте отдельный чат обновления
56
94
 
57
95
  Не обновляйте пакет во время выполняющегося Worker Step. Дождитесь завершения текущего ответа
@@ -1,98 +1,102 @@
1
- # V2 beta.12 Validation Report
1
+ # V2 beta.12.2 Validation Report
2
2
 
3
- Release candidate `2.0.0-beta.12` was validated on 2026-08-27 with Node.js 24.17.0.
3
+ Release candidate `2.0.0-beta.12.2` was validated across 2026-08-27/28 (Europe/Moscow) with
4
+ Node.js 24.17.0.
4
5
 
5
6
  ## Automated release evidence
6
7
 
7
8
  - `npm ci` completed from the committed lockfile with 0 reported vulnerabilities.
8
- - The final `npm run validate` passed `321/321` sequential tests with no failures, skips,
9
- cancellations, or todos. The focused Signal T04 recovery suite passed independently (`5/5`).
10
- - `npm run pack:check` passed outside the filesystem-restricted sandbox. The beta.12 tarball
11
- contains 269 files; package size is 955.6 kB and unpacked size is 3.7 MB.
12
- - `npm run smoke:downstream` packed and installed the actual beta.12 tarball in an empty temporary
13
- project, then passed the packaged CLI handshake. The first sandboxed attempt was network-blocked
14
- while fetching pinned `ajv`; the authorized network retry passed.
15
- - `npm run plugin:check`, the official Codex plugin validator, `npm run docs:pdf:check`, exact
16
- `RELEASE_TAG=v2.0.0-beta.12 npm run release:check`, and `git diff --check` passed. The bundled
17
- gateway cachebuster is `0.1.0+codex.20260827003726`.
9
+ - The final `npm run validate` passed typecheck and `326/326` sequential tests with no failures,
10
+ skips, cancellations, or todos in 1,273,564.586583 ms.
11
+ - The full suite includes the beta.12.2 attempt-four/context-rebind replay, the unchanged-Plan
12
+ stop-override suite, five-cycle continuable remediation, generic stale-decision recovery,
13
+ credential safety, dependency provenance, Signal T04, P01-A, P04-A, transaction, observer-purity,
14
+ and transition-model regressions.
15
+ - `npm run pack:check` produced the beta.12.2 dry-run tarball with 270 files, package size 972.1 kB,
16
+ and unpacked size 3.8 MB. The sandboxed npm-cache attempt failed with `EPERM`; the authorized
17
+ retry using the same source passed.
18
+ - `npm run smoke:downstream` packed and installed
19
+ `codex-workflow-v2-2.0.0-beta.12.2.tgz` in an empty temporary project and passed the packaged
20
+ handshake. The sandboxed attempt could not resolve the npm registry for AJV; the authorized
21
+ network retry using the same source passed.
22
+ - `npm run plugin:check`, the official Codex plugin validator, the gateway skill validator,
23
+ `npm run docs:pdf:check`, exact `RELEASE_TAG=v2.0.0-beta.12.2 npm run release:check`, and
24
+ `git diff --check` passed. The official Python validators used a temporary isolated `PyYAML`
25
+ dependency; no project or system Python files were changed. The bundled gateway cachebuster is
26
+ `0.1.0+codex.20260827205000`.
18
27
 
19
- The first full post-version-bump validation exposed three failures before the Signal T04 runtime
20
- scenario began: a historical read-only snapshot truthfully targeted beta.11, while its replay
21
- assertion incorrectly required the current package version. The fix keeps the snapshot immutable at
22
- `2.0.0-beta.11`, binds the synthetic replay dependency to current `PACKAGE_VERSION`, and makes the
23
- release check verify both identities separately. The focused suite then passed `5/5`, and the final
24
- complete suite passed `321/321`.
28
+ ## beta.12.2 stop-override/context-rebind compatibility
25
29
 
26
- ## Continuable remediation and review-routing evidence
30
+ - The reproduced incompatibility is narrow: an exact beta.11 attempt-four stop was already
31
+ Human-overridden, then the successful third attempt changed approved Project Knowledge and the
32
+ ordinary delegated `task context-refresh` rebound the Plan to the new Knowledge Map. The original
33
+ override remained valid evidence but its Plan hash no longer equalled the current Plan hash.
34
+ - Core now derives continuation only from existing append-only evidence. It requires exactly three
35
+ remediation events (`ordinary`, `ordinary`, `corrective`), the matching attempt-3 `continue-fix`,
36
+ matching attempt-4 `stop-escalate`, one applied stop override, one direct Knowledge rebind, a
37
+ mechanically equivalent Plan Risk Audit rebound, shared valid delegated authority, monotonic
38
+ chronology, and the same Git HEAD in the override and refreshed execution authorization.
39
+ - Fresh `next` returns `task run` with `stopOverrideContextRebind.state=validated` only when every
40
+ binding above remains current. The fourth attempt remains mode `corrective` and passes through the
41
+ normal checks and strict-review cycle.
42
+ - If C1 remains claimed but the writer lease was lost at the Human boundary, the same projection
43
+ exposes the existing `task writer-credential-replace` recovery for the exact claimant. No token is
44
+ persisted or reconstructed from evidence.
45
+ - The route creates no new recovery journal and does not rewrite the stop, override, Plan, audit, or
46
+ authorization history. Semantic Plan drift, a second rebind, different HEAD, wrong authority,
47
+ malformed chronology, missing/duplicate override evidence, or sidecar corruption fails closed and
48
+ routes to `doctor`.
27
49
 
28
- - A guarded Task remains in the same Task/Step and reaches a passing strict review after five
29
- consecutive failed review cycles. Attempts 1–2 are ordinary; attempts 3+ are corrective
30
- diagnostics but remain executable and review-gated.
31
- - Attempt count no longer selects a terminal lifecycle transition. It is retained as diagnostic
32
- history only; explicit `split-required` and `stop-escalate` remain the stop authorities.
33
- - A failed review defaults to `route=fix` (or an omitted route) and continues the same Task/Step.
34
- `route=replan` is valid only with exact `planClause`, `whyFixCannotFit`, and `minimalPlanChange`
35
- evidence.
36
- - Replan returns to ordinary `task plan-set`; objective, requirements, and acceptance remain
37
- immutable, while only implementation Steps may change. The replacement Plan still passes the
38
- normal Plan Risk Audit and execution-authorization gates.
39
- - Failed-review routing evidence is hash-chained in the public Step Review event schema. Drift,
40
- malformed evidence, unrelated Knowledge changes, forged actors, and corrupt chains remain
41
- fail-closed.
50
+ ## Existing compatibility and lifecycle regressions retained
42
51
 
43
- ## Retained dependency, feasibility, and recovery evidence
52
+ - The unchanged-Plan Human-confirmed beta.11 stop override remains append-only, idempotent, and
53
+ unavailable for `split-required`, stale confirmation bindings, or tampered evidence.
54
+ - The general guarded-remediation model still has no attempt-count hard stop. Attempts 1-2 are
55
+ ordinary; attempts 3+ are corrective and remain executable under fresh review authority. The
56
+ beta.12.2 exception does not weaken the generic stale `continue-fix` recovery predicate.
57
+ - Task-local dependency-provenance recovery still preserves product fields recorded before the
58
+ dependency-only candidate while rejecting candidate payload drift. The exact Signal T04
59
+ revision-26 replay retains only passed, attested historical Step commits and rejects pending or
60
+ corrupt review chains.
61
+ - P01-A mechanical feasibility, P04-A Milestone dependency authority, atomic initial Plan and
62
+ project transactions, external-sealed review, corrective yield/replan, and observer byte-purity
63
+ remain green.
64
+ - Structural replacement remains intentionally disabled. A `split-required` posture still returns
65
+ `STRUCTURAL_REPLACEMENT_REQUIRED` with no Task/Discovery/Milestone/Knowledge/lock mutation.
44
66
 
45
- - P04-A retains the canonical Milestone dependency DAG, atomic initial Plan transaction/recovery,
46
- dependency-bound handoff/claim/start, legacy fail-closed policy, and unconditional structural
47
- replacement shutdown.
48
- - P01-A retains three versioned read-only analyzers, canonical in-event evidence/hash binding,
49
- exact pre-start and corrective source selection, and phase-aware freshness before claim/start/run.
50
- - The exact Signal T04 revision-26 fixture still proves that only a verified historical Step Review
51
- can retain its completion commit across corrective replan. Pending review is never trusted, and a
52
- corrupt strict-review hash chain is rejected.
53
- - Bounded beta.11 `task plan-integrity-recover` compatibility remains green for its exact first
54
- ordinary checks-failed case. It does not edit the Plan, package manifest, or worktree and still
55
- fails closed for writable-manifest scope, unrelated dirty files, binding drift, or tampering.
56
- - Read-only Milestone progress still preserves `T03 cancelled → T08 replacement`; project-monotonic
57
- chat allocation and deterministic long-title fallback/readback remain green.
67
+ ## Packaged and transcript evidence
58
68
 
59
- ## Packaged real-agent lifecycle replay
69
+ - Downstream smoke validated exact package resolution and the packaged beta.12.2 handshake in a
70
+ clean disposable installation.
71
+ - A temporary trusted harness invoked the final built CLI sequentially for `gateway handshake`,
72
+ `doctor`, `status`, and fresh `next` against this unregistered source repository with an isolated
73
+ Workflow state root. All observations completed successfully and remained read-only.
74
+ - `node scripts/validate-lifecycle-transcript.mjs` accepted all `8/8` post-provenance events with no
75
+ failed invocation, mutation, or missing terminal result. The log SHA-256 is
76
+ `954a1c97f455ae3c8e02211b6fb63982b30cbfa1c40d92ce712f4a208d0e3a8f`; the temporary log remains
77
+ outside the repository.
60
78
 
61
- - A fresh disposable Git project installed the locally packed beta.12 tarball, declared the exact
62
- `2.0.0-beta.12` dependency, and passed packaged `gateway handshake` plus `doctor` with protocol 2,
63
- state schema 2, current dependency identity, and a clean checkout.
64
- - The trusted harness invoked the real packaged CLI sequentially for handshake, doctor, direct first
65
- Discovery bootstrap, `status`, and fresh `next`. The resulting navigation advertised
66
- `project-memory scan`.
67
- - `node scripts/validate-lifecycle-transcript.mjs` accepted all `10/10` post-provenance events with
68
- no failed invocation, unadvertised mutation, or missing checkpoint. The semantic log SHA-256 is
69
- `ab4ef10ad00e2fd9f54810ec5d0bbfb4106e1b211b3a185869d8a46787a5062d`; the raw packaged-result
70
- log SHA-256 is `e693a839604c7ba2055f99e43c49c5ab63ac0cf6e790adc901db5dd8eb0ffae9`.
71
- - Credential-marker inspection found no writer, claim, delegation, bearer, or secret material, and
72
- the disposable product checkout remained clean. Logs and external workflow state stayed outside
73
- this repository.
79
+ The transcript proves release-time invocation/result discipline for the final CLI. It does not
80
+ claim a product Milestone replay or a lifecycle mutation. The compatibility transition is covered
81
+ by deterministic repository/sidecar integration tests above.
74
82
 
75
- This replay validates package resolution, clean bootstrap, one real mutation, and mandatory
76
- post-mutation navigation discipline. It does not claim a second full product Milestone replay;
77
- deeper remediation, P01-A, and P04-A behavior is covered by deterministic and integration tests.
78
-
79
- ## beta.12 PDF release documentation evidence
83
+ ## beta.12.2 PDF release documentation evidence
80
84
 
81
85
  - Three tracked Russian PDFs were deterministically regenerated from reviewable Markdown sources
82
- under `docs/pdf/sources/`; `npm run docs:pdf:check` reported an empty stale set.
83
- - All 24 pages were rendered and visually inspected: architecture is 6 pages, the delegated
84
- chat-only guide is 8 pages, and the technical reference is 10 pages. No blank, clipped, or orphaned
85
- page was found.
86
- - Visible titles, headers, package commands, and release gates identify beta.12. The content covers
87
- continuable remediation, evidence-bound fix/replan routing, Milestone dependency authority,
88
- P01-A mechanical feasibility, C1 credentials, external-sealed review, Plan-integrity compatibility,
89
- structural-replacement shutdown, and the limited derived-graph role of `codebase-memory-mcp`.
86
+ under `docs/pdf/sources`; `npm run docs:pdf:check` reported an empty stale set.
87
+ - All 25 final pages were rendered and visually inspected: architecture is 7 pages, the delegated
88
+ chat-only guide is 8 pages, and the technical reference is 10 pages. No blank, clipped,
89
+ overlapping, or orphaned final page was found. Visual QA removed one redundant two-line spill
90
+ that had created an otherwise empty eleventh technical-reference page.
91
+ - Visible titles, headers, package commands, and release gates identify beta.12.2. The documents
92
+ distinguish the unchanged-Plan beta.12.1 override from beta.12.2 context-only rebind continuation,
93
+ exact claimant credential recovery, and all fail-closed boundaries.
90
94
 
91
95
  ## Not claimed
92
96
 
93
- - Validation itself performs no npm publication, Git tag, push, Signal Workflow mutation, or local
94
- plugin reinstall. Tagging and remote push are separate actions after the exact candidate gates.
95
- - Structural replacement remains intentionally disabled; beta.12 does not claim P04-B replacement
96
- materialization or completed-Step adoption.
97
- - A real project must install the published exact beta.12 package, update/reinstall the bundled
98
- gateway, and follow fresh project-local `handshake doctor status next` navigation.
97
+ - Validation itself performs no npm publication, Git tag, push, Signal project mutation, or local
98
+ plugin reinstall. Tagging and remote push are separate release actions after these exact gates.
99
+ - beta.12.2 does not implement P04-B, topology rewiring, completed-Step adoption, a general semantic
100
+ stop reversal, multi-rebind recovery, or a wider delegation surface.
101
+ - A real project must install the published exact beta.12.2 package, update/reinstall the bundled
102
+ gateway, and follow fresh project-local `handshake -> doctor -> status -> next` navigation.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-workflow-v2",
3
- "version": "2.0.0-beta.12",
3
+ "version": "2.0.0-beta.12.2",
4
4
  "description": "Requirements-first Codex development workflow with local state and explicit Git ownership.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-workflow-gateway",
3
- "version": "0.1.0+codex.20260827003726",
3
+ "version": "0.1.0+codex.20260827205000",
4
4
  "description": "Thin personal Codex gateway for exact project-local Codex Workflow V2 packages and codebase-memory-mcp.",
5
5
  "author": {
6
6
  "name": "Codex Workflow Maintainers"