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

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.
@@ -97,18 +97,27 @@ different attempt ordinal, missing attempt-3 continue authority, or an agent-aut
97
97
  outside the beta.11 policy shape. After a valid append, attempt four returns to the normal `task run`
98
98
  then strict-review cycle; review quality and all later corrective decisions remain unchanged.
99
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.
100
+ Beta.12.4 also handles the case where the accepted third attempt changed approved Project Knowledge
101
+ and package self-updates added later refreshes: the already-applied override may be followed by one
102
+ or more ordinary delegated `task context-refresh` transitions before attempt four starts. A fresh
103
+ `next` resumes `task run` only when Core can prove all of the following together: the same exact
104
+ three-event remediation history and stop override remain hash-valid; every adjacent Plan differs
105
+ only in its canonical Knowledge Map binding line; the Knowledge rebinds and mechanical Plan Risk
106
+ Audit rebounds form one contiguous source-to-current chain; and the refreshed approval plus current
107
+ execution authorization share the valid delegated authority. If Git HEAD advanced, every
108
+ intervening commit must have one exact registered dependency-provenance recovery, one parent, a
109
+ `systemCommits` binding, and exactly the `package.json`/`package-lock.json` diff. The proof is derived
110
+ from existing append-only evidence, so this route does not create a second recovery journal.
111
+ Missing evidence, semantic Plan change, an unregistered/product commit, a broken chain, or damaged
112
+ chronology routes to `doctor` rather than weakening the generic two-attempt corrective recovery gate.
113
+
114
+ If fresh navigation performs the final content refresh before the matching dependency-provenance
115
+ recovery, that later administrative recovery may advance the Task revision without invalidating the
116
+ mechanical audit. Core accepts the revision only when the exact count of post-audit recovery records
117
+ fully explains the difference: each record must belong to the already verified single-parent Git
118
+ chain, remain ordered, bind a Workflow system commit, and preserve the exact two-file dependency
119
+ diff. A bare greater revision, unrelated Task write, duplicate record, damaged parent, product
120
+ commit, or unverified recovery remains blocked.
112
121
 
113
122
  ### First-failure Plan-integrity recovery
114
123
 
package/docs/decisions.md CHANGED
@@ -97,3 +97,17 @@ This document closes the requirement gaps identified during the V2 design review
97
97
  19. **Derived independent actors.** Core derives stable Task Worker and corrective Auditor
98
98
  actors from Task identity. This removes name-selection pauses without weakening C1 claim,
99
99
  lease, or auditor-independence checks.
100
+ 20. **Stop-override authority survives mechanical update chains.** The exact Human-confirmed
101
+ beta.11 attempt-four override remains valid across any contiguous append-only sequence of
102
+ content-only Plan rebinds. Every adjacent immutable Plan, Knowledge rebind, and mechanical
103
+ Plan Risk Audit rebound must agree. Git HEAD may advance only through a contiguous chain of
104
+ already registered dependency-provenance commits, each single-parent and limited to
105
+ `package.json` plus `package-lock.json`. Semantic Plan drift, product commits, missing
106
+ provenance, or broken chronology still fails closed; generic corrective-decision recovery
107
+ remains direct and is not widened.
108
+ 21. **Administrative revision continuity is evidence-accounted.** A dependency-provenance
109
+ recovery recorded after the current mechanical Plan Risk Audit may explain exactly one later
110
+ Task revision without invalidating an already applied stop override. Core counts only ordered
111
+ recovery records from the independently verified override-to-authorization Git chain and
112
+ requires the resulting expected revision to equal the current Task revision. Unexplained
113
+ revisions and damaged provenance remain blocked; this is not a general `revision >=` rule.
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: архитектура beta.12.2
2
+ title: Codex Workflow V2: архитектура beta.12.4
3
3
  subtitle: Источники истины, lifecycle, роли, delegation, зависимости Tasks и границы доверия
4
4
  part: Часть 1 из 3 | Архитектура
5
5
  document_version: 2.0
6
- date: 27 августа 2026
7
- subject: Архитектура и границы Codex Workflow V2 beta.12.2
6
+ date: 28 августа 2026
7
+ subject: Архитектура и границы Codex Workflow V2 beta.12.4
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.2 гарантирует
21
+ ## 1.1. Что beta.12.4 гарантирует
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.2 не гарантирует
33
+ ## 1.2. Что beta.12.4 не гарантирует
34
34
 
