codex-workflow-v2 2.0.0-beta.12.8 → 2.0.0-beta.12.9
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 +3 -1
- package/dist/src/alpha6/review.d.ts +6 -0
- package/dist/src/alpha6/review.js +12 -0
- package/dist/src/alpha6/review.js.map +1 -1
- package/dist/src/cli.js +33 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +37 -1
- package/dist/src/dependency-provenance.d.ts +2 -2
- package/dist/src/dependency-provenance.js +21 -5
- package/dist/src/dependency-provenance.js.map +1 -1
- package/dist/src/git.js +1 -0
- package/dist/src/git.js.map +1 -1
- package/dist/src/historical-step-provenance.d.ts +20 -0
- package/dist/src/historical-step-provenance.js +111 -0
- package/dist/src/historical-step-provenance.js.map +1 -0
- package/dist/src/state/corrective-replan-executor.js +5 -0
- package/dist/src/state/corrective-replan-executor.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 +6 -1
- package/dist/src/workflow.js +195 -8
- package/dist/src/workflow.js.map +1 -1
- 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 +16 -6
- package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +24 -28
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +33 -13
- package/docs/release.md +7 -1
- package/docs/updating-existing-project.md +30 -0
- package/docs/validation-report.md +75 -74
- package/package.json +1 -1
- package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +1 -1
- package/plugins/codex-workflow-gateway/references/protocol.md +9 -0
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +25 -0
- package/schemas/task.schema.json +43 -0
|
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.9
|
|
3
3
|
subtitle: Источники истины, lifecycle, роли, delegation, зависимости Tasks и границы доверия
|
|
4
4
|
part: Часть 1 из 3 | Архитектура
|
|
5
5
|
document_version: 2.0
|
|
6
|
-
date:
|
|
7
|
-
subject: Архитектура и границы Codex Workflow V2 beta.12.
|
|
6
|
+
date: 30 августа 2026
|
|
7
|
+
subject: Архитектура и границы Codex Workflow V2 beta.12.9
|
|
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.9 гарантирует
|
|
22
22
|
|
|
23
23
|
- exact project-local npm package и совместимый handshake до lifecycle действий;
|
|
24
24
|
- Discovery до materialization Task или Milestone;
|
|
@@ -35,8 +35,10 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
|
|
|
35
35
|
worktree и HEAD сохраняются, stale completion authority снимается, та же Task возвращается в planning.
|
|
36
36
|
- bounded compatibility recovery, если beta.12.6 после этого recovery ошибочно rebind-нула отвергнутый
|
|
37
37
|
Plan: exact dirty bytes сохраняются до нового consolidated Step, а Knowledge refresh не отменяет `plan-set`.
|
|
38
|
+
- corrective Plan сохраняет authority исключённых completed Step commits, а beta.12.9 bounded recovery
|
|
39
|
+
исправляет уже stranded state только при passed strict review и прежнем hash-bound final acceptance.
|
|
38
40
|
|
|
39
|
-
## 1.2. Что beta.12.
|
|
41
|
+
## 1.2. Что beta.12.9 не гарантирует
|
|
40
42
|
|
|
41
43
|
- правильность продуктовой идеи или автоматически выбранного provider Task;
|
|
42
44
|
- semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
|
|
@@ -283,6 +285,14 @@ Task в `needs_fix`; stale Knowledge можно reconciliate/approve, но fresh
|
|
|
283
285
|
всем dirty set. `task run` принимает carryover лишь при exact HEAD/path/hash match, после чего Step
|
|
284
286
|
проходит обычные checks, Core-owned commit и strict review.
|
|
285
287
|
|
|
288
|
+
beta.12.9 закрывает исторический provenance gap corrective replan. Новые replan transitions автоматически
|
|
289
|
+
переносят evidence commits исключённых Steps в `invalidatedStepCommits`. Для уже существующего gap Core
|
|
290
|
+
требует один неожиданный commit, complete passed strict-review chain, verified reviewer attestation и
|
|
291
|
+
совпадающий прежний final acceptance. Если пакет уже зарегистрирован, recovery меняет только Task state.
|
|
292
|
+
Если exact beta.12.9 dependency commit ещё находится в HEAD, отдельный update compatibility route
|
|
293
|
+
регистрирует dependency и historical authority одной revision. Оба пути сохраняют dirty bytes текущего
|
|
294
|
+
Step, не переписывают Git и завершаются fresh обычным `step-complete` flow.
|
|
295
|
+
|
|
286
296
|
Docker socket `EPERM` в sandbox не является доказательством сломанного daemon. Gateway один раз
|
|
287
297
|
повторяет exact health probe или Plan check с sandbox escalation без расходования remediation attempt.
|
|
288
298
|
Restart Docker Desktop требует отдельного разрешения и допустим только после escalated daemon failure.
|
|
@@ -292,7 +302,7 @@ Restart Docker Desktop требует отдельного разрешения
|
|
|
292
302
|
# 10. Operational checklist
|
|
293
303
|
|
|
294
304
|
- exact package version установлен, bundled gateway соответствует release и переустановлен;
|
|
295
|
-
- handshake подтверждает protocol 2, state schema 2 и beta.12.
|
|
305
|
+
- handshake подтверждает protocol 2, state schema 2 и beta.12.9 capabilities;
|
|
296
306
|
- каждый mutation следует свежему `status -> next` и exact option contract;
|
|
297
307
|
- Docker permission failure сначала классифицируется как sandbox boundary, а не как infra retry;
|
|
298
308
|
- 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.9 путь от нового Discovery до принятого Milestone без ручного CLI
|
|
4
4
|
part: Часть 2 из 3 | Практика
|
|
5
5
|
document_version: 2.0
|
|
6
|
-
date:
|
|
7
|
-
subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.
|
|
6
|
+
date: 30 августа 2026
|
|
7
|
+
subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.9
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# 1. Рабочая модель beta.12.
|
|
10
|
+
# 1. Рабочая модель beta.12.9
|
|
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.9 как точную 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.9 должен сообщать `packageVersion=2.0.0-beta.12.9`, `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.9 в delegated режиме.
|
|
120
120
|
Repository: <ABSOLUTE-REPOSITORY-ROOT>.
|
|
121
121
|
Milestone ID: AUTO.
|
|
122
122
|
Delegate actor: agent:milestone-coordinator.
|
|
@@ -304,6 +304,7 @@ Task chat записывает его только при совпадении p
|
|
|
304
304
|
| `split-required` | Stop: `STRUCTURAL_REPLACEMENT_REQUIRED`, никаких replacement writes |
|
|
305
305
|
| Старая версия + active downstream proof блокируют update | Только beta.12.6 exact dependency commits и advertised `update downstream-proof-dependency-recover` |
|
|
306
306
|
| После downstream recovery beta.12.6 вернула отвергнутый Plan через Knowledge rebind | Только beta.12.7 replan update bridge, затем recovery и новый consolidated Plan той же Task |
|
|
307
|
+
| Corrective Plan потерял authority ранее принятого Step commit | Только advertised beta.12.9 historical-Step preflight/recovery; без rebase/reset и без новой Task |
|
|
307
308
|
| Exact beta.11 attempt-four `stop-escalate` | Только advertised prepare, затем отдельный Human-confirmed apply; исходный stop сохраняется |
|
|
308
309
|
| Любой другой explicit `stop-escalate` | Terminal user attention |
|
|
309
310
|
| Stale dependency binding | Новый handoff/claim только по fresh `next` |
|
|
@@ -323,32 +324,26 @@ beta.12.6 и требуйте от fresh `next` `update downstream-proof-depende
|
|
|
323
324
|
binding dirty set. Recover регистрирует только dependency HEAD; следующий fresh `next` должен вернуть
|
|
324
325
|
обычный `task downstream-proof-recover`. Любой иной diff/history/dirty path/lease означает stop.
|
|
325
326
|
|
|
326
|
-
Для
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
327
|
+
Для beta.12.9 historical-Step blocker обновите base в отдельном worktree и Task branch двумя commits
|
|
328
|
+
только package/lock. После install продолжайте лишь при advertised `update historical-step-dependency-recover`
|
|
329
|
+
и preflight, связавшем HEAD/parent, passed+accepted historical SHA, Plan/Step, dirty hash и отсутствие lease.
|
|
330
|
+
Recover сохраняет product bytes; затем обязательны `status -> next -> task step-complete`. Если package
|
|
331
|
+
уже зарегистрирован, используйте advertised `task historical-step-provenance-preflight/recover`.
|
|
332
|
+
|
|
333
|
+
Для exact beta.12.6 stranded-replan shape сначала нужен eligible read-only source preflight с exact
|
|
334
|
+
revision/HEAD/dirty hash. Затем два beta.12.7 dependency-only commits и advertised dependency/replan
|
|
335
|
+
recoveries. После Knowledge refresh `next` обязан остаться на `task plan-set`; новый единый Step должен
|
|
336
|
+
владеть всем dirty set, а `task run` требует `downstreamProofCarryover.state=validated`.
|
|
334
337
|
|
|
335
338
|
Ошибка Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied` в sandbox не считается
|
|
336
339
|
падением daemon и не расходует retry. Повторите exact read-only probe или Plan check один раз с sandbox
|
|
337
340
|
escalation. Не перезапускайте Docker Desktop и не меняйте image без отдельного разрешения и подтверждённого
|
|
338
341
|
escalated daemon failure.
|
|
339
342
|
|
|
340
|
-
|
|
341
|
-
`
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
`writerCredentialRecovery.action=task writer-credential-replace` сначала восстановите credential
|
|
345
|
-
точного claimant-актора. `doctor`, semantic Plan change, разрыв rebind/audit chain или HEAD commit без
|
|
346
|
-
точного dependency-provenance record означают stop, а не ручной обход.
|
|
347
|
-
|
|
348
|
-
Если advertised navigation записала dependency provenance после последнего context-refresh audit,
|
|
349
|
-
продолжайте только когда fresh `next` сам вернул `task run`. Core обязан доказать, что каждый такой
|
|
350
|
-
recovery объясняет ровно один дополнительный Task revision; простое `revision >=` не является
|
|
351
|
-
authority.
|
|
343
|
+
После stop override выполняйте только advertised context/dependency recoveries и каждый раз повторяйте
|
|
344
|
+
`status -> next`; attempt 4 требует `stopOverrideContextRebind.state=validated`. Lost credential
|
|
345
|
+
восстанавливает только advertised exact claimant route. Semantic drift, broken chain, необъяснённый HEAD
|
|
346
|
+
или revision означают stop; продолжение разрешено только когда fresh `next` сам вернул `task run`.
|
|
352
347
|
|
|
353
348
|
# 12. Milestone final acceptance
|
|
354
349
|
|
|
@@ -367,7 +362,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
|
|
|
367
362
|
|
|
368
363
|
# 14. Итоговый checklist пользователя
|
|
369
364
|
|
|
370
|
-
- beta.12.
|
|
365
|
+
- beta.12.9 exact package и новый bundled gateway установлены;
|
|
371
366
|
- новый Coordinator chat не является fork старого Milestone;
|
|
372
367
|
- bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
|
|
373
368
|
- Discovery не materialized при blocking unknowns;
|
|
@@ -380,5 +375,6 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
|
|
|
380
375
|
- downstream predecessor recovery, если рекламировался, сохранил worktree и завершился новым Plan authority;
|
|
381
376
|
- active-proof package bridge, если понадобился, зарегистрировал только exact dependency HEAD перед recovery;
|
|
382
377
|
- stranded-replan bridge, если понадобился, завершился новым Plan и полным Step checks/review, а не только сменой navigation;
|
|
378
|
+
- historical-Step recovery, если рекламировался, сохранил exact accepted commit и довёл текущий Step до обычного `step-complete` без history rewrite;
|
|
383
379
|
- split-required остановился без replacement mutations;
|
|
384
380
|
- 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.9
|
|
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:
|
|
7
|
-
subject: Технический контракт Codex Workflow V2 beta.12.
|
|
6
|
+
date: 30 августа 2026
|
|
7
|
+
subject: Технический контракт Codex Workflow V2 beta.12.9
|
|
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.9 | Значение |
|
|
17
17
|
|---|---|
|
|
18
|
-
| npm package | `codex-workflow-v2@2.0.0-beta.12.
|
|
18
|
+
| npm package | `codex-workflow-v2@2.0.0-beta.12.9` |
|
|
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.9 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/bundle, derived Worker actor, credential replacement, Human-gate lease release |
|
|
48
48
|
| Reviews | strict reviewer, Step strict review, continuable remediation, evidence-bound fix/replan routing |
|
|
49
|
-
| Recovery | Task-local dependency provenance, plan integrity, downstream-proof predecessor invalidation, remediation mode, legacy stop override, append-only stop-rebind chain, corrective yield/replan journals |
|
|
49
|
+
| Recovery | Task-local dependency provenance, historical Step provenance, plan integrity, downstream-proof predecessor invalidation, remediation mode, legacy stop override, append-only stop-rebind chain, corrective yield/replan journals |
|
|
50
50
|
| Replacement | `structural-task-replacement-disabled-v1` |
|
|
51
51
|
|
|
52
52
|
Handshake incompatibility прекращает работу. Запуск global package, `latest`, mutable range или соседней
|
|
@@ -381,6 +381,26 @@ fresh `next` рекламирует lease-bound `task downstream-proof-recover`
|
|
|
381
381
|
remainder и пройти fresh Plan Risk Audit и execution authorization. Unrelated/non-predecessor file,
|
|
382
382
|
strict-review evidence, unregistered commit, branch mismatch или damaged sidecar возвращают `doctor`.
|
|
383
383
|
|
|
384
|
+
# 13.3. beta.12.9 historical Step provenance
|
|
385
|
+
|
|
386
|
+
Corrective replan теперь сохраняет evidence commits Steps, исключённых replacement Plan, в
|
|
387
|
+
`invalidatedStepCommits`. Это предотвращает новый unregistered-history blocker без переноса завершённого
|
|
388
|
+
Step в новый Plan.
|
|
389
|
+
|
|
390
|
+
Для уже существующего stranded state fresh `next` допускает только один из двух bounded routes:
|
|
391
|
+
|
|
392
|
+
- `task historical-step-provenance-preflight/recover`, если beta.12.9 dependency HEAD уже зарегистрирован;
|
|
393
|
+
- `update historical-step-dependency-preflight/recover`, если dependency-only beta.12.9 commit ещё
|
|
394
|
+
является единственным unregistered HEAD.
|
|
395
|
+
|
|
396
|
+
Core требует один active Step, dirty paths только в его `allowedWrites`, отсутствие leases/transactions,
|
|
397
|
+
ровно один omitted product commit, полный hash-valid strict Step Review с `passed`, verified reviewer
|
|
398
|
+
attestation и прежний hash-bound `final_acceptance` того же Plan. Update-route дополнительно связывает
|
|
399
|
+
exact `HEAD^`/`HEAD`, package/version surfaces и SHA-256 dirty worktree. Recovery не переписывает Git,
|
|
400
|
+
не меняет product bytes и не возвращает старый Step в Plan; он записывает historical authority и, для
|
|
401
|
+
update-route, dependency provenance в одной Task revision. Fresh `status -> next` после transition
|
|
402
|
+
должен вернуть обычный credential/`task step-complete` flow текущего Step.
|
|
403
|
+
|
|
384
404
|
# 14. P04-A structural replacement boundary
|
|
385
405
|
|
|
386
406
|
Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
|
|
@@ -443,12 +463,12 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
|
|
|
443
463
|
После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
|
|
444
464
|
не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
|
|
445
465
|
|
|
446
|
-
# 18. Public command surface beta.12.
|
|
466
|
+
# 18. Public command surface beta.12.9
|
|
447
467
|
|
|
448
468
|
| Область | Actions |
|
|
449
469
|
|---|---|
|
|
450
470
|
| System | `doctor`, `status`, `next`, `gateway handshake`, `locks` |
|
|
451
|
-
| Update | `preflight`, `rescue-preflight`, dependency provenance, downstream-proof dependency bridge, downstream-proof replan update/dependency bridge |
|
|
471
|
+
| Update | `preflight`, `rescue-preflight`, dependency provenance, historical-Step dependency bridge, downstream-proof dependency bridge, downstream-proof replan update/dependency bridge |
|
|
452
472
|
| Project memory | `scan`, `show`, `status`, `approve`, `reconcile` |
|
|
453
473
|
| Delegation | `prepare`, `grant`, `list`, `show`, `revoke` |
|
|
454
474
|
| Graph | `prepare`, `status`, `refresh-request`, `bind`, `fallback` |
|
|
@@ -458,7 +478,7 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
|
|
|
458
478
|
| Task execution | `start`, `run`, `step-complete`, `submit`, `result-set`, `accept`, `sync-base`, `merge`, `merge-confirm` |
|
|
459
479
|
| C1 | `handoff[-prepare/-replace/-show]`, `claim`, `writer-credential-replace`, `handback[-create]` |
|
|
460
480
|
| Review | review/step-review packet, launch, sealed record и record actions |
|
|
461
|
-
| Corrective | decision/recovery, plan-integrity, downstream-proof-recover/replan-recover, remediation-mode, stop-override prepare/apply, yield и corrective-replan actions |
|
|
481
|
+
| Corrective | decision/recovery, plan-integrity, historical-step-provenance preflight/recover, downstream-proof-recover/replan-recover, remediation-mode, stop-override prepare/apply, yield и corrective-replan actions |
|
|
462
482
|
| Replacement | `replacement-materialize` retained, но всегда disabled в P04-A |
|
|
463
483
|
|
|
464
484
|
Exact options берутся из fresh `next`; command help используется только когда
|
|
@@ -468,10 +488,10 @@ Exact options берутся из fresh `next`; command help используе
|
|
|
468
488
|
|
|
469
489
|
Перед package update project-local `update preflight` должен вернуть `safe=true`: clean checkout, нет
|
|
470
490
|
running Step и active/stale writer lease. Исключения — документированный alpha.7 rescue, beta.12.6
|
|
471
|
-
active-downstream-proof bridge
|
|
472
|
-
общего разрешения dirty update.
|
|
491
|
+
active-downstream-proof bridge, beta.12.7 exact stranded-replan bridge и beta.12.9 historical-Step
|
|
492
|
+
dependency bridge; все они fail-closed и не дают общего разрешения dirty update.
|
|
473
493
|
|
|
474
|
-
Перед beta.12.
|
|
494
|
+
Перед beta.12.9 tag обязательны `npm ci`, `npm run validate`, `npm run pack:check`,
|
|
475
495
|
`npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
|
|
476
496
|
`npm run docs:pdf:check`, `npm run release:check` с exact tag binding и validation
|
|
477
497
|
append-only real-agent lifecycle log.
|
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.9, 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;
|
|
@@ -48,6 +48,12 @@ For beta.12.8, the release gate also relies on `npm run release:check` to fail i
|
|
|
48
48
|
revision-26 fixture, or pending/corrupt-review rejection regressions are absent.
|
|
49
49
|
- dependency recovery again requires Task-local manifest/lock fields to equal the Milestone base,
|
|
50
50
|
or a candidate commit can alter any non-Workflow dependency payload.
|
|
51
|
+
- corrective replan drops completed Step evidence from accepted Task history, or an already-stranded
|
|
52
|
+
Task can register arbitrary/unreviewed history instead of one exact passed and previously accepted
|
|
53
|
+
Step commit.
|
|
54
|
+
- beta.12.9 cannot install through an exact dependency-only base/Task transport while preserving the
|
|
55
|
+
active Step worktree, or that compatibility route fails to bind the dependency HEAD, historical
|
|
56
|
+
commit, current Plan/Step, dirty paths/content hash, and absence of leases/transactions.
|
|
51
57
|
- the read-only Milestone progress projection, replacement regression, project-monotonic chat
|
|
52
58
|
registry, title fallback/readback, or long-Cyrillic multi-attempt E2E evidence is absent.
|
|
53
59
|
- bounded first-failure Plan-integrity recovery, exact failed-remediation/manifest/worktree
|
|
@@ -59,6 +59,36 @@ 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.9 для Step commit, потерянного corrective Plan
|
|
63
|
+
|
|
64
|
+
Если активный corrective Step сохраняет допустимый dirty worktree, а `task step-complete` обнаруживает
|
|
65
|
+
ровно один старый product commit, beta.12.9 не требует переписывать Git. Пакет поддерживает два
|
|
66
|
+
строго ограниченных входа в один и тот же recovery:
|
|
67
|
+
|
|
68
|
+
- если beta.12.9 уже зарегистрирована, свежий `next` рекламирует
|
|
69
|
+
`task historical-step-provenance-recover`;
|
|
70
|
+
- если для установки beta.12.9 на Milestone base и Task branch уже созданы ровно dependency-only
|
|
71
|
+
commits, свежий `next` рекламирует `update historical-step-dependency-recover`. Этот переход
|
|
72
|
+
атомарно регистрирует новый dependency HEAD и сохраняет authority старого Step commit.
|
|
73
|
+
|
|
74
|
+
В обоих случаях Core сам доказывает для старого SHA полную hash-valid strict Step Review цепочку с
|
|
75
|
+
решением `passed`, verified reviewer isolation и совпадающий прежний `final_acceptance`. Update-route
|
|
76
|
+
дополнительно требует exact target version на declared/locked/installed/current-branch/base surfaces,
|
|
77
|
+
dependency commit только из `package.json` и `package-lock.json`, а также неизменный hash активного
|
|
78
|
+
dirty worktree относительно read-only assessment.
|
|
79
|
+
|
|
80
|
+
Сначала выполните read-only `task historical-step-provenance-preflight --id <TASK-ID>`. Продолжайте
|
|
81
|
+
только при `eligible=true`, точных Task revision, Plan/Brief/HEAD и commit SHA, отсутствии leases,
|
|
82
|
+
transactions и Core operations, а также dirty paths строго внутри `allowedWrites` единственного
|
|
83
|
+
активного Step. Recover принимает exact SHA, actor и содержательную reason, добавляет SHA в
|
|
84
|
+
`invalidatedStepCommits` и записывает источник прежнего acceptance. Product bytes, HEAD и текущий
|
|
85
|
+
Plan не меняются; старый Step не возвращается в Plan. После recovery обязательны последовательные
|
|
86
|
+
`status` и `next`, затем обычный credential route и `task step-complete` текущего Step.
|
|
87
|
+
|
|
88
|
+
Несколько unknown commits, pending/failed review, несовпадающий Plan прежнего acceptance,
|
|
89
|
+
повреждённый sidecar, посторонний dirty path или lease являются hard stop. Запрещено заменять этот
|
|
90
|
+
переход rebase/reset/amend, ручным `systemCommits` или переносом старого Step в текущий Plan.
|
|
91
|
+
|
|
62
92
|
### Исключение beta.12.6 для активного downstream proof
|
|
63
93
|
|
|
64
94
|
Обычный `update preflight` по-прежнему правильно запрещает обновление при running Step и dirty
|
|
@@ -1,103 +1,104 @@
|
|
|
1
|
-
# V2 beta.12.
|
|
1
|
+
# V2 beta.12.9 Validation Report
|
|
2
2
|
|
|
3
|
-
Release candidate `2.0.0-beta.12.
|
|
3
|
+
Release candidate `2.0.0-beta.12.9` was validated on 2026-08-30 (Europe/Moscow) with
|
|
4
4
|
Node.js 24.17.0.
|
|
5
5
|
|
|
6
6
|
## Automated release evidence
|
|
7
7
|
|
|
8
8
|
- `npm ci` completed from the exact lockfile with 0 reported vulnerabilities.
|
|
9
|
-
- `npm run validate` passed typecheck and `
|
|
10
|
-
cancellations, or todos in 1,
|
|
11
|
-
- The focused
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- `npm run pack:check` built the exact beta.12.
|
|
9
|
+
- `npm run validate` passed typecheck and `343/343` sequential tests with no failures, skips,
|
|
10
|
+
cancellations, or todos in 1,894,344.070542 ms.
|
|
11
|
+
- The focused Signal-shaped E2E proves both recovery entry points. It preserves the active dirty
|
|
12
|
+
worktree and HEAD, registers the exact historical Step commit, reaches fresh
|
|
13
|
+
`task step-complete`, completes that Step with a new Core-owned commit, and validates the resulting
|
|
14
|
+
Task history.
|
|
15
|
+
- Negative cases reject pending or damaged strict review, absent final acceptance, multiple or wrong
|
|
16
|
+
commits, unrelated dirty paths, changed dirty content, active/stale leases, transactions, version
|
|
17
|
+
divergence, and a dependency candidate wider than package/lock.
|
|
18
|
+
- Corrective-replan executor tests prove that future replacement Plans retain evidence commits of
|
|
19
|
+
omitted completed Steps in `invalidatedStepCommits`.
|
|
20
|
+
- `npm run pack:check` built the exact beta.12.9 package with 278 files, 1.0 MB packed and 4.1 MB
|
|
21
21
|
unpacked. The initial sandboxed invocation could not write the user npm cache (`EPERM`); the exact
|
|
22
22
|
authorized retry passed.
|
|
23
23
|
- `npm run smoke:downstream` packed and installed the tarball in a disposable consumer project and
|
|
24
24
|
returned `ok=true`. The sandboxed attempt could not resolve the npm registry (`ENOTFOUND`); the
|
|
25
25
|
exact network-authorized retry passed.
|
|
26
26
|
- `npm run plugin:check` passed for bundled gateway
|
|
27
|
-
`0.1.0+codex.
|
|
28
|
-
|
|
29
|
-
- `npm run
|
|
30
|
-
- `RELEASE_TAG=v2.0.0-beta.12.8 npm run release:check` and `git diff --check` passed.
|
|
27
|
+
`0.1.0+codex.20260830183000`.
|
|
28
|
+
- `npm run docs:pdf:check` reported an empty stale set and exact beta.12.9 package binding.
|
|
29
|
+
- `RELEASE_TAG=v2.0.0-beta.12.9 npm run release:check`, JSON parsing and `git diff --check` passed.
|
|
31
30
|
|
|
32
|
-
## Root cause corrected by beta.12.
|
|
31
|
+
## Root cause corrected by beta.12.9
|
|
33
32
|
|
|
34
|
-
`
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
`repair-required / STALE_WRITER_LEASE` instead of `task accept`.
|
|
33
|
+
The corrective-replan paths replaced `task.steps` but did not preserve evidence commits belonging to
|
|
34
|
+
completed Steps omitted from the new Plan. Git correctly retained those commits, while Task history
|
|
35
|
+
authority no longer named them. A later `task step-complete` therefore rejected a legitimate,
|
|
36
|
+
previously reviewed and accepted commit as unregistered history.
|
|
39
37
|
|
|
40
|
-
Increasing
|
|
41
|
-
review
|
|
38
|
+
Increasing implementation or review attempts cannot correct this condition. The historical Step had
|
|
39
|
+
already passed strict review and final acceptance; the defect was loss of provenance during Plan
|
|
40
|
+
replacement.
|
|
42
41
|
|
|
43
42
|
## Implemented lifecycle contract
|
|
44
43
|
|
|
45
|
-
-
|
|
46
|
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
-
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
44
|
+
- Both legacy `setTaskPlan` and journaled corrective-replan execution now retain omitted completed
|
|
45
|
+
Step evidence commits in `invalidatedStepCommits`.
|
|
46
|
+
- `task historical-step-provenance-preflight/recover` repairs an already-installed beta.12.9 state
|
|
47
|
+
only when Core proves exactly one omitted commit, one active Step, confined dirty paths, a complete
|
|
48
|
+
hash-valid passed strict Step Review chain, verified reviewer isolation, and matching prior
|
|
49
|
+
hash-bound final acceptance.
|
|
50
|
+
- `update historical-step-dependency-preflight/recover` handles installation itself when the exact
|
|
51
|
+
beta.12.9 dependency-only commit is the unregistered HEAD. It binds `HEAD^`, dependency `HEAD`, all
|
|
52
|
+
version surfaces, active Plan/Step, historical SHA, dirty paths/content hash, and the absence of
|
|
53
|
+
leases or pending operations.
|
|
54
|
+
- The update transition records the dependency commit and retained historical commit in one Task
|
|
55
|
+
revision. Neither recovery rewrites Git, changes product bytes, adopts the old completed Step into
|
|
56
|
+
the current Plan, or weakens ordinary strict review.
|
|
57
|
+
- Fresh `next` advertises these routes before ordinary dependency recovery and returns to the normal
|
|
58
|
+
credential/`task step-complete` flow after successful registration.
|
|
59
|
+
- The public handshake exposes `historical-step-provenance-recovery-v1`.
|
|
57
60
|
|
|
58
61
|
## Exact Signal diagnosis evidence
|
|
59
62
|
|
|
60
|
-
At
|
|
61
|
-
beta.12.
|
|
62
|
-
`
|
|
63
|
-
`
|
|
64
|
-
|
|
65
|
-
and Evidence hash was `85f3cb5c16e039ebf40971f88a4388fe1812ef37be8d6b195451aa6a73640c54`.
|
|
66
|
-
Repository-level `next` returned only `locks repair` for the expired lease owned by the Task worker.
|
|
63
|
+
At release-candidate validation time the Signal project
|
|
64
|
+
`/Users/home-pc/htdocs/projects/signal_v4` was on exact beta.12.8 with Task
|
|
65
|
+
`TASK-01M0WXJAD4GZGVNRJ284ND95C6` at revision 136 and status `in_progress`. Current Plan hash was
|
|
66
|
+
`1ba67296f352cb67fa4d46c3ec9cd2ee2f50059903a5fffc7b0b2198f6dbae4e`; HEAD was
|
|
67
|
+
`272d6258e4ce169aa9f5cf2b5a4de29970d82eb7`.
|
|
67
68
|
|
|
68
|
-
The
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
The active Step `STEP-004-DIRECT-LOGIN-PRIVILEGE-DENIAL` had exactly five dirty files, all inside its
|
|
70
|
+
`allowedWrites`. Historical commit `f7ba8533314ee27f176968a6314bf3df40285ef2` had a passed strict
|
|
71
|
+
Step Review and prior final acceptance, but was absent from current Step evidence and retained
|
|
72
|
+
history authority. No active/stale lease, pending/corrupt transaction, or Core operation remained.
|
|
73
|
+
Milestone progress was `2/8` merged Tasks and T04 remained blocked by T03.
|
|
74
|
+
|
|
75
|
+
The recurring Signal audit automation that had created an unrelated dirty journal was paused, and
|
|
76
|
+
its latest journal was archived outside the checkout with matching SHA-256. The release process did
|
|
77
|
+
not rewrite Signal history or mutate its five product files. Live package transport and recovery are
|
|
78
|
+
separate post-publication actions and must follow the exact advertised beta.12.9 route.
|
|
72
79
|
|
|
73
80
|
## PDF release documentation evidence
|
|
74
81
|
|
|
75
|
-
- All three tracked Russian PDFs were regenerated from the beta.12.
|
|
82
|
+
- All three tracked Russian PDFs were regenerated from the beta.12.9 Markdown sources.
|
|
76
83
|
- Architecture is 8 pages, the delegated chat-only guide is 9 pages, and the technical reference is
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
84
|
+
12 pages. All pages were rendered to PNG contact sheets; changed recovery/update pages were also
|
|
85
|
+
inspected at full page resolution.
|
|
86
|
+
- Titles, version headers, Cyrillic text, tables, command names, margins, page footers and section
|
|
87
|
+
transitions have no visible clipping, overlap, unreadable content, or orphaned tail page.
|
|
81
88
|
|
|
82
89
|
## Existing boundaries and non-claims
|
|
83
90
|
|
|
84
|
-
-
|
|
85
|
-
|
|
86
|
-
-
|
|
87
|
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
Confidence is high for the package implementation, negative credential behavior, complete claimed
|
|
100
|
-
Task continuation, tarball, downstream installation, plugin, and documentation. Confidence that the
|
|
101
|
-
live Signal Milestone will continue is conditional on completing the exact legacy stale-lease repair,
|
|
102
|
-
observing a safe update preflight, installing the published beta.12.8 package, and following fresh
|
|
103
|
-
project-local `status -> next` without skipping the Human gate.
|
|
91
|
+
- Recovery is intentionally unavailable for arbitrary or multiple commits, pending/failed review,
|
|
92
|
+
missing final acceptance, post-assessment drift, unrelated dirty paths, or active ownership.
|
|
93
|
+
- Protocol version remains 2 and state schema remains 2; the optional audit fields are backward
|
|
94
|
+
compatible and no semantic migration is introduced.
|
|
95
|
+
- Structural replacement remains disabled. beta.12.9 does not implement P04-B, topology rewiring,
|
|
96
|
+
completed-Step adoption, or a wider delegation surface.
|
|
97
|
+
- No Git commit, tag, remote push, npm publication, Signal dependency transport, or Signal Task
|
|
98
|
+
completion is claimed by this pre-publication validation report.
|
|
99
|
+
|
|
100
|
+
Confidence is high for the package implementation, prevention path, bounded legacy recovery,
|
|
101
|
+
dependency-install compatibility, negative evidence gates, complete Step continuation, tarball,
|
|
102
|
+
downstream installation, plugin and documentation. Live Signal confidence remains conditional on
|
|
103
|
+
publishing beta.12.9, transporting only package/lock commits to its active base and Task branch, and
|
|
104
|
+
following fresh project-local `status -> next` without manual history or state edits.
|
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.20260830183000",
|
|
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"
|
|
@@ -33,6 +33,15 @@
|
|
|
33
33
|
`retainedHistoricalCommits`.
|
|
34
34
|
Task-local manifest/lock fields from recorded history may differ from the base, but the candidate
|
|
35
35
|
commit must preserve them exactly while changing only the Workflow dependency entries.
|
|
36
|
+
- `task historical-step-provenance-preflight --id <TASK-ID>` is read-only. The matching
|
|
37
|
+
`task historical-step-provenance-recover` is available only for one unexpected product commit
|
|
38
|
+
with an intact passed strict-review chain, matching prior final acceptance, no lease or pending
|
|
39
|
+
operation, and dirty files confined to the current active Step. It retains historical authority
|
|
40
|
+
without changing Git, worktree bytes, or the current Plan.
|
|
41
|
+
- `update historical-step-dependency-preflight/recover` handles the same proof when the beta.12.9
|
|
42
|
+
dependency-only commit is the unregistered HEAD. It binds the exact dependency candidate and the
|
|
43
|
+
reviewed historical Step commit in one recovery record, preserves active product bytes, and then
|
|
44
|
+
requires fresh `status` and `next`.
|
|
36
45
|
- `task stop-override-prepare` is a read-only Human gate for the exact beta.11 attempt-four stop
|
|
37
46
|
shape. `task stop-override-apply` requires the same Task revision, Step, actor, reason, Plan, HEAD,
|
|
38
47
|
evidence binding, and returned `SOO-*` code in a later user turn. It appends evidence without
|