codex-workflow-v2 2.0.0-beta.12.5 → 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.
- package/README.md +17 -3
- package/dist/src/alpha6/downstream-proof.d.ts +6 -1
- package/dist/src/alpha6/downstream-proof.js +50 -3
- package/dist/src/alpha6/downstream-proof.js.map +1 -1
- package/dist/src/cli.js +23 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +15 -1
- package/dist/src/dependency-provenance.d.ts +8 -1
- package/dist/src/dependency-provenance.js +36 -5
- package/dist/src/dependency-provenance.js.map +1 -1
- package/dist/src/git.d.ts +1 -1
- package/dist/src/git.js +4 -2
- package/dist/src/git.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/workflow.d.ts +3 -0
- package/dist/src/workflow.js +72 -5
- package/dist/src/workflow.js.map +1 -1
- package/docs/development-flow.md +7 -0
- package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
- package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
- package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
- package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +13 -6
- package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +16 -7
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +20 -11
- package/docs/release.md +5 -1
- package/docs/updating-existing-project.md +37 -2
- package/docs/validation-report.md +87 -77
- package/package.json +1 -1
- package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +1 -1
- package/plugins/codex-workflow-gateway/references/protocol.md +12 -1
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +18 -1
- package/schemas/task.schema.json +22 -0
- package/scripts/generate-pdf-docs.py +13 -2
package/docs/development-flow.md
CHANGED
|
@@ -106,6 +106,13 @@ invalidated predecessor completion, yields its C1 lease, and returns the same Ta
|
|
|
106
106
|
The replacement Plan must cover the unfinished remainder and pass a fresh Risk Audit and execution
|
|
107
107
|
authorization. Do not stash, reset, commit, or recreate the Task around this route.
|
|
108
108
|
|
|
109
|
+
If the repository is still on a package version that cannot advertise that route, beta.12.6 has
|
|
110
|
+
one update-only bridge. After exact dependency-only commits have aligned the active Milestone base
|
|
111
|
+
and Task branch, `update downstream-proof-dependency-recover` validates recorded history at the
|
|
112
|
+
candidate parent, binds the active proof dirty set by content hash, and registers only the Task
|
|
113
|
+
dependency commit. Product bytes and Step state remain unchanged; fresh `next` must then advertise
|
|
114
|
+
the ordinary `task downstream-proof-recover`. This is not a general dirty-update permission.
|
|
115
|
+
|
|
109
116
|
A sandboxed Docker `EPERM`, `operation not permitted`, or `permission denied` result is not a failed
|
|
110
117
|
daemon check. Re-run the exact probe/check once with sandbox escalation without consuming a retry.
|
|
111
118
|
Restart Docker Desktop only with separate authorization after the escalated call reaches Docker and
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Codex Workflow V2: архитектура beta.12.
|
|
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
6
|
date: 29 августа 2026
|
|
7
|
-
subject: Архитектура и границы Codex Workflow V2 beta.12.
|
|
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.
|
|
21
|
+
## 1.1. Что beta.12.6 гарантирует
|
|
22
22
|
|
|
23
23
|
- exact project-local npm package и совместимый handshake до lifecycle действий;
|
|
24
24
|
- Discovery до materialization Task или Milestone;
|
|
@@ -32,7 +32,7 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
|
|
|
32
32
|
- bounded recovery, когда downstream proof требует изменить уже завершённый predecessor Step:
|
|
33
33
|
worktree и HEAD сохраняются, stale completion authority снимается, та же Task возвращается в planning.
|
|
34
34
|
|
|
35
|
-
## 1.2. Что beta.12.
|
|
35
|
+
## 1.2. Что beta.12.6 не гарантирует
|
|
36
36
|
|
|
37
37
|
- правильность продуктовой идеи или автоматически выбранного provider Task;
|
|
38
38
|
- semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
|
|
@@ -249,13 +249,20 @@ beta.11 `task plan-integrity-recover` существует для одного
|
|
|
249
249
|
отсутствует exact root npm script и текущий Step не может изменить package.json. Recovery не меняет
|
|
250
250
|
worktree или Plan и не создаёт synthetic second failure; он записывает bound `replan-required`.
|
|
251
251
|
|
|
252
|
-
beta.12.
|
|
252
|
+
beta.12.6 различает другой случай: активный downstream proof оставил изменения в собственном scope и
|
|
253
253
|
показал необходимость исправить completed transitive predecessor. Fresh `next` вместо невозможного
|
|
254
254
|
`step-complete` рекламирует `task downstream-proof-recover`. Atomic transition сохраняет dirty files и
|
|
255
255
|
HEAD, переносит predecessor commits в historical `invalidatedStepCommits`, очищает только stale Step evidence,
|
|
256
256
|
yield C1 и возвращает ту же Task к новому Plan/risk audit/authorization. Unrelated dirty file,
|
|
257
257
|
non-predecessor ownership, повреждённый journal или unregistered commit fail closed.
|
|
258
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
|
+
|
|
259
266
|
Docker socket `EPERM` в sandbox не является доказательством сломанного daemon. Gateway один раз
|
|
260
267
|
повторяет exact health probe или Plan check с sandbox escalation без расходования remediation attempt.
|
|
261
268
|
Restart Docker Desktop требует отдельного разрешения и допустим только после escalated daemon failure.
|
|
@@ -265,7 +272,7 @@ Restart Docker Desktop требует отдельного разрешения
|
|
|
265
272
|
# 10. Operational checklist
|
|
266
273
|
|
|
267
274
|
- exact package version установлен, bundled gateway соответствует release и переустановлен;
|
|
268
|
-
- handshake подтверждает protocol 2, state schema 2 и beta.12.
|
|
275
|
+
- handshake подтверждает protocol 2, state schema 2 и beta.12.6 capabilities;
|
|
269
276
|
- каждый mutation следует свежему `status -> next` и exact option contract;
|
|
270
277
|
- Docker permission failure сначала классифицируется как sandbox boundary, а не как infra retry;
|
|
271
278
|
- semantic unknowns и human gates не маскируются delegation;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Codex Workflow V2: delegated chat-only guide
|
|
3
|
-
subtitle: Актуальный beta.12.
|
|
3
|
+
subtitle: Актуальный beta.12.6 путь от нового Discovery до принятого Milestone без ручного CLI
|
|
4
4
|
part: Часть 2 из 3 | Практика
|
|
5
5
|
document_version: 2.0
|
|
6
6
|
date: 29 августа 2026
|
|
7
|
-
subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.
|
|
7
|
+
subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.6
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# 1. Рабочая модель beta.12.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
@@ -298,6 +298,7 @@ Task chat записывает его только при совпадении p
|
|
|
298
298
|
| Finding `route=fix` | Продолжить тот же Step; count остаётся диагностикой |
|
|
299
299
|
| Finding `route=replan` с exact Plan conflict | `task plan-set`, меняются только implementation Steps |
|
|
300
300
|
| `split-required` | Stop: `STRUCTURAL_REPLACEMENT_REQUIRED`, никаких replacement writes |
|
|
301
|
+
| Старая версия + active downstream proof блокируют update | Только beta.12.6 exact dependency commits и advertised `update downstream-proof-dependency-recover` |
|
|
301
302
|
| Exact beta.11 attempt-four `stop-escalate` | Только advertised prepare, затем отдельный Human-confirmed apply; исходный stop сохраняется |
|
|
302
303
|
| Любой другой explicit `stop-escalate` | Terminal user attention |
|
|
303
304
|
| Stale dependency binding | Новый handoff/claim только по fresh `next` |
|
|
@@ -310,6 +311,13 @@ P04-A не переносит completed Steps и не rewires dependencies пр
|
|
|
310
311
|
dirty worktree/HEAD, append-only фиксирует invalidated predecessor evidence, освобождает C1 и возвращает
|
|
311
312
|
текущую Task к `task plan-set`. Если fresh `next` не рекламирует этот переход, вызывать его нельзя.
|
|
312
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
|
+
|
|
313
321
|
Ошибка Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied` в sandbox не считается
|
|
314
322
|
падением daemon и не расходует retry. Повторите exact read-only probe или Plan check один раз с sandbox
|
|
315
323
|
escalation. Не перезапускайте Docker Desktop и не меняйте image без отдельного разрешения и подтверждённого
|
|
@@ -345,7 +353,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
|
|
|
345
353
|
|
|
346
354
|
# 14. Итоговый checklist пользователя
|
|
347
355
|
|
|
348
|
-
- beta.12.
|
|
356
|
+
- beta.12.6 exact package и новый bundled gateway установлены;
|
|
349
357
|
- новый Coordinator chat не является fork старого Milestone;
|
|
350
358
|
- bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
|
|
351
359
|
- Discovery не materialized при blocking unknowns;
|
|
@@ -356,5 +364,6 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
|
|
|
356
364
|
- каждый transition пришёл из fresh `next`;
|
|
357
365
|
- beta.11 stop override, если рекламировался, прошёл отдельные prepare и user-confirmed apply без journal rewrite;
|
|
358
366
|
- downstream predecessor recovery, если рекламировался, сохранил worktree и завершился новым Plan authority;
|
|
367
|
+
- active-proof package bridge, если понадобился, зарегистрировал только exact dependency HEAD перед recovery;
|
|
359
368
|
- split-required остановился без replacement mutations;
|
|
360
369
|
- 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.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
6
|
date: 29 августа 2026
|
|
7
|
-
subject: Технический контракт Codex Workflow V2 beta.12.
|
|
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.
|
|
16
|
+
| Параметр beta.12.6 | Значение |
|
|
17
17
|
|---|---|
|
|
18
|
-
| npm package | `codex-workflow-v2@2.0.0-beta.12.
|
|
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.
|
|
40
|
+
Ключевые beta.12.6 capabilities:
|
|
41
41
|
|
|
42
42
|
| Группа | Capabilities |
|
|
43
43
|
|---|---|
|
|
@@ -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.
|
|
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 добавляет
|
|
@@ -421,12 +430,12 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
|
|
|
421
430
|
После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
|
|
422
431
|
не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
|
|
423
432
|
|
|
424
|
-
# 18. Public command surface beta.12.
|
|
433
|
+
# 18. Public command surface beta.12.6
|
|
425
434
|
|
|
426
435
|
| Область | Actions |
|
|
427
436
|
|---|---|
|
|
428
437
|
| System | `doctor`, `status`, `next`, `gateway handshake`, `locks` |
|
|
429
|
-
| Update | `preflight`, `rescue-preflight`, `dependency-provenance-preflight/recover` |
|
|
438
|
+
| Update | `preflight`, `rescue-preflight`, `dependency-provenance-preflight/recover`, `downstream-proof-dependency-preflight/recover` |
|
|
430
439
|
| Project memory | `scan`, `show`, `status`, `approve`, `reconcile` |
|
|
431
440
|
| Delegation | `prepare`, `grant`, `list`, `show`, `revoke` |
|
|
432
441
|
| Graph | `prepare`, `status`, `refresh-request`, `bind`, `fallback` |
|
|
@@ -445,10 +454,10 @@ Exact options берутся из fresh `next`; command help используе
|
|
|
445
454
|
# 19. Release и package update gates
|
|
446
455
|
|
|
447
456
|
Перед package update project-local `update preflight` должен вернуть `safe=true`: clean checkout, нет
|
|
448
|
-
running Step и active/stale writer lease.
|
|
449
|
-
|
|
457
|
+
running Step и active/stale writer lease. Исключения — документированный alpha.7 rescue и beta.12.6
|
|
458
|
+
active-downstream-proof dependency bridge; оба fail-closed и не дают общего разрешения dirty update.
|
|
450
459
|
|
|
451
|
-
Перед beta.12.
|
|
460
|
+
Перед beta.12.6 tag release repository выполняет:
|
|
452
461
|
|
|
453
462
|
1. `npm ci`;
|
|
454
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.
|
|
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;
|
|
@@ -53,6 +53,10 @@ For beta.12.5, the release gate also relies on `npm run release:check` to fail i
|
|
|
53
53
|
- downstream proof cannot invalidate only completed transitive-predecessor authority while
|
|
54
54
|
preserving worktree/HEAD, yielding C1, and returning the same Task to fresh planning; or unrelated
|
|
55
55
|
dirty files and damaged invalidation evidence do not fail closed.
|
|
56
|
+
- an eligible active downstream proof cannot transport one exact dependency-only update across
|
|
57
|
+
aligned base/Task commits while preserving product bytes; or unknown history, unrelated dirty
|
|
58
|
+
scope, content drift within an observation, leases, transactions, and wider candidates do not
|
|
59
|
+
fail closed before provenance registration and ordinary downstream recovery.
|
|
56
60
|
- bundled gateway guidance treats Docker socket `EPERM` as daemon failure, consumes a remediation
|
|
57
61
|
attempt before one exact escalated probe, or recommends restarting Docker Desktop without separate
|
|
58
62
|
authority.
|
|
@@ -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 и откройте в нужном
|
|
137
|
+
Не обновляйте пакет во время выполняющегося Worker Step, кроме exact beta.12.6 downstream-proof
|
|
138
|
+
исключения выше. В обычном случае дождитесь завершения текущего ответа Codex и откройте в нужном
|
|
139
|
+
проекте отдельный чат `Workflow update`.
|
|
105
140
|
|
|
106
141
|
Передайте агенту этот промпт, заменив `<НОВАЯ_ВЕРСИЯ>` точной опубликованной версией:
|
|
107
142
|
|
|
@@ -1,101 +1,111 @@
|
|
|
1
|
-
# V2 beta.12.
|
|
1
|
+
# V2 beta.12.6 Validation Report
|
|
2
2
|
|
|
3
|
-
Release candidate `2.0.0-beta.12.
|
|
3
|
+
Release candidate `2.0.0-beta.12.6` was validated on 2026-08-29 (Europe/Moscow) with
|
|
4
4
|
Node.js 24.17.0.
|
|
5
5
|
|
|
6
6
|
## Automated release evidence
|
|
7
7
|
|
|
8
|
-
- The
|
|
9
|
-
failures, skips, cancellations, or todos in 1,
|
|
8
|
+
- The first full `npm run validate` passed typecheck and `335/335` sequential tests with no
|
|
9
|
+
failures, skips, cancellations, or todos in 1,461,147.464875 ms.
|
|
10
10
|
- `npm ci` then completed from the lockfile with 0 reported vulnerabilities. The clean-install
|
|
11
|
-
`npm run validate` independently passed the same `
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
downstream-proof, CLI-help, and lifecycle-model suite passed `
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
authorized retry passed and included the new runtime module and public schema.
|
|
11
|
+
`npm run validate` independently passed the same `335/335` tests with no failures, skips,
|
|
12
|
+
cancellations, or todos in 1,461,906.892 ms.
|
|
13
|
+
- The exact Signal T04/downstream recovery gate passed `8/8`. The targeted dependency-provenance,
|
|
14
|
+
downstream-proof, CLI-help, and lifecycle-model suite passed `23/23`.
|
|
15
|
+
- The positive beta.12.6 fixture proves the complete compatibility sequence: exact active-base and
|
|
16
|
+
Task dependency commits, history validation at `HEAD^`, candidate validation at `HEAD`, dirty
|
|
17
|
+
content binding, dependency registration, fresh navigation to `task downstream-proof-recover`,
|
|
18
|
+
unchanged product bytes, and valid recorded Task history. Negative cases cover unrelated dirty
|
|
19
|
+
files, unregistered history, and an active writer lease. Existing Signal T04 tests remain intact.
|
|
20
|
+
- `npm run pack:check` built the exact beta.12.6 package: 274 files, 1.0 MB packed and 4.0 MB
|
|
21
|
+
unpacked. The first attempt could not write the user npm cache (`EPERM`); the exact retry used an
|
|
22
|
+
isolated temporary cache and passed without changing global cache ownership.
|
|
24
23
|
- `npm run smoke:downstream` packed and installed the tarball in a disposable consumer project and
|
|
25
24
|
returned `ok=true`. The sandboxed attempt could not resolve the npm registry (`ENOTFOUND`); the
|
|
26
25
|
exact network-authorized retry passed.
|
|
27
|
-
- `npm run plugin:check`, `npm run docs:pdf:check`, exact
|
|
28
|
-
`RELEASE_TAG=v2.0.0-beta.12.
|
|
29
|
-
gateway
|
|
26
|
+
- `npm run plugin:check`, `npm run docs:pdf:check`, and exact
|
|
27
|
+
`RELEASE_TAG=v2.0.0-beta.12.6 npm run release:check` passed. The plugin gate caught one missing
|
|
28
|
+
`HEAD^` boundary in the human-facing gateway instructions; that boundary was added and the gate
|
|
29
|
+
then passed. The bundled gateway cachebuster is `0.1.0+codex.20260829120000`.
|
|
30
30
|
|
|
31
|
-
## Root cause
|
|
31
|
+
## Root cause corrected by beta.12.6
|
|
32
32
|
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
33
|
+
- beta.12.5 correctly classified the current Signal downstream-proof conflict as recoverable, but
|
|
34
|
+
that did not make the release installable. Signal still runs beta.12.4, whose ordinary update
|
|
35
|
+
preflight rejects the running Step and dirty product work. Installing beta.12.5 would also advance
|
|
36
|
+
dependency manifests/HEAD before that new runtime could register the commit. The advertised
|
|
37
|
+
beta.12.5 recovery was therefore unreachable from the actual starting version.
|
|
38
|
+
- This is an update authority deadlock, not a need for more review attempts: the old runtime cannot
|
|
39
|
+
authorize the dirty update, while the new runtime cannot be reached without an exact update.
|
|
40
|
+
- beta.12.6 adds one bounded bridge rather than general dirty-update permission. The active
|
|
41
|
+
Milestone base and Task branch must each receive a separate dependency-only commit changing
|
|
42
|
+
exactly `package.json` and `package-lock.json`. A fresh beta.12.6 runtime then advertises
|
|
43
|
+
`update downstream-proof-dependency-recover` only for the active downstream-proof shape.
|
|
44
|
+
- Preflight verifies recorded Task history at `HEAD^`, the exact candidate at `HEAD`, aligned
|
|
45
|
+
runtime/declared/locked/installed/current-branch/base versions, one active Step, completed
|
|
46
|
+
transitive-predecessor ownership, branch and Plan bindings, no lease, no pending/corrupt
|
|
47
|
+
transaction or Core operation, and every dirty path plus SHA-256 content.
|
|
48
|
+
- Recovery registers only the dependency candidate in `systemCommits` and records the bound proof
|
|
49
|
+
in `dependencyProvenanceRecoveries.activeDownstreamProof`. It does not edit, stash, reset, commit,
|
|
50
|
+
or discard product work and does not change Step state. Fresh `next` then prioritizes
|
|
51
|
+
`task downstream-proof-recover` over manifest-induced Knowledge refresh.
|
|
52
|
+
- The ordinary downstream recovery remains responsible for invalidating stale predecessor
|
|
53
|
+
completion authority and returning the same Task to a new Plan, Risk Audit, authorization,
|
|
54
|
+
execution, and strict-review cycle. beta.12.6 does not bypass that lifecycle.
|
|
50
55
|
|
|
51
|
-
## Exact Signal read-only
|
|
56
|
+
## Exact Signal read-only evidence
|
|
52
57
|
|
|
53
|
-
- The
|
|
54
|
-
|
|
55
|
-
`
|
|
56
|
-
`TASK-01M0WXJAD4GZGVNRJ284ND95C6` without mutating repository or Workflow state.
|
|
57
|
-
- Persisted Task revision is 103 on branch
|
|
58
|
-
`codex/task-01m0wxjad4-processing-persistence-schema`; active Step is
|
|
59
|
-
`STEP-002-REAL-POSTGRES-PROOF`. HEAD is
|
|
58
|
+
- The Signal repository `/Users/home-pc/htdocs/projects/signal_v4` was re-observed read-only after
|
|
59
|
+
implementation. It remains on branch
|
|
60
|
+
`codex/task-01m0wxjad4-processing-persistence-schema` at
|
|
60
61
|
`88f8bf70d1591852ad90c976625430d4f20585ac`.
|
|
61
|
-
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
- Its dirty set remains exactly six paths: five modified processing-migration files and one
|
|
63
|
+
untracked `tools/postgres/run-processing-integration.ts`. No Signal repository or Workflow state
|
|
64
|
+
was mutated during beta.12.6 implementation.
|
|
65
|
+
- Prior read-only state inspection identified Task
|
|
66
|
+
`TASK-01M0WXJAD4GZGVNRJ284ND95C6`, revision 103, active Step
|
|
67
|
+
`STEP-002-REAL-POSTGRES-PROOF`, five files owned by completed transitive predecessor
|
|
68
|
+
`STEP-001-PROCESSING-MIGRATIONS`, and one file owned by the active proof Step. The predecessor
|
|
64
69
|
evidence commit equals the preserved HEAD.
|
|
65
|
-
- The
|
|
66
|
-
|
|
67
|
-
|
|
70
|
+
- The installed beta.12.4 ordinary update preflight returned `safe=false` for the running Step and
|
|
71
|
+
dirty checkout. The external beta.12.5 classifier returned `applicable=true`, `eligible=true`, and
|
|
72
|
+
no recovery blockers, proving that the product boundary itself is supported but not that the old
|
|
73
|
+
update path can reach it.
|
|
74
|
+
- The beta.12.6 regression fixture mirrors all six Signal paths and the same predecessor/active-Step
|
|
75
|
+
ownership split. It proves the new update bridge and subsequent downstream recovery route under
|
|
76
|
+
controlled Git/state mutations.
|
|
77
|
+
- This is strong structural and synthetic evidence, not a claim that the published package has
|
|
78
|
+
already updated live Signal. The final operational proof still requires the released exact
|
|
79
|
+
package, two exact dependency-only transport commits, the advertised preflight/recover, and a
|
|
80
|
+
fresh Signal `status -> next` readback.
|
|
68
81
|
|
|
69
|
-
##
|
|
70
|
-
|
|
71
|
-
- The bundled gateway now classifies Docker socket/CLI `EPERM`, `operation not permitted`, and
|
|
72
|
-
`permission denied` from a sandbox as an execution-boundary failure, not evidence that the daemon,
|
|
73
|
-
image, or product infrastructure is broken.
|
|
74
|
-
- It permits one exact escalated read-only probe or Plan check without consuming a remediation or
|
|
75
|
-
infrastructure retry. Docker Desktop restart, daemon mutation, or image substitution still
|
|
76
|
-
requires separate authority and an actual escalated daemon failure.
|
|
77
|
-
- Plugin validation pins this guidance. The release gates exercised analogous npm cache/network
|
|
78
|
-
sandbox boundaries, but no live Docker daemon failure was synthesized; Docker runtime behavior is
|
|
79
|
-
therefore documentation/gateway-contract evidence, not an end-to-end Docker test claim.
|
|
80
|
-
|
|
81
|
-
## beta.12.5 PDF release documentation evidence
|
|
82
|
+
## PDF release documentation evidence
|
|
82
83
|
|
|
83
84
|
- Three tracked Russian PDFs were regenerated from Markdown sources; `npm run docs:pdf:check`
|
|
84
85
|
reported an empty stale set.
|
|
85
|
-
- All 27 pages were rendered and visually inspected: architecture is 7 pages, the
|
|
86
|
-
chat-only guide is 9 pages, and the technical reference is 11 pages
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
- All 27 pages were rendered and visually inspected: architecture is 7 pages (101,761 bytes), the
|
|
87
|
+
delegated chat-only guide is 9 pages (107,066 bytes), and the technical reference is 11 pages
|
|
88
|
+
(112,132 bytes).
|
|
89
|
+
- Visual inspection found table headers rendered dark-on-dark. The shared generator now uses an
|
|
90
|
+
explicit white bold header Paragraph style; all documents were regenerated and re-inspected.
|
|
91
|
+
Titles, version headers, Cyrillic glyphs, tables, code blocks, recovery instructions, page edges,
|
|
92
|
+
and footers have no visible clipping, overlap, or unreadable content.
|
|
90
93
|
|
|
91
94
|
## Existing boundaries and non-claims
|
|
92
95
|
|
|
93
|
-
- Structural replacement remains intentionally disabled. beta.12.
|
|
96
|
+
- Structural replacement remains intentionally disabled. beta.12.6 does not implement P04-B,
|
|
94
97
|
topology rewiring, completed-Step adoption, or a wider delegation surface.
|
|
95
|
-
-
|
|
96
|
-
|
|
98
|
+
- The compatibility bridge is limited to the proven active-downstream-proof shape. Unrelated dirty
|
|
99
|
+
paths, non-predecessor ownership, unknown history, a wider dependency commit, stale base/version
|
|
100
|
+
divergence, branch/Plan/Step mismatch, lease, transaction, or damaged sidecar fails closed.
|
|
101
|
+
- Read-only preflight is an observation, not an authorization token. Recover recomputes the current
|
|
102
|
+
binding. The stored hash proves which bytes the bridge preserved; subsequent downstream recovery
|
|
103
|
+
revalidates paths, ownership, and history, while the replacement Plan and review cover current
|
|
104
|
+
content.
|
|
105
|
+
- Git transport commits remain agent-executed operations on exact advertised boundaries. The
|
|
106
|
+
runtime does not create, amend, merge, reset, or push Git history.
|
|
97
107
|
- Validation performed no Signal mutation, npm publication, Git commit, tag, remote push, or local
|
|
98
|
-
plugin reinstall. Those
|
|
99
|
-
-
|
|
100
|
-
|
|
101
|
-
|
|
108
|
+
plugin reinstall. Those are separate release/deployment actions.
|
|
109
|
+
- Confidence is high for the implemented source and tested Signal-shaped transition. Confidence in
|
|
110
|
+
the final live Signal update remains pending until the published package is installed and the
|
|
111
|
+
project-local runtime returns the expected recovery sequence.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-workflow-gateway",
|
|
3
|
-
"version": "0.1.0+codex.
|
|
3
|
+
"version": "0.1.0+codex.20260829120000",
|
|
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"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Gateway Protocol V2
|
|
2
2
|
|
|
3
|
-
## beta.12.
|
|
3
|
+
## beta.12.6 compatibility transitions and continuable remediation
|
|
4
4
|
|
|
5
5
|
- When fresh `next` advertises `task plan-integrity-recover`, consume its exact Task revision,
|
|
6
6
|
Step, actor, and writer-token contract. This route is valid only for the Core-derived
|
|
@@ -15,6 +15,16 @@
|
|
|
15
15
|
and routes the same Task to ordinary `task plan-set`. The replacement Plan, risk audit, and
|
|
16
16
|
execution authorization are fresh authority; no Task or Milestone recreation is involved.
|
|
17
17
|
|
|
18
|
+
- When an older installed package cannot reach that recovery because its normal update preflight
|
|
19
|
+
requires a clean checkout, beta.12.6 permits one bounded dependency transport. The active
|
|
20
|
+
Milestone base and Task branch must first receive separate exact commits changing only
|
|
21
|
+
`package.json` and `package-lock.json`; product work remains dirty and uncommitted. Fresh beta.12.6
|
|
22
|
+
`next` must then advertise `update downstream-proof-dependency-recover`. Its preflight proves the
|
|
23
|
+
Task history at `HEAD^`, the dependency candidate at `HEAD`, aligned version surfaces, no lease or
|
|
24
|
+
transaction, exact predecessor ownership, and a content hash of the dirty set. Recovery registers
|
|
25
|
+
only the dependency commit. It does not mutate product files or Step state; fresh `next` must
|
|
26
|
+
proceed to `task downstream-proof-recover`, which outranks manifest-induced Knowledge staleness.
|
|
27
|
+
|
|
18
28
|
- `update dependency-provenance-preflight --id <TASK-ID>` is read-only. The matching
|
|
19
29
|
`update dependency-provenance-recover --id <TASK-ID> --expected-revision <N> --actor <ACTOR>
|
|
20
30
|
--reason <TEXT>` is valid only when preflight and fresh `next` both advertise it. Historical
|
|
@@ -108,6 +118,7 @@ Current capability set:
|
|
|
108
118
|
- `plan-proof-obligations-v1`
|
|
109
119
|
- `bounded-plan-integrity-recovery-v1`
|
|
110
120
|
- `downstream-proof-predecessor-recovery-v1`
|
|
121
|
+
- `active-downstream-proof-dependency-recovery-v1`
|
|
111
122
|
- `corrective-yield-journal-v1`
|
|
112
123
|
- `corrective-replan-journal-v1`
|
|
113
124
|
- `corrective-replan-human-gate-v1`
|