35
35
  - правильность продуктовой идеи или автоматически выбранного provider Task;
36
36
  - semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
@@ -225,13 +225,20 @@ Beta.12.1 добавила одну append-only compatibility оговорку:
225
225
  Plan, HEAD, lease, transaction или повреждённая chain блокируют переход. Попытка 4 снова проходит
226
226
  обычный `task run` и новый strict review.
227
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
228
+ Beta.12.4 сохраняет этот override при последовательности delegated `task context-refresh`, если
229
+ каждая версия Plan изменилась только в canonical Knowledge Map binding. Core проверяет весь
230
+ contiguous rebind/audit chain, mechanical equivalence каждого Plan Risk Audit, общую delegated
231
+ authority и корректную chronology. Git HEAD может продвинуться только через последовательность
232
+ зарегистрированных dependency-provenance commits, каждый из которых меняет ровно package.json и
233
+ package-lock.json. При утрате claimed writer lease используется только одновременно рекламируемый
234
+ `task writer-credential-replace`; semantic Plan drift, разрыв chain или любой другой commit
233
235
  возвращают `doctor`.
234
236
 
237
+ Если последний dependency-provenance recovery записан уже после mechanical audit, он объясняет
238
+ ровно один дополнительный Task revision. Core требует, чтобы audit boundary плюс количество
239
+ проверенных post-audit recoveries точно равнялись current revision; произвольное увеличение
240
+ revision, неверный parent или повреждённая provenance остаются blocker.
241
+
235
242
  Dependency-provenance recovery beta.12.1 также сохраняет ранее закоммиченные Task-local поля
236
243
  manifest/lock, даже если base их не содержит. Candidate остаётся dependency-only: после удаления
237
244
  только Workflow dependency parent и HEAD обязаны совпасть по всем product-owned полям.
@@ -245,7 +252,7 @@ worktree или Plan и не создаёт synthetic second failure; он за
245
252
  # 10. Operational checklist
246
253
 
247
254
  - exact package version установлен, bundled gateway соответствует release и переустановлен;
248
- - handshake подтверждает protocol 2, state schema 2 и beta.12.2 capabilities;
255
+ - handshake подтверждает protocol 2, state schema 2 и beta.12.4 capabilities;
249
256
  - каждый mutation следует свежему `status -> next` и exact option contract;
250
257
  - semantic unknowns и human gates не маскируются delegation;
251
258
  - Task chats создаёт coordinator, credentials остаются только в памяти;
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  title: Codex Workflow V2: delegated chat-only guide
3
- subtitle: Актуальный beta.12.2 путь от нового Discovery до принятого Milestone без ручного CLI
3
+ subtitle: Актуальный beta.12.4 путь от нового Discovery до принятого Milestone без ручного CLI
4
4
  part: Часть 2 из 3 | Практика
5
5
  document_version: 2.0
6
- date: 27 августа 2026
7
- subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.2
6
+ date: 28 августа 2026
7
+ subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.4
8
8
  ---
9
9
 
10
- # 1. Рабочая модель beta.12.2
10
+ # 1. Рабочая модель beta.12.4
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.2 как точную devDependency после публикации release.
43
+ 2. Установите beta.12.4 как точную 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.2 должен сообщать `packageVersion=2.0.0-beta.12.2`, `protocolVersion=2`,
59
+ Handshake beta.12.4 должен сообщать `packageVersion=2.0.0-beta.12.4`, `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.2 в delegated режиме.
119
+ Проведи новый Milestone через Codex Workflow V2 beta.12.4 в delegated режиме.
120
120
  Repository: <ABSOLUTE-REPOSITORY-ROOT>.
121
121
  Milestone ID: AUTO.
122
122
  Delegate actor: agent:milestone-coordinator.
@@ -305,12 +305,18 @@ Task chat записывает его только при совпадении p
305
305
  Plan-integrity recovery не редактирует Plan, package.json или worktree и не синтезирует второй failure.
306
306
  P04-A не переносит completed Steps и не rewires dependencies при split.
307
307
 
308
- Если после применённого stop override `next` рекламирует delegated `task context-refresh`, выполните
309
- его как обычный atomic refresh и снова запросите `status -> next`. Продолжайте attempt 4 только при
310
- `stopOverrideContextRebind.state=validated`. При одновременном
308
+ Если после применённого stop override `next` рекламирует delegated `task context-refresh` или
309
+ `update dependency-provenance-recover`, выполните только этот advertised atomic/recovery переход и
310
+ снова запросите `status -> next`. Таких механических refresh/update циклов может быть несколько.
311
+ Продолжайте attempt 4 только при `stopOverrideContextRebind.state=validated`. При одновременном
311
312
  `writerCredentialRecovery.action=task writer-credential-replace` сначала восстановите credential
312
- точного claimant-актора. `doctor`, semantic Plan change, второй rebind или другой HEAD означают stop,
313
- а не ручной обход.
313
+ точного claimant-актора. `doctor`, semantic Plan change, разрыв rebind/audit chain или HEAD commit без
314
+ точного dependency-provenance record означают stop, а не ручной обход.
315
+
316
+ Если advertised navigation записала dependency provenance после последнего context-refresh audit,
317
+ продолжайте только когда fresh `next` сам вернул `task run`. Core обязан доказать, что каждый такой
318
+ recovery объясняет ровно один дополнительный Task revision; простое `revision >=` не является
319
+ authority.
314
320
 
315
321
  # 12. Milestone final acceptance
316
322
 
@@ -329,7 +335,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
329
335
 
330
336
  # 14. Итоговый checklist пользователя
331
337
 
332
- - beta.12.2 exact package и новый bundled gateway установлены;
338
+ - beta.12.4 exact package и новый bundled gateway установлены;
333
339
  - новый Coordinator chat не является fork старого Milestone;
334
340
  - bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
335
341
  - Discovery не materialized при blocking unknowns;
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: технический справочник beta.12.2
2
+ title: Codex Workflow V2: технический справочник beta.12.4
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: 27 августа 2026
7
- subject: Технический контракт Codex Workflow V2 beta.12.2
6
+ date: 28 августа 2026
7
+ subject: Технический контракт Codex Workflow V2 beta.12.4
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.2 | Значение |
16
+ | Параметр beta.12.4 | Значение |
17
17
  |---|---|
18
- | npm package | `codex-workflow-v2@2.0.0-beta.12.2` |
18
+ | npm package | `codex-workflow-v2@2.0.0-beta.12.4` |
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.2 capabilities:
40
+ Ключевые beta.12.4 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, context-only stop rebind, corrective yield/replan journals |
49
+ | Recovery | Task-local dependency provenance, plan integrity, 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,7 +316,7 @@ 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.2 compatibility transitions
319
+ # 13.1. beta.12.4 compatibility transitions
320
320
 
321
321
  `update dependency-provenance-recover` больше не требует полного равенства Task manifest/lock с base.
322
322
  Base остаётся version authority, а parent/HEAD candidate сравниваются без единственных Workflow
@@ -329,12 +329,21 @@ remediation events, Plan, HEAD, package, human actor и reason. Apply в отд
329
329
  `stop-escalate-overrides.jsonl`. Original corrective decision остаётся неизменным. Split, stale binding,
330
330
  lease/transaction, дубликат с другим binding и tampering fail closed.
331
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`.
332
+ После apply несколько delegated `task context-refresh` могут сделать source Plan историческим.
333
+ `task run` доступен, только если Core доказывает contiguous source-to-current chain: adjacent Plans
334
+ различаются лишь Knowledge binding, rebinds совпадают с artifacts, audits являются mechanical
335
+ rebounds, а current approval/authorization сохраняют одну delegated authority и chronology.
336
+
337
+ HEAD может отличаться от override только через зарегистрированные single-parent
338
+ `dependencyProvenanceRecoveries` в `systemCommits`, каждый с exact `package.json`/`package-lock.json`
339
+ diff. Semantic drift, иной commit или разрыв chain fail closed. Projection содержит
340
+ `stopOverrideContextRebind.state=validated`; lost lease восстанавливает только advertised
341
+ `task writer-credential-replace`.
342
+
343
+ Если recovery записан после последнего rebound audit, evidence-bound revision равен
344
+ `audit.taskRevision + 1 + postAuditVerifiedRecoveries.length`. В зачёт входят только ordered records
345
+ из уже проверенной override-to-authorization Git chain. Формула должна точно равняться current Task
346
+ revision; unrelated write, duplicate, неверный parent или product commit блокируют continuation.
338
347
 
339
348
  # 14. P04-A structural replacement boundary
340
349
 
@@ -393,7 +402,7 @@ Graph является навигационным индексом, не Project
393
402
  После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
394
403
  не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
395
404
 
396
- # 18. Public command surface beta.12.2
405
+ # 18. Public command surface beta.12.4
397
406
 
398
407
  | Область | Actions |
399
408
  |---|---|
@@ -420,7 +429,7 @@ Exact options берутся из fresh `next`; command help используе
420
429
  running Step и active/stale writer lease. External runner допустим только в документированной rescue
421
430
  compatibility форме.
422
431
 
423
- Перед beta.12.2 tag release repository выполняет:
432
+ Перед beta.12.4 tag release repository выполняет:
424
433
 
425
434
  1. `npm ci`;
426
435
  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.2, the release gate also relies on `npm run release:check` to fail if:
30
+ For beta.12.4, 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;
@@ -57,9 +57,13 @@ For beta.12.2, the release gate also relies on `npm run release:check` to fail i
57
57
  - the append-only, Human-confirmed beta.11 attempt-four stop override, its exact three-event/
58
58
  continue/stop binding, split rejection, stale-confirmation rejection, or tamper detection is
59
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.
60
+ - an already-applied beta.11 stop override cannot survive a contiguous append-only chain of later
61
+ context-only Plan rebinds with exact mechanical audits, delegation, and chronology;
62
+ - Git HEAD may advance between the override and current execution authorization through anything
63
+ except an exact chain of registered dependency-provenance commits that each change only
64
+ `package.json` and `package-lock.json`; or the route weakens the generic stale-decision recovery gate.
65
+ - a dependency-provenance recovery recorded after the final mechanical audit cannot explain its
66
+ exact single Task revision, or an unrelated revision/damaged provenance is accepted as authority.
63
67
 
64
68
  The separate lifecycle transcript validator fails if the real-agent log contains a mutation that
65
69
  bypasses failed `status`/`next`, an unadvertised or failed mutation, an unresolved syntax-only
@@ -73,20 +73,28 @@ stop decision, Plan hash, Git HEAD, все три remediation events и policy
73
73
  `SOO-*` кодом. `task stop-override-apply` добавляет одну запись в
74
74
  `stop-escalate-overrides.jsonl`, сохраняя исходный `stop-escalate`; после него выполните
75
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 цепочка.
76
+ новым strict review. Beta.12.4 покрывает и последовательность package self-update/context-refresh
77
+ циклов после override. Перед `task run` выполняйте только свежие advertised
78
+ `update dependency-provenance-recover` и delegated `task context-refresh`; циклов может быть
79
+ несколько. Workflow продолжит attempt 4 лишь когда докажет contiguous source-to-current chain:
80
+ каждый Plan отличается только canonical Knowledge Map binding, каждый rebind совпадает с Plan
81
+ artifacts, каждый Plan Risk Audit является mechanical rebound, а current approval/authorization
82
+ сохраняют одну delegated authority. HEAD может продвинуться только через зарегистрированные
83
+ single-parent dependency-provenance commits, каждый с exact `package.json`/`package-lock.json` diff.
84
+ Новая stop-override recovery-запись не создаётся — используется существующая append-only evidence.
85
+ Если advertised navigation сначала завершила последний `task context-refresh`, а затем разрешила
86
+ `update dependency-provenance-recover`, административный recovery может объяснить ровно один
87
+ post-audit Task revision. Core принимает его только как часть уже проверенной dependency-only Git
88
+ chain; арифметика audit revision + refresh boundary + exact post-audit recoveries должна точно
89
+ равняться current Task revision. Любой необъяснённый revision остаётся blocker.
83
90
  Если C1 остаётся claimed, но writer lease после Human boundary отсутствует, `next` вместе с
84
91
  `task run` рекламирует `task writer-credential-replace`; сначала восстановите credential exact
85
92
  claimant-актора, затем запускайте Step.
86
93
 
87
94
  Этот путь не работает для `split-required`, другого attempt ordinal, семантически изменённого
88
- Plan, другого HEAD, отсутствующего attempt-3 continue, более чем одного rebind, повреждённой
89
- chronology, active/stale lease на Human prepare/apply boundary или незавершённой Task transaction.
95
+ Plan, отсутствующего attempt-3 continue, разорванной rebind/audit chain, незарегистрированного или
96
+ product HEAD commit, повреждённой chronology, active/stale lease на Human prepare/apply boundary
97
+ или незавершённой Task transaction.
90
98
  Delegated approval для самого stop override отсутствует; delegation относится только к обычному
91
99
  context refresh после уже подтверждённого Human override.
92
100
 
@@ -1,102 +1,98 @@
1
- # V2 beta.12.2 Validation Report
1
+ # V2 beta.12.4 Validation Report
2
2
 
3
- Release candidate `2.0.0-beta.12.2` was validated across 2026-08-27/28 (Europe/Moscow) with
3
+ Release candidate `2.0.0-beta.12.4` was validated on 2026-08-28 (Europe/Moscow) with
4
4
  Node.js 24.17.0.
5
5
 
6
6
  ## Automated release evidence
7
7
 
8
- - `npm ci` completed from the committed lockfile with 0 reported vulnerabilities.
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.
8
+ - `npm ci` completed from the lockfile with 0 reported vulnerabilities.
9
+ - The final `npm run validate` passed typecheck and `328/328` sequential tests with no failures,
10
+ skips, cancellations, or todos in 1,348,269.052041 ms.
11
+ - The suite includes the beta.12.4 real-order replay (`stop override -> context refresh -> base
12
+ transport -> dependency provenance recovery -> task run`) and two fail-closed controls: an
13
+ unexplained Task revision and damaged post-audit dependency provenance. Existing beta.12.3
14
+ chained rebind, Signal T04, five-cycle remediation, transaction, credential, observer-purity,
15
+ dependency DAG, transition-catalog, and lifecycle transcript tests also remained green.
16
+ - `npm run pack:check` built the exact beta.12.4 package and reported a 270-file tarball. The first
17
+ sandboxed attempt could not write the existing npm cache (`EPERM`); the authorized retry using
18
+ the same source passed.
19
+ - `npm run smoke:downstream` packed and installed the tarball in a clean temporary project and
20
+ passed its packaged handshake. The sandboxed attempt could not resolve the npm registry for AJV;
21
+ the authorized network retry using the same source passed.
22
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`.
23
+ `npm run docs:pdf:check`, exact `RELEASE_TAG=v2.0.0-beta.12.4 npm run release:check`, and
24
+ `git diff --check` passed. The bundled gateway cachebuster is
25
+ `0.1.0+codex.20260828064343`.
27
26
 
28
- ## beta.12.2 stop-override/context-rebind compatibility
27
+ ## Root cause and bounded correction
29
28
 
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`.
29
+ - beta.12.3 validated the chained Knowledge-only Plan rebind and the exact Git
30
+ dependency-provenance chain, but retained the older Task-revision predicate
31
+ `reboundAudit.taskRevision + 1 === task.revision` for a failed Step.
32
+ - Signal's actual install flow created the last mechanical Plan Risk Audit at Task revision 22,
33
+ wrote the atomic context-refresh result at revision 23, then registered one advertised
34
+ dependency-provenance recovery at revision 24. The old predicate therefore rejected valid,
35
+ already-verified administrative evidence at the next navigation step.
36
+ - beta.12.4 derives the exact authorization boundary as
37
+ `reboundAudit.taskRevision + 1 + verifiedPostAuditRecoveries.length`. Only recovery records from
38
+ the already validated stop-override-to-authorization Git chain count. Each record must remain
39
+ ordered, single-parent, present in `systemCommits`, and an exact `package.json` plus
40
+ `package-lock.json` Workflow dependency commit.
41
+ - This is not a permissive `revision >=` rule. An unrelated state write, duplicate or malformed
42
+ recovery, wrong parent, product-file change, semantic Plan drift, or broken chronology still
43
+ routes to diagnostics.
49
44
 
50
- ## Existing compatibility and lifecycle regressions retained
45
+ ## Exact Signal read-only proof
51
46
 
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.
47
+ - The final built beta.12.4 validator inspected Signal repository
48
+ `/Users/home-pc/htdocs/projects/signal_v4`, Task
49
+ `TASK-01M0WXJAD4GZGVNRJ284ND95C6`, and failed Step
50
+ `STEP-001-PROCESSING-MIGRATIONS` without mutating the repository or Workflow state.
51
+ - The persisted state has Task revision 24, current Plan hash
52
+ `6a0c9b7a2a2ec11c9d6a9a24137dc17be1ecd18be42cf0188200942313776a50`, four Knowledge rebinds,
53
+ three dependency-provenance recoveries, applied override
54
+ `SOO-01M127VPRC5M5F3E3K7PS4MFJY`, and final rebound audit revision 22. Exactly one verified
55
+ recovery was recorded after that audit, so `22 + 1 + 1 = 24`.
56
+ - A direct final-build `next --repo /Users/home-pc/htdocs/projects/signal_v4 --json` returned
57
+ `action=task run`, revision 24, the expected Step, and
58
+ `stopOverrideContextRebind.state=validated`. It also preserved the exact claimed C1 actor and
59
+ writer-credential recovery contract.
60
+ - This proves compatibility with the currently persisted Signal M3 boundary. It does not prove
61
+ that future product implementation or strict reviews will pass.
66
62
 
67
- ## Packaged and transcript evidence
63
+ ## Packaged, plugin, and transcript evidence
68
64
 
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
65
+ - Downstream smoke validated exact package resolution and the packaged beta.12.4 handshake in a
66
+ disposable installation.
67
+ - The bundled gateway handshake reports package beta.12.4, protocol 2, state schema 2, and the new
68
+ `stop-override-post-audit-dependency-revision-v1` capability.
69
+ - A temporary trusted-harness transcript recorded the final built `gateway handshake` invocation
70
+ and terminal result. `node scripts/validate-lifecycle-transcript.mjs` accepted both
71
+ post-provenance events. The log SHA-256 is
72
+ `4ec7d8cb105d901e82d1049c273c4f2ec8d22ea12e0116ed70cfa8ab703ea2eb`; the temporary log remains
77
73
  outside the repository.
78
74
 
79
75
  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.
76
+ claim a product Milestone replay or lifecycle mutation. Compatibility is covered by the exact
77
+ Signal read-only proof and deterministic integration tests above.
82
78
 
83
- ## beta.12.2 PDF release documentation evidence
79
+ ## beta.12.4 PDF release documentation evidence
84
80
 
85
81
  - Three tracked Russian PDFs were deterministically regenerated from reviewable Markdown sources
86
82
  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.
83
+ - All 26 pages were rendered and visually inspected: architecture is 7 pages, the delegated
84
+ chat-only guide is 8 pages, and the technical reference is 11 pages. Full-size inspection of the
85
+ three changed compatibility pages found no clipped, overlapping, or unreadable content.
86
+ - Visible titles, headers, package commands, capabilities, and release gates identify beta.12.4.
87
+ The documents state the exact evidence-bound revision formula and its fail-closed boundary.
94
88
 
95
- ## Not claimed
89
+ ## Existing boundaries and non-claims
96
90
 
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.
91
+ - The generic stale `continue-fix` recovery predicate is unchanged. The compatibility route does
92
+ not reverse a semantic stop or authorize arbitrary Git/state history.
93
+ - Structural replacement remains intentionally disabled. beta.12.4 does not implement P04-B,
94
+ topology rewiring, completed-Step adoption, or a wider delegation surface.
95
+ - Validation performed no Signal mutation, npm publication, Git commit, tag, remote push, or local
96
+ plugin reinstall. Those are separate release actions after these gates.
97
+ - A consumer must install the published exact beta.12.4 package, update/reinstall the bundled
98
+ gateway, and use 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.2",
3
+ "version": "2.0.0-beta.12.4",
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.20260827205000",
3
+ "version": "0.1.0+codex.20260828064343",
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"