codex-workflow-v2 2.0.0-beta.12.11 → 2.0.0-beta.12.12
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 +5 -4
- package/dist/src/alpha6/mechanical-feasibility.js +28 -12
- package/dist/src/alpha6/mechanical-feasibility.js.map +1 -1
- package/dist/src/alpha6/npm-check-contract.d.ts +11 -0
- package/dist/src/alpha6/npm-check-contract.js +36 -0
- package/dist/src/alpha6/npm-check-contract.js.map +1 -0
- package/dist/src/alpha6/plan-integrity.js +82 -26
- package/dist/src/alpha6/plan-integrity.js.map +1 -1
- package/dist/src/alpha6/remediation.js +88 -40
- package/dist/src/alpha6/remediation.js.map +1 -1
- package/dist/src/cli.js +25 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +37 -3
- package/dist/src/dependency-provenance.d.ts +3 -3
- package/dist/src/dependency-provenance.js +21 -6
- package/dist/src/dependency-provenance.js.map +1 -1
- package/dist/src/lifecycle/corrective-replan.js +1 -1
- package/dist/src/lifecycle/corrective-replan.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 +222 -12
- 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 +14 -5
- package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +17 -7
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +34 -10
- package/docs/release.md +3 -2
- package/docs/updating-existing-project.md +25 -0
- package/docs/validation-report.md +117 -96
- package/package.json +1 -1
- package/schemas/corrective-decision-event.schema.json +57 -10
- package/schemas/task.schema.json +23 -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.12
|
|
3
3
|
subtitle: Источники истины, lifecycle, роли, delegation, зависимости Tasks и границы доверия
|
|
4
4
|
part: Часть 1 из 3 | Архитектура
|
|
5
5
|
document_version: 2.0
|
|
6
6
|
date: 31 августа 2026
|
|
7
|
-
subject: Архитектура и границы Codex Workflow V2 beta.12.
|
|
7
|
+
subject: Архитектура и границы Codex Workflow V2 beta.12.12
|
|
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.12 гарантирует
|
|
22
22
|
|
|
23
23
|
- exact project-local npm package и совместимый handshake до lifecycle действий;
|
|
24
24
|
- Discovery до materialization Task или Milestone;
|
|
@@ -41,7 +41,7 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
|
|
|
41
41
|
один additive remediation Task без нового Human gate; Core сохраняет Milestone semantics и выводит
|
|
42
42
|
authority из текущей Milestone authorization и exact audit evidence.
|
|
43
43
|
|
|
44
|
-
## 1.2. Что beta.12.
|
|
44
|
+
## 1.2. Что beta.12.12 не гарантирует
|
|
45
45
|
|
|
46
46
|
- правильность продуктовой идеи или автоматически выбранного provider Task;
|
|
47
47
|
- semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
|
|
@@ -314,6 +314,15 @@ Workflow pin, Core переносит reconcile и `corrective-derived` approval
|
|
|
314
314
|
transaction. Изменение любого другого Knowledge source, classification, gap или conflict fail-closed
|
|
315
315
|
остаётся в обычном явном approval flow.
|
|
316
316
|
|
|
317
|
+
beta.12.12 закрывает доказанный runtime Plan-integrity gap. Mechanical feasibility теперь статически
|
|
318
|
+
распознаёт repository-local `node <runner> affected`, когда исходник runner явно требует selector,
|
|
319
|
+
и блокирует authorization для `npm run <script>` без `--base`, `--head` или `--files`. Для уже начатой
|
|
320
|
+
Task recovery связывает не только первую, а всю последовательную checks-failed history, точный Plan,
|
|
321
|
+
manifest/runner hashes, HEAD и dirty allowlist. Exact beta.12.11 update bridge сохраняет product bytes,
|
|
322
|
+
регистрирует только dependency commit и атомарно обновляет Knowledge, если изменился только Workflow pin.
|
|
323
|
+
Результат — один `replan-required` decision и обычный corrective replan с исполняемой check command;
|
|
324
|
+
повтор старой команды, ручной commit product files и state editing не допускаются.
|
|
325
|
+
|
|
317
326
|
Docker socket `EPERM` в sandbox не является доказательством сломанного daemon. Gateway один раз
|
|
318
327
|
повторяет exact health probe или Plan check с sandbox escalation без расходования remediation attempt.
|
|
319
328
|
Restart Docker Desktop требует отдельного разрешения и допустим только после escalated daemon failure.
|
|
@@ -323,7 +332,7 @@ Restart Docker Desktop требует отдельного разрешения
|
|
|
323
332
|
# 10. Operational checklist
|
|
324
333
|
|
|
325
334
|
- exact package version установлен, bundled gateway соответствует release и переустановлен;
|
|
326
|
-
- handshake подтверждает protocol 2, state schema 2 и beta.12.
|
|
335
|
+
- handshake подтверждает protocol 2, state schema 2 и beta.12.12 capabilities;
|
|
327
336
|
- каждый mutation следует свежему `status -> next` и exact option contract;
|
|
328
337
|
- Docker permission failure сначала классифицируется как sandbox boundary, а не как infra retry;
|
|
329
338
|
- 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.12 путь от нового Discovery до принятого Milestone без ручного CLI
|
|
4
4
|
part: Часть 2 из 3 | Практика
|
|
5
5
|
document_version: 2.0
|
|
6
6
|
date: 31 августа 2026
|
|
7
|
-
subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.
|
|
7
|
+
subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.12
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# 1. Рабочая модель beta.12.
|
|
10
|
+
# 1. Рабочая модель beta.12.12
|
|
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.12 как точную 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.12 должен сообщать `packageVersion=2.0.0-beta.12.12`, `protocolVersion=2`,
|
|
60
60
|
`stateSchemaVersion=2`, dependency DAG, initial Plan transaction, mechanical feasibility,
|
|
61
61
|
Milestone autonomy и structural replacement disabled capabilities.
|
|
62
62
|
|
|
@@ -117,7 +117,7 @@ delegate, scope, transitions и expiry. DGR передаётся только е
|
|
|
117
117
|
```text
|
|
118
118
|
НОВЫЙ COORDINATOR CHAT
|
|
119
119
|
|
|
120
|
-
Проведи новый Milestone через Codex Workflow V2 beta.12.
|
|
120
|
+
Проведи новый Milestone через Codex Workflow V2 beta.12.12 в delegated режиме.
|
|
121
121
|
Repository: <ABSOLUTE-REPOSITORY-ROOT>.
|
|
122
122
|
Milestone ID: AUTO.
|
|
123
123
|
Delegate actor: agent:milestone-coordinator.
|
|
@@ -350,6 +350,16 @@ binding dirty set. Recover регистрирует только dependency HEAD
|
|
|
350
350
|
Recover сохраняет product bytes; затем обязательны `status -> next -> task step-complete`. Если package
|
|
351
351
|
уже зарегистрирован, используйте advertised `task historical-step-provenance-preflight/recover`.
|
|
352
352
|
|
|
353
|
+
Для beta.12.11 Task, застрявшей на selector-required `npm run validate:affected` без selector, сначала
|
|
354
|
+
остановите Worker и дождитесь отсутствия active/stale lease. Внешний exact beta.12.12 runner допускается
|
|
355
|
+
только для read-only `update plan-integrity-update-preflight`; требуйте `eligible=true`, exact failed Step,
|
|
356
|
+
полную remediation history и неизменённый dirty allowlist. После единственного dependency-only commit
|
|
357
|
+
на base и Task branch fresh repository-local `next` должен рекламировать
|
|
358
|
+
`update plan-integrity-dependency-recover`. Recovery атомарно регистрирует commit и dependency-only
|
|
359
|
+
Knowledge refresh. Затем выполните advertised credential recovery, `task plan-integrity-recover` и
|
|
360
|
+
`task corrective-yield`. Replacement Plan меняет только неисполняемую check на
|
|
361
|
+
`npm run validate:affected -- --files=<Step allowedWrites>` и проходит fresh Plan Risk Audit до нового run.
|
|
362
|
+
|
|
353
363
|
Для exact beta.12.6 stranded-replan shape сначала нужен eligible read-only source preflight с exact
|
|
354
364
|
revision/HEAD/dirty hash. Затем два beta.12.7 dependency-only commits и advertised dependency/replan
|
|
355
365
|
recoveries. После Knowledge refresh `next` обязан остаться на `task plan-set`; новый единый Step должен
|
|
@@ -382,7 +392,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
|
|
|
382
392
|
|
|
383
393
|
# 14. Итоговый checklist пользователя
|
|
384
394
|
|
|
385
|
-
- beta.12.
|
|
395
|
+
- beta.12.12 exact package и новый bundled gateway установлены;
|
|
386
396
|
- новый Coordinator chat не является fork старого Milestone;
|
|
387
397
|
- bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
|
|
388
398
|
- Discovery не materialized при blocking unknowns;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Codex Workflow V2: технический справочник beta.12.
|
|
2
|
+
title: Codex Workflow V2: технический справочник beta.12.12
|
|
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: 31 августа 2026
|
|
7
|
-
subject: Технический контракт Codex Workflow V2 beta.12.
|
|
7
|
+
subject: Технический контракт Codex Workflow V2 beta.12.12
|
|
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.12 | Значение |
|
|
17
17
|
|---|---|
|
|
18
|
-
| npm package | `codex-workflow-v2@2.0.0-beta.12.
|
|
18
|
+
| npm package | `codex-workflow-v2@2.0.0-beta.12.12` |
|
|
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.12 capabilities:
|
|
41
41
|
|
|
42
42
|
| Группа | Capabilities |
|
|
43
43
|
|---|---|
|
|
@@ -445,6 +445,29 @@ Materialization тогда дополнительно пишет active Knowledg
|
|
|
445
445
|
`corrective-derived` в той же Project transaction. Это не разрешает автоматически принимать README,
|
|
446
446
|
docs, commands, classification, authority, gaps или conflicts.
|
|
447
447
|
|
|
448
|
+
# 13.5. beta.12.12 selector-contract Plan-integrity recovery
|
|
449
|
+
|
|
450
|
+
Analyzer `wf2.root-npm-script-arguments@1` читает root `package.json` и только repository-local runner
|
|
451
|
+
из evaluated Git HEAD. Узкий доказуемый contract — script `node <safe-relative-path> affected`, исходник
|
|
452
|
+
которого использует `process.argv.slice(3)`, содержит selector literals `--base`, `--head`, `--files` и
|
|
453
|
+
явный `Affected mode requires` guard. Для такого script check без forwarded selector получает
|
|
454
|
+
`ROOT_NPM_SCRIPT_REQUIRED_SELECTOR_MISSING` и блокирует execution authorization. Произвольный shell или
|
|
455
|
+
нераспознанный runner остаётся `unverified`, а не объявляется ошибочным по догадке.
|
|
456
|
+
|
|
457
|
+
Legacy recovery принимает последовательную append-only history из одного или нескольких
|
|
458
|
+
`checks-failed` events при отсутствии corrective decision. Evidence v2 связывает каждый event ID/hash/
|
|
459
|
+
ordinal, Task revision, Plan/Step definition, manifest и runner hashes, Git HEAD, conflicts и SHA-256
|
|
460
|
+
dirty worktree. `task plan-integrity-recover` записывает один `replan-required` decision с
|
|
461
|
+
`triggeringAttemptCount = failures + 1` и полным `coveredEventIds`.
|
|
462
|
+
|
|
463
|
+
Если exact beta.12.12 package ещё не установлен, `update plan-integrity-update-preflight` проверяет
|
|
464
|
+
source beta.12.11, отсутствие leases/transactions и exact dirty allowlist. После dependency-only
|
|
465
|
+
transport `update plan-integrity-dependency-preflight/recover` регистрирует единственный HEAD как system
|
|
466
|
+
commit. Когда Knowledge drift объясняется только Workflow pin, та же Project transaction выполняет
|
|
467
|
+
corrective-derived reconcile/approval; прочий drift fail-closed. Product bytes не коммитятся и не
|
|
468
|
+
переносятся. Fresh route продолжается через credential replacement, `plan-integrity-recover`, yield и
|
|
469
|
+
corrective replan с selector-bearing check.
|
|
470
|
+
|
|
448
471
|
# 14. P04-A structural replacement boundary
|
|
449
472
|
|
|
450
473
|
Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
|
|
@@ -507,12 +530,12 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
|
|
|
507
530
|
После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
|
|
508
531
|
не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
|
|
509
532
|
|
|
510
|
-
# 18. Public command surface beta.12.
|
|
533
|
+
# 18. Public command surface beta.12.12
|
|
511
534
|
|
|
512
535
|
| Область | Actions |
|
|
513
536
|
|---|---|
|
|
514
537
|
| System | `doctor`, `status`, `next`, `gateway handshake`, `locks` |
|
|
515
|
-
| Update | `preflight`, `rescue-preflight`, dependency provenance, historical-Step dependency bridge, downstream-proof
|
|
538
|
+
| Update | `preflight`, `rescue-preflight`, dependency provenance, historical-Step dependency bridge, downstream-proof bridges, Plan-integrity update/dependency bridge |
|
|
516
539
|
| Project memory | `scan`, `show`, `status`, `approve`, `reconcile` |
|
|
517
540
|
| Delegation | `prepare`, `grant`, `list`, `show`, `revoke` |
|
|
518
541
|
| Graph | `prepare`, `status`, `refresh-request`, `bind`, `fallback` |
|
|
@@ -532,10 +555,11 @@ Exact options берутся из fresh `next`; command help используе
|
|
|
532
555
|
|
|
533
556
|
Перед package update project-local `update preflight` должен вернуть `safe=true`: clean checkout, нет
|
|
534
557
|
running Step и active/stale writer lease. Исключения — документированный alpha.7 rescue, beta.12.6
|
|
535
|
-
active-downstream-proof bridge, beta.12.7 exact stranded-replan bridge
|
|
536
|
-
dependency bridge; все они fail-closed и не дают общего разрешения
|
|
558
|
+
active-downstream-proof bridge, beta.12.7 exact stranded-replan bridge, beta.12.9 historical-Step
|
|
559
|
+
dependency bridge и beta.12.12 Plan-integrity bridge; все они fail-closed и не дают общего разрешения
|
|
560
|
+
dirty update.
|
|
537
561
|
|
|
538
|
-
Перед beta.12.
|
|
562
|
+
Перед beta.12.12 tag обязательны `npm ci`, `npm run validate`, `npm run test:signal-remediation-e2e`, `npm run pack:check`,
|
|
539
563
|
`npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
|
|
540
564
|
`npm run docs:pdf:check`, `npm run release:check` с exact tag binding и validation
|
|
541
565
|
append-only real-agent lifecycle log.
|
package/docs/release.md
CHANGED
|
@@ -28,7 +28,7 @@ The PDF check deterministically regenerates all three Russian documents from
|
|
|
28
28
|
`docs/pdf/sources`, binds the visible package version to the root manifest, and fails when any
|
|
29
29
|
tracked PDF is stale. Source and binary PDFs are one release unit.
|
|
30
30
|
|
|
31
|
-
For beta.12.
|
|
31
|
+
For beta.12.12, the release gate also relies on `npm run release:check` to fail if:
|
|
32
32
|
|
|
33
33
|
- canonical entity schema 2 shapes drift;
|
|
34
34
|
- protocol 2 is not the active public contract, or intact protocol-1 adoption evidence stops being readable through the bounded compatibility window;
|
|
@@ -57,7 +57,8 @@ For beta.12.11, the release gate also relies on `npm run release:check` to fail
|
|
|
57
57
|
commit, current Plan/Step, dirty paths/content hash, and absence of leases/transactions.
|
|
58
58
|
- the read-only Milestone progress projection, replacement regression, project-monotonic chat
|
|
59
59
|
registry, title fallback/readback, or long-Cyrillic multi-attempt E2E evidence is absent.
|
|
60
|
-
- bounded first-failure Plan-integrity recovery,
|
|
60
|
+
- bounded first- or repeated-failure Plan-integrity recovery, selector-required npm-check
|
|
61
|
+
feasibility, exact failed-remediation/manifest/worktree
|
|
61
62
|
bindings, or the no-synthetic-second-failure regression is absent.
|
|
62
63
|
- downstream proof cannot invalidate only completed transitive-predecessor authority while
|
|
63
64
|
preserving worktree/HEAD, yielding C1, and returning the same Task to fresh planning; or unrelated
|
|
@@ -22,6 +22,31 @@ state schema. Совпадение `stateSchemaVersion` до и после об
|
|
|
22
22
|
нужна. Для alpha.6 при `stateSchemaVersion: 2` применяется не migration, а sidecar-only
|
|
23
23
|
adoption posture.
|
|
24
24
|
|
|
25
|
+
### beta.12.12: неисполняемая Step check и сохранение текущей реализации
|
|
26
|
+
|
|
27
|
+
Новые Plans больше не могут получить execution authorization, если root npm script запускает
|
|
28
|
+
repository-local `affected` validator, сам validator явно требует `--base`, `--head` или `--files`,
|
|
29
|
+
а Step check не передаёт ни одного selector. Исправьте check в Plan, например
|
|
30
|
+
`npm run validate:affected -- --files=<allowedWrites>`; Worker и remediation attempt до этого не
|
|
31
|
+
запускаются.
|
|
32
|
+
|
|
33
|
+
Для Task, уже застрявшей на beta.12.11 после одного или нескольких одинаковых `checks-failed`,
|
|
34
|
+
используется только bounded bridge. Внешний exact beta.12.12 runner выполняет read-only
|
|
35
|
+
`update plan-integrity-update-preflight`; продолжение допустимо лишь при `eligible=true`, отсутствии
|
|
36
|
+
lease/transaction и точном dirty set внутри failed Step `allowedWrites`. Затем один dependency-only
|
|
37
|
+
commit (`package.json` и `package-lock.json`) должен оказаться и на Milestone base, и в Task history
|
|
38
|
+
без изменения product bytes. Fresh repository-local `next` рекламирует
|
|
39
|
+
`update plan-integrity-dependency-recover`; этот переход регистрирует dependency commit и, если
|
|
40
|
+
Knowledge drift вызван только Workflow pin в `package.json`, атомарно выполняет corrective-derived
|
|
41
|
+
Knowledge refresh без Human approval.
|
|
42
|
+
|
|
43
|
+
После регистрации Core связывает всю append-only цепочку failed attempts, текущий Plan, HEAD,
|
|
44
|
+
manifest, validator и SHA-256 dirty worktree. `task plan-integrity-recover` записывает один
|
|
45
|
+
`replan-required` decision для следующего ordinal. Затем следуйте fresh
|
|
46
|
+
`task corrective-yield -> task corrective-replan-*`; replacement Plan обязан сохранить Step и dirty
|
|
47
|
+
allowlist, но заменить check на исполняемую selector-bearing команду. Не коммитьте product files,
|
|
48
|
+
не редактируйте state и не повторяйте старую неисполняемую проверку.
|
|
49
|
+
|
|
25
50
|
### beta.12.11: audited remediation и dependency-only Knowledge refresh
|
|
26
51
|
|
|
27
52
|
После безопасного обновления существующий active Milestone может продолжить работу без пересоздания,
|
|
@@ -1,113 +1,134 @@
|
|
|
1
|
-
# V2 beta.12.
|
|
1
|
+
# V2 beta.12.12 Validation Report
|
|
2
2
|
|
|
3
|
-
Release candidate `2.0.0-beta.12.
|
|
3
|
+
Release candidate `2.0.0-beta.12.12` was validated on 2026-08-31 (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 exact lockfile
|
|
9
|
-
- `npm run validate`
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
- Package dry-run produced `codex-workflow-v2-2.0.0-beta.12.
|
|
22
|
-
packed and 4,
|
|
23
|
-
invocation encountered a root-owned user npm
|
|
24
|
-
temporary cache
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
- `npm run
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
8
|
+
- `npm ci` completed from the exact lockfile; the audit reported zero vulnerabilities.
|
|
9
|
+
- The first full `npm run validate` run found two compatibility regressions in the pre-existing
|
|
10
|
+
corrective-recovery suite. Plan-integrity preflight was made non-authoritative while a repairable
|
|
11
|
+
legacy remediation-history defect exists, and an old test was aligned with the intentional
|
|
12
|
+
corrective-yield-before-context-refresh priority. Both focused reproductions then passed.
|
|
13
|
+
- The mandatory second `npm run validate` passed typecheck and `348/348` sequential tests with no
|
|
14
|
+
failures, skips, cancellations, or todos in 2,149,397.21 ms.
|
|
15
|
+
- The full suite includes the beta.12.12 selector-contract E2E: four sequential failures of one
|
|
16
|
+
guarded Step, dependency-only update transport, exact compatibility registration, automatic
|
|
17
|
+
package-only Knowledge refresh, Plan-integrity recovery, corrective yield, and fresh corrective
|
|
18
|
+
replan without losing the Step worktree.
|
|
19
|
+
- `npm run test:signal-remediation-e2e` passed both focused scenarios (`2/2`). It still proves the
|
|
20
|
+
audited upstream-remediation route through a later Step and rejects unrelated Knowledge drift.
|
|
21
|
+
- Package dry-run produced `codex-workflow-v2-2.0.0-beta.12.12.tgz` with 281 files, 1,070,498 bytes
|
|
22
|
+
packed and 4,283,430 bytes unpacked. The tarball SHA-1 is
|
|
23
|
+
`349bcd371b09a2467496057166c78d879e99e937`. The first invocation encountered a root-owned user npm
|
|
24
|
+
cache (`EPERM`); the exact retry passed with an isolated temporary cache and no system permission
|
|
25
|
+
changes.
|
|
26
|
+
- `npm run smoke:downstream` built and installed that tarball in a disposable consumer project and
|
|
27
|
+
returned `ok=true`. The sandboxed attempt could not resolve npm (`ENOTFOUND`); the same command
|
|
28
|
+
passed with approved network access.
|
|
29
|
+
- `npm run plugin:check` passed for bundled gateway `0.1.0+codex.20260830183000`. The installed
|
|
30
|
+
Codex CLI exposes no `plugin validate` subcommand, so the repository validator plus successful
|
|
31
|
+
packaged downstream installation are the available plugin release evidence.
|
|
32
|
+
- `npm run docs:pdf:check` reported an empty stale set and exact beta.12.12 package binding.
|
|
33
|
+
- `RELEASE_TAG=v2.0.0-beta.12.12 npm run release:check` and `git diff --check` passed.
|
|
34
|
+
- `node scripts/validate-lifecycle-transcript.mjs --file
|
|
35
|
+
tests/fixtures/lifecycle-transcripts/valid-normal-sequence.jsonl` passed with four checked events;
|
|
36
|
+
the full validator suite also passed all positive and negative transcript fixtures.
|
|
37
|
+
|
|
38
|
+
## Root cause corrected
|
|
39
|
+
|
|
40
|
+
Signal Task `TASK-01M1B79C660YMNSRRZ236NTR1T` reached revision 12 with four recorded
|
|
41
|
+
`checks-failed` events. The approved Step check was `npm run validate:affected`, while the existing
|
|
42
|
+
repository script delegates to `tools/validation/run.mjs affected`, whose public contract requires at
|
|
43
|
+
least one of `--base`, `--head`, or `--files`. The command therefore failed before validation and could
|
|
44
|
+
not become successful through another implementation attempt.
|
|
45
|
+
|
|
46
|
+
Two Workflow gaps made the state non-recoverable:
|
|
47
|
+
|
|
48
|
+
1. mechanical feasibility proved that the npm script existed but did not verify the mandatory
|
|
49
|
+
selector contract of the repository-owned runner; and
|
|
50
|
+
2. bounded Plan-integrity recovery recognized only the first failed attempt with no corrective
|
|
51
|
+
decision, so it could not convert the already accumulated four-event history into a fresh Plan.
|
|
52
|
+
|
|
53
|
+
The primary defect was an invalid executable Plan contract plus an incomplete late-recovery route,
|
|
54
|
+
not insufficient Worker effort and not an attempt-count problem.
|
|
49
55
|
|
|
50
56
|
## Implemented lifecycle contract
|
|
51
57
|
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
`
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
executable
|
|
76
|
-
subsequent
|
|
77
|
-
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
58
|
+
- Mechanical feasibility now uses the versioned analyzer `wf2.root-npm-script-arguments@1`. It
|
|
59
|
+
conservatively recognizes only a root npm script whose command is a repository-relative Node
|
|
60
|
+
`affected` runner and whose source contains the established selector contract. A Plan check without
|
|
61
|
+
`--base`, `--head`, or `--files` is blocked when the runner is outside current/predecessor
|
|
62
|
+
`allowedWrites`; an explicit forwarded selector passes. Unsupported syntax remains `unverified`.
|
|
63
|
+
- Plan-integrity evidence schema v2 binds the current Task revision, Step and Plan hashes, every
|
|
64
|
+
sequential remediation event, package manifest and runner bytes, Git HEAD, dirty Step files, and a
|
|
65
|
+
canonical conflict hash. Existing v1 evidence remains readable.
|
|
66
|
+
- Recovery accepts one or more contiguous `checks-failed` events only when no corrective decision has
|
|
67
|
+
consumed them. It appends one `replan-required` decision at the next ordinal and covers the complete
|
|
68
|
+
failed history; it does not synthesize an extra failure.
|
|
69
|
+
- A published update from beta.12.11 is permitted only through the read-only
|
|
70
|
+
`update plan-integrity-update-preflight` proof. Transport may commit only `package.json` and
|
|
71
|
+
`package-lock.json` on the active Milestone base and carry that exact dependency commit to the Task
|
|
72
|
+
branch while preserving all product bytes.
|
|
73
|
+
- Fresh `next` then advertises `update plan-integrity-dependency-recover` only when current HEAD,
|
|
74
|
+
package version, parent commit, Task/Step/Plan, remediation IDs, dirty paths and their content hash,
|
|
75
|
+
absence of leases, and transaction state still match the preflight boundary.
|
|
76
|
+
- Dependency registration and a Project Knowledge refresh are one Project transaction. The refresh is
|
|
77
|
+
allowed without a Human gate only when the sole canonical drift is the exact Workflow pin in
|
|
78
|
+
`package.json`; any unrelated Knowledge change fails closed.
|
|
79
|
+
- The compatibility record is authority only for the exact post-update Plan-integrity recovery. A
|
|
80
|
+
fresh replacement Plan must bind the current Knowledge Map and replace the invalid check with an
|
|
81
|
+
executable selector-bearing command. Ordinary authorization, C1, Core commit, strict review, and
|
|
82
|
+
subsequent navigation remain mandatory.
|
|
83
|
+
- A repairable legacy remediation-mode defect outranks this new preflight. Plan-integrity assessment
|
|
84
|
+
reports itself ineligible and leaves `next` free to advertise the established
|
|
85
|
+
`task remediation-mode-recover` route.
|
|
86
|
+
- Handshake adds `plan-integrity-update-recovery-v1`; protocol and state schema remain `2/2`.
|
|
87
|
+
|
|
88
|
+
## Signal-shaped and negative evidence
|
|
89
|
+
|
|
90
|
+
The new synthetic E2E reproduces the real Signal boundary rather than testing a helper in isolation:
|
|
91
|
+
|
|
92
|
+
- beta.12.11 package/lock and approved Knowledge Map;
|
|
93
|
+
- an active claimed guarded Step with four distinct `checks-failed` events;
|
|
94
|
+
- the same missing selector contract as Signal;
|
|
95
|
+
- the exact allowlisted dirty worktree;
|
|
96
|
+
- a dependency-only beta.12.12 commit;
|
|
97
|
+
- automatic package-only Knowledge refresh and compatibility registration;
|
|
98
|
+
- writer credential replacement, Plan-integrity recovery, corrective yield, and fresh corrective
|
|
99
|
+
replan preparation.
|
|
100
|
+
|
|
101
|
+
Negative coverage rejects a runner inside the current Step write scope, unrelated dirty files,
|
|
102
|
+
tampered evidence, an active lease, wider dependency commits, changed worktree bytes, stale
|
|
103
|
+
Task/Plan/Step bindings, transaction conflicts, and unrelated Knowledge drift. Existing tests also
|
|
104
|
+
prove that Plan-integrity preflight cannot hide the older remediation-mode recovery route.
|
|
105
|
+
|
|
106
|
+
Live Signal mutation remains post-publication work. It must preserve the three current Worker files,
|
|
107
|
+
transport only package/lock, use fresh repository-local handshake/status/next before each mutation,
|
|
108
|
+
and follow only advertised recovery actions. No manual Workflow-state edit, history rewrite, Task
|
|
109
|
+
cancellation, duplicate Task, or replacement Milestone is authorized by this release.
|
|
91
110
|
|
|
92
111
|
## PDF release documentation evidence
|
|
93
112
|
|
|
94
|
-
- All three tracked Russian PDFs were regenerated from beta.12.
|
|
95
|
-
- Architecture is
|
|
96
|
-
13 pages. All
|
|
97
|
-
- Titles,
|
|
98
|
-
|
|
113
|
+
- All three tracked Russian PDFs were regenerated from beta.12.12 Markdown sources.
|
|
114
|
+
- Architecture is 9 pages, the delegated chat-only guide is 10 pages, and the technical reference is
|
|
115
|
+
13 pages. All 32 pages were rendered and visually inspected through contact sheets.
|
|
116
|
+
- Titles, version bindings, Cyrillic text, tables, code blocks, margins, footers and selector-recovery
|
|
117
|
+
sections show no clipping, overlap, or unreadable content.
|
|
99
118
|
|
|
100
119
|
## Existing boundaries and non-claims
|
|
101
120
|
|
|
102
|
-
- The
|
|
103
|
-
|
|
104
|
-
-
|
|
105
|
-
|
|
121
|
+
- The analyzer does not execute or infer arbitrary shell grammar and does not claim to understand
|
|
122
|
+
every repository validation framework.
|
|
123
|
+
- The compatibility route cannot change product files, Plan semantics, Milestone topology, Task
|
|
124
|
+
membership, dependency edges, completed-Step provenance, or unrelated Knowledge.
|
|
125
|
+
- The release does not make a failing implementation pass, approve a broken check, or increase retry
|
|
126
|
+
limits. It creates a bounded route to replace a mechanically impossible approved check.
|
|
106
127
|
- Protocol version remains 2 and state schema remains 2; no state migration is required.
|
|
107
|
-
- This report does not claim Git tag/push, npm publication
|
|
108
|
-
|
|
128
|
+
- This report does not claim Git commit/tag/push, npm publication, live Signal installation, or Task
|
|
129
|
+
completion before those operations receive their own readbacks.
|
|
109
130
|
|
|
110
|
-
Confidence is high for
|
|
111
|
-
transaction atomicity, regression compatibility,
|
|
131
|
+
Confidence is high for selector detection, repeated-failure recovery, update compatibility,
|
|
132
|
+
transaction atomicity, regression compatibility, package composition, downstream installation,
|
|
112
133
|
gateway and documentation. Live Signal confidence remains conditional on exact publication,
|
|
113
|
-
installation
|
|
134
|
+
installation, fresh Core readback, and completion of the previously blocked Step.
|
package/package.json
CHANGED