codex-workflow-v2 2.0.0-beta.12.17 → 2.0.0-beta.12.19

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.
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: архитектура beta.12.17
2
+ title: Codex Workflow V2: архитектура beta.12.19
3
3
  subtitle: Источники истины, lifecycle, роли, delegation, зависимости Tasks и границы доверия
4
4
  part: Часть 1 из 3 | Архитектура
5
5
  document_version: 2.0
6
- date: 31 августа 2026
7
- subject: Архитектура и границы Codex Workflow V2 beta.12.17
6
+ date: 1 сентября 2026
7
+ subject: Архитектура и границы Codex Workflow V2 beta.12.19
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.17 гарантирует
21
+ ## 1.1. Что beta.12.19 гарантирует
22
22
 
23
23
  - exact project-local npm package и совместимый handshake до lifecycle действий;
24
24
  - Discovery до materialization Task или Milestone;
@@ -40,8 +40,14 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
40
40
  - pre-execution `stop-escalate`, доказавший отсутствующую upstream capability, может materialize ровно
41
41
  один additive remediation Task без нового Human gate; Core сохраняет Milestone semantics и выводит
42
42
  authority из текущей Milestone authorization и exact audit evidence.
43
+ - исторический check-support decision проверяется против собственного Plan hash, а новый Plan может
44
+ продолжить только после явного принятия каждого support path в `allowedWrites` и `expectedOutputs`;
45
+ implicit scope carry-over и Human approval для этого exact machine-proved случая отсутствуют.
46
+ - после dependency registration и Knowledge rebind один общий fail-closed assessor управляет и
47
+ навигацией, и `task run`: переносится только точный dirty set с тем же content hash, registered HEAD,
48
+ непрерывной Plan/rebind chain и явным scope текущей Step; drift переводит route в `doctor`.
43
49
 
44
- ## 1.2. Что beta.12.17 не гарантирует
50
+ ## 1.2. Что beta.12.19 не гарантирует
45
51
 
46
52
  - правильность продуктовой идеи или автоматически выбранного provider Task;
47
53
  - semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
@@ -354,6 +360,19 @@ locked, installed, current Task branch и active Milestone base и допуск
354
360
  версии ниже runner. Dirty scope, отсутствие lease/transaction и dependency-only Git transport
355
361
  остаются обязательными; product bytes и Workflow state вручную не изменяются.
356
362
 
363
+ beta.12.18 закрывает следующий post-rebind разрыв. Исторический check-support event остаётся валиден
364
+ по Plan hash, при котором был создан, даже если новый Plan теперь прямо владеет derived support path.
365
+ External preflight допускает продолжение только при одном таком event, неизменных dirty bytes,
366
+ отсутствии активного Step/lease/transaction и полном explicit scope adoption в planned Step. После
367
+ dependency-only transport Core заново связывает Knowledge и authorization; старый event не создаёт
368
+ скрытой authority и не модифицируется задним числом.
369
+
370
+ beta.12.19 закрывает оставшийся execution-boundary разрыв. Успешные transport, rebind, PRA и
371
+ authorization больше не заканчиваются рекламируемым, но невыполнимым `task run`: `next` и `runStep`
372
+ используют одну проверку registered recovery commit, exact dirty paths/content hash, historical
373
+ decision, Plan/rebind ancestry и current Step ownership. Совпадение разрешает только принятие уже
374
+ доказанных байтов; любое отличие блокирует запуск и не создаёт lease или commit.
375
+
357
376
  Docker socket `EPERM` в sandbox не является доказательством сломанного daemon. Gateway один раз
358
377
  повторяет exact health probe или Plan check с sandbox escalation без расходования remediation attempt.
359
378
  Restart Docker Desktop требует отдельного разрешения и допустим только после escalated daemon failure.
@@ -363,7 +382,7 @@ Restart Docker Desktop требует отдельного разрешения
363
382
  # 10. Operational checklist
364
383
 
365
384
  - exact package version установлен, bundled gateway соответствует release и переустановлен;
366
- - handshake подтверждает protocol 2, state schema 2 и beta.12.17 capabilities;
385
+ - handshake подтверждает protocol 2, state schema 2 и beta.12.19 capabilities;
367
386
  - каждый mutation следует свежему `status -> next` и exact option contract;
368
387
  - Docker permission failure сначала классифицируется как sandbox boundary, а не как infra retry;
369
388
  - 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.17 путь от нового Discovery до принятого Milestone без ручного CLI
3
+ subtitle: Актуальный beta.12.19 путь от нового Discovery до принятого Milestone без ручного CLI
4
4
  part: Часть 2 из 3 | Практика
5
5
  document_version: 2.0
6
- date: 31 августа 2026
7
- subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.17
6
+ date: 1 сентября 2026
7
+ subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.19
8
8
  ---
9
9
 
10
- # 1. Рабочая модель beta.12.17
10
+ # 1. Рабочая модель beta.12.19
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.17 как точную devDependency после публикации release.
43
+ 2. Установите beta.12.19 как точную 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.17 должен сообщать `packageVersion=2.0.0-beta.12.17`, `protocolVersion=2`,
59
+ Handshake beta.12.19 должен сообщать `packageVersion=2.0.0-beta.12.19`, `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.17 в delegated режиме.
120
+ Проведи новый Milestone через Codex Workflow V2 beta.12.19 в delegated режиме.
121
121
  Repository: <ABSOLUTE-REPOSITORY-ROOT>.
122
122
  Milestone ID: AUTO.
123
123
  Delegate actor: agent:milestone-coordinator.
@@ -299,7 +299,9 @@ Task chat записывает его только при совпадении p
299
299
  |---|---|
300
300
  | First proven impossible npm check после legacy/late authorization | Только рекламируемый `task plan-integrity-recover` |
301
301
  | Direct imported migration checksum/catalog authority вне Step scope | beta.12.16: advertised `task plan-integrity-recover`, затем тот же Step с exact derived support path; Human replan не нужен |
302
- | In-flight Plan-integrity Task требует package update | beta.12.17 external preflight выводит coherent exact beta.12 source из пяти version surfaces; затем только dependency-only transport и advertised recovery |
302
+ | In-flight Plan-integrity Task требует package update | beta.12.19 external preflight выводит coherent exact beta.12 source из пяти version surfaces; затем только dependency-only transport и advertised recovery |
303
+ | Новый Plan явно принял ранее derived check-support path, но старый event выглядит corrupt | beta.12.19 external preflight требует exact post-rebind scope adoption и неизменные dirty bytes; затем dependency-only transport, Knowledge rebind, PRA и fresh authorization без Human gate |
304
+ | После rebind и authorization `next` показывает `task run`, но checkout содержит сохранённые Step bytes | Продолжать только если beta.12.19 `next` показывает `planIntegrityDirtyCarryover.state=validated`; HEAD, Plan chain, paths и content hash уже проверены Core. При `doctor` запуск запрещён |
303
305
  | Downstream proof требует изменить completed predecessor | Только `task downstream-proof-recover`, затем новый Plan/risk audit/authorization в той же Task |
304
306
  | Failed guarded review | Та же Task: исправление и новый strict review без attempt hard stop |
305
307
  | Finding `route=fix` | Продолжить тот же Step; count остаётся диагностикой |
@@ -409,7 +411,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
409
411
 
410
412
  # 14. Итоговый checklist пользователя
411
413
 
412
- - beta.12.17 exact package и новый bundled gateway установлены;
414
+ - beta.12.19 exact package и новый bundled gateway установлены;
413
415
  - новый Coordinator chat не является fork старого Milestone;
414
416
  - bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
415
417
  - Discovery не materialized при blocking unknowns;
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: технический справочник beta.12.17
2
+ title: Codex Workflow V2: технический справочник beta.12.19
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: 31 августа 2026
7
- subject: Технический контракт Codex Workflow V2 beta.12.17
6
+ date: 1 сентября 2026
7
+ subject: Технический контракт Codex Workflow V2 beta.12.19
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.17 | Значение |
16
+ | Параметр beta.12.19 | Значение |
17
17
  |---|---|
18
- | npm package | `codex-workflow-v2@2.0.0-beta.12.17` |
18
+ | npm package | `codex-workflow-v2@2.0.0-beta.12.19` |
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.17 capabilities:
40
+ Ключевые beta.12.19 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, historical Step 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, `historical-check-support-scope-adoption-v1`, `historical-check-support-dirty-carryover-v1`, 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 или соседней
@@ -527,6 +527,39 @@ repository-local runner регистрирует commit только через
527
527
  `update plan-integrity-dependency-recover`. Source consensus не усыновляет product history, не меняет
528
528
  Plan/remediation evidence и не даёт generic update authority другим beta lines.
529
529
 
530
+ # 13.9. beta.12.18 historical check-support scope adoption
531
+
532
+ Validation v3 связывает check-support event с `event.planHash`. Если поздний Knowledge rebind и новый
533
+ Plan явно добавили derived support path, исторический event проверяется по собственным immutable
534
+ fields, hashes и conflict evidence, а не против scope нового Plan. Только event текущего Plan может
535
+ расширять effective Step scope; поэтому старое evidence не переносит authority неявно.
536
+
537
+ Read-only `update plan-integrity-update-preflight` может вернуть
538
+ `compatibilityMode=post-rebind-scope-adoption`, только если Task ожидает execution authorization, ни
539
+ одна Step не выполняется, существует ровно один исторический v3 `continue-fix`, его dirty paths и
540
+ content hash не изменились, а current planned Step напрямую владеет всеми `scopeExtensions` и
541
+ объявляет их outputs. Обычные coherent-version, lease, transaction, Core-operation и dependency-only
542
+ Git guards сохраняются. После регистрации update Knowledge rebind, PRA и authorization выполняются
543
+ только по fresh routes; Human approval для exact machine-proved scope не нужен.
544
+
545
+ # 13.10. beta.12.19 historical check-support dirty carryover
546
+
547
+ После регистрации dependency recovery current Plan может быть ещё раз mechanically rebound и
548
+ авторизован, тогда как product bytes остаются uncommitted. Запуск разрешён только при едином
549
+ assessment для `next` и `runStep`: latest compatible dependency record должен быть зарегистрирован на
550
+ точной history boundary; его Plan должен совпадать с current Plan или вести к нему через непрерывную
551
+ Knowledge-rebind chain; planned Step должна владеть каждым dirty path и каждым `scopeExtension`; full
552
+ path set и `hashDirtyWorktree` должны совпадать; один validated historical check-support decision
553
+ должен связывать те же conflict/remediation/scope fields.
554
+
555
+ При полном совпадении `next` публикует
556
+ `planIntegrityDirtyCarryover.state=validated`, а `task run` принимает только эти байты под current
557
+ Step envelope. При любом расхождении `next` возвращает `doctor` с `blockedAction=task run`; lease,
558
+ Step mutation и commit не создаются. Для обновления уже авторизованной beta.12.18 Task внешний
559
+ beta.12.19 runner выдаёт `compatibilityMode=post-rebind-dirty-carryover`, после чего сохраняются
560
+ обычный dependency-only transport, repository-local registration, Knowledge rebind, PRA,
561
+ authorization, checks, Core commit и sealed review. Human approval не добавляется.
562
+
530
563
  # 14. P04-A structural replacement boundary
531
564
 
532
565
  Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
@@ -589,7 +622,7 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
589
622
  После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
590
623
  не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
591
624
 
592
- # 18. Public command surface beta.12.17
625
+ # 18. Public command surface beta.12.19
593
626
 
594
627
  | Область | Actions |
595
628
  |---|---|
@@ -620,7 +653,7 @@ active-downstream-proof bridge, beta.12.7 exact stranded-replan bridge, beta.12.
620
653
  dependency bridge и beta.12.15 Plan-integrity bridge; все они fail-closed и не дают общего разрешения
621
654
  dirty update.
622
655
 
623
- Перед beta.12.17 tag обязательны `npm ci`, `npm run validate`, `npm run test:signal-t10-check-support-e2e`, `npm run test:signal-remediation-e2e`, `npm run pack:check`,
656
+ Перед beta.12.19 tag обязательны `npm ci`, `npm run validate`, `npm run test:signal-t10-check-support-e2e`, `npm run test:signal-remediation-e2e`, `npm run pack:check`,
624
657
  `npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
625
658
  `npm run docs:pdf:check`, `npm run release:check` с exact tag binding и validation
626
659
  append-only real-agent lifecycle log.
package/docs/release.md CHANGED
@@ -29,7 +29,7 @@ The PDF check deterministically regenerates all three Russian documents from
29
29
  `docs/pdf/sources`, binds the visible package version to the root manifest, and fails when any
30
30
  tracked PDF is stale. Source and binary PDFs are one release unit.
31
31
 
32
- For beta.12.17, the release gate also relies on `npm run release:check` to fail if:
32
+ For beta.12.19, the release gate also relies on `npm run release:check` to fail if:
33
33
 
34
34
  - canonical entity schema 2 shapes drift;
35
35
  - protocol 2 is not the active public contract, or intact protocol-1 adoption evidence stops being readable through the bounded compatibility window;
@@ -68,6 +68,10 @@ For beta.12.17, the release gate also relies on `npm run release:check` to fail
68
68
  Step owning it; or in-flight recovery can widen beyond the exact imported support path, bypass
69
69
  `forbiddenScope`, change the Plan hash, skip checks/Core commit/review disclosure, or require a
70
70
  Human approval for the machine-proved scope-only correction.
71
+ - historical check-support evidence is reinterpreted against a later Plan instead of the Plan hash
72
+ recorded by the event; or a post-rebind update is accepted without one planned Step explicitly
73
+ owning every previously derived support path in both `allowedWrites` and `expectedOutputs`, exact
74
+ dirty-byte continuity, coherent versions, and an otherwise idle recovery boundary.
71
75
  - downstream proof cannot invalidate only completed transitive-predecessor authority while
72
76
  preserving worktree/HEAD, yielding C1, and returning the same Task to fresh planning; or unrelated
73
77
  dirty files and damaged invalidation evidence do not fail closed.
@@ -22,6 +22,52 @@ state schema. Совпадение `stateSchemaVersion` до и после об
22
22
  нужна. Для alpha.6 при `stateSchemaVersion: 2` применяется не migration, а sidecar-only
23
23
  adoption posture.
24
24
 
25
+ ### beta.12.19: hash-bound check-support dirty carryover at Task run
26
+
27
+ beta.12.18 could validate and transport a historical check-support recovery through a new Plan, but
28
+ the final execution boundary still applied the ordinary clean-checkout rule. Consequently fresh
29
+ `next` advertised `task run` after dependency registration, Knowledge rebind, Risk Audit and
30
+ authorization, while the same `task run` rejected the preserved product bytes.
31
+
32
+ beta.12.19 gives navigation and execution one shared fail-closed assessment. Carryover is valid only
33
+ when the latest registered Plan-integrity dependency record binds the current history boundary, the
34
+ current Plan is that record's Plan or its exact Knowledge-rebind descendant, the planned Step owns
35
+ every dirty path, every derived support path is explicit in both `allowedWrites` and
36
+ `expectedOutputs`, and the full dirty file list and content hash still match the validated historical
37
+ decision. `next` then reports `planIntegrityDirtyCarryover.state=validated`; `task run` may adopt
38
+ exactly those bytes. Any mismatch changes `next` to `doctor` and leaves execution blocked.
39
+
40
+ An in-flight beta.12.18 Task already in the authorized dirty-carryover posture may use external exact
41
+ beta.12.19 `update plan-integrity-update-preflight`. It returns
42
+ `compatibilityMode=post-rebind-dirty-carryover` only when the existing registration and all ordinary
43
+ version, Git, lease, transaction and Core-operation guards pass. Continue only through the reported
44
+ dependency-only transport and fresh repository-local routes. No Human approval is introduced for
45
+ this exact machine-proved continuation; checks, Core commit and external sealed review remain
46
+ mandatory.
47
+
48
+ ### beta.12.18: historical check-support scope adoption after Knowledge rebind
49
+
50
+ beta.12.18 closes a bounded post-rebind deadlock. A Task may already contain a valid beta.12.16
51
+ `continue-fix` decision that derived one exact check-support path, then refresh Knowledge and adopt
52
+ that path explicitly in a new Plan. The historical event must still be validated against its own
53
+ Plan hash; comparing it with the new Plan incorrectly reports `STATE_CORRUPT` precisely because the
54
+ new Plan now owns the path.
55
+
56
+ An external exact beta.12.18 runner recognizes only this exact shape: the Task awaits execution
57
+ authorization, no Step is running, one historical check-support decision binds the unchanged dirty
58
+ worktree, and one planned Step directly lists every derived support path in both `allowedWrites` and
59
+ `expectedOutputs`. Read-only `update plan-integrity-update-preflight` reports
60
+ `compatibilityMode=post-rebind-scope-adoption` only when all ordinary version, lease, transaction,
61
+ Core-operation, Git-head and dirty-byte guards also pass.
62
+
63
+ After `eligible=true`, use the same dependency-only base/Task transport described below. Fresh
64
+ repository-local Core registers it only through advertised
65
+ `update plan-integrity-dependency-recover`; Knowledge rebind and Risk Audit then follow fresh
66
+ `status -> next`. The adopted support path comes from the current Plan, not from implicit reuse of
67
+ the historical event. No Human approval is required for this exact machine-proved recovery. Any
68
+ additional path, dirty-byte drift, missing explicit Plan ownership, multiple matching events, active
69
+ lease or incoherent version surface remains blocked.
70
+
25
71
  ### beta.12.17: coherent beta.12 Plan-integrity update transport
26
72
 
27
73
  `update plan-integrity-update-preflight` больше не связывает совместимый transport с одним
@@ -1,105 +1,101 @@
1
- # V2 beta.12.17 Validation Report
1
+ # V2 beta.12.19 Validation Report
2
2
 
3
- Release candidate `2.0.0-beta.12.17` was validated on 2026-09-01 (Europe/Moscow) with
3
+ Release candidate `2.0.0-beta.12.19` was validated on 2026-09-01 (Europe/Moscow) with
4
4
  Node.js 24.17.0.
5
5
 
6
6
  ## Automated release evidence
7
7
 
8
8
  - A clean `npm ci` completed from the exact lockfile and reported zero vulnerabilities.
9
- - `npm run validate` passed typecheck and `353/353` sequential tests with no failures, skips,
10
- cancellations or todos in 2,273,062.454 ms.
11
- - `npm run test:signal-t10-check-support-e2e` passed `7/7`. It includes the Signal-shaped
12
- check-support recovery and two complete update/recovery chains whose coherent source is
13
- `2.0.0-beta.12.11` and `2.0.0-beta.12.15`, respectively.
14
- - The `.15` case proves read-only update preflight, exact dependency-only transport, dependency
15
- provenance registration, Plan-integrity recovery, retry and continuation without product-byte
16
- loss or a Human replan for the machine-proved support scope.
17
- - Existing Signal compatibility remained green inside the full suite, including T04 retained
18
- review/history recovery, T03 corrective replan, audited remediation topology, downstream proof
19
- and dependency-only update recovery.
20
-
21
- ## Live Signal evidence before installation
22
-
23
- The live repository was observed at:
9
+ - `npm run validate` passed typecheck and `354/354` sequential tests with no failures, skips,
10
+ cancellations or todos in 2,187,446.915 ms.
11
+ - `npm run test:signal-t10-check-support-e2e` passed `8/8` in 181,400.886 ms. Its extended
12
+ Signal-shaped case executes the complete beta.12.18-to-beta.12.19 sequence: historical check-
13
+ support recovery, explicit scope adoption, dependency-only update preflight and transport, Core
14
+ dependency registration, Knowledge rebind, fresh Risk Audit and authorization, dirty-byte adoption,
15
+ checks and Core-owned Step commit. A one-byte mutation changes fresh navigation to `doctor`.
16
+ - `npm run test:signal-remediation-e2e` passed `2/2` in 9,136.908 ms.
17
+ - `npm run pack:check` produced the exact `2.0.0-beta.12.19` tarball with 284 files. The first
18
+ sandboxed attempt could not write the user npm cache; the identical cache-enabled invocation
19
+ passed. This was an environment boundary, not a package failure.
20
+ - `npm run smoke:downstream` packed the release, installed it into an empty project and returned
21
+ `ok=true`. The first sandboxed attempt could not resolve the npm registry; the identical network-
22
+ enabled invocation passed.
23
+ - `npm run plugin:check`, `npm run docs:pdf:check` and `npm run release:check` all passed. The three
24
+ Russian PDFs were regenerated for beta.12.19, reported no stale outputs and were visually inspected
25
+ on their title and changed contract pages with no clipping, overlap or broken tables.
26
+ - `git diff --check` passed for the release patch.
27
+
28
+ ## Live Signal evidence before publication
29
+
30
+ The live repository was observed without changing product files, Git references or Workflow state at:
24
31
 
25
32
  - Task branch `codex/task-01m1b79c66-current-formalization-commit-and-provide`;
26
- - HEAD `f290d0875387283c368bedd03964fb423619db7b`;
27
- - repository-local package `codex-workflow-v2@2.0.0-beta.12.15`, protocol/schema `2/2`;
28
- - Task `TASK-01M1B79C660YMNSRRZ236NTR1T`, revision 21, failed Step
29
- `STEP-002-CURRENT-COMMIT`;
30
- - exactly eight preserved STEP-002 product paths and no pending/corrupt Core transaction.
31
-
32
- The stale writer lease was repaired only through the exact repository-level `locks repair` route.
33
- Fresh beta.12.15 `status -> next` then reproduced the original defect: `next` advertised only
34
- `task run`, although the Worker could not write the imported migration support authority.
35
-
36
- Published beta.12.16 correctly identified the check-support conflict, but its external
37
- `update plan-integrity-update-preflight` returned `eligible=false`: the implementation still required
38
- all five version surfaces to equal the hard-coded stranded source `2.0.0-beta.12.11`. Signal already
39
- had coherent `.15` declared, locked, installed, current-branch and Milestone-base versions. No update
40
- commit, package installation, Workflow-state edit or product-file mutation was performed after that
41
- failed preflight.
42
-
43
- The beta.12.17 runner was then built locally and invoked read-only against the same Signal state. It
44
- returned:
45
-
46
- - `eligible=true` and `action=update plan-integrity-transport`;
47
- - source `2.0.0-beta.12.15`, target `2.0.0-beta.12.17`;
48
- - Task revision 21 and `STEP-002-CURRENT-COMMIT`;
49
- - the same eight dirty paths;
50
- - conflict hash `44ee553355bc696861bd2e4f49c1675e39c7cf4e5be28785e2f86cd95de45383`;
51
- - zero blockers.
52
-
53
- ## Root causes corrected
54
-
55
- beta.12.16 corrected the product-flow root cause: the Plan and retry boundary did not model the
56
- directly imported checksum/catalog module as authority required by the approved migration check.
57
- The bounded analyzer and append-only scope augmentation remain unchanged in beta.12.17.
58
-
59
- The installation blocker had a separate root cause. Plan-integrity update preflight encoded one
60
- historical release literal instead of deriving the source version from the repository surfaces it
61
- already inspected. Every compatible patch after `.11` therefore became impossible to transport
62
- while failed-Step product work remained dirty.
63
-
64
- ## Implemented beta.12.17 contract
65
-
66
- - `planIntegrityUpdatePreflight` derives `sourceVersion` from the declared exact dependency.
67
- - Source must match `2.0.0-beta.12.N`, with `N >= 11` and `N` strictly less than the external
68
- runner's beta.12 patch ordinal.
69
- - Locked, installed, current Task branch and active Milestone base must equal the declared source.
70
- Missing or divergent surfaces block transport with an exact diagnostic.
71
- - Existing guards remain mandatory: one eligible Plan-integrity conflict, coherent observation,
72
- no active/stale lease, no pending/corrupt transaction or Core operation, and an exact dirty set
73
- inside the failed Step boundary.
74
- - The only allowed transport remains one dependency-only commit changing `package.json` and
75
- `package-lock.json` on the Milestone base and in Task history. Fresh repository-local Core must
76
- register it through advertised `update plan-integrity-dependency-recover`.
77
- - The contract is advertised as `coherent-plan-integrity-update-source-v1`. It is deliberately
78
- limited to the compatible beta.12 line and does not create generic update or product-history
79
- adoption authority.
80
-
81
- ## Retained check-support contract
82
-
83
- - `wf2.check-support-anchor@1` blocks a future Plan whose producing migration Step does not own the
84
- directly imported SHA/catalog support authority.
85
- - For the already-running exact first-failure shape, `task plan-integrity-recover` appends one
86
- `continue-fix` decision with the derived support path; Plan hash and product bytes remain stable.
87
- - Worker envelope, retry boundary, Core commit, downstream proof, corrective-replan guard and sealed
88
- review packet use and disclose the same effective scope.
89
- - Indirect/dynamic imports, unsupported syntax, forbidden paths, unrelated dirty files or absent
90
- anchors remain fail-closed. Missing scripts and selector-required checks retain their ordinary
91
- `replan-required` path.
33
+ - HEAD `c9dc805911f5b1dfb026ca03411f86bd72ba259f`;
34
+ - repository-local package `codex-workflow-v2@2.0.0-beta.12.18`, protocol/schema `2/2`;
35
+ - Task `TASK-01M1B79C660YMNSRRZ236NTR1T`, revision 27, status `ready`;
36
+ - current Plan hash `c9ebe850ae7504db3621442cb4a3dfa6cf7a77a421a5f61f7cbcbcde31eddc5b`;
37
+ - planned `STEP-002-CURRENT-COMMIT`, whose current Plan directly owns all eight preserved product
38
+ paths plus `tools/postgres/processing-migration-files.ts` as the derived support path;
39
+ - dirty worktree hash `a53ae309e2b79a4255b0f02e45612f8c8570f7f0a0ea91f3e761979904161277`;
40
+ - no active writer lease.
41
+
42
+ beta.12.18 fresh `next` advertised `task run`. Invoking that exact route failed before credential
43
+ issuance with `GIT_PRECONDITION_FAILED`: the planned Step was still forced through the ordinary clean-
44
+ checkout precondition, which listed the same eight product paths preserved by the registered recovery.
45
+ No Task revision, Step state, lease, credential or repository byte changed on that failure.
46
+
47
+ The locally built external beta.12.19 runner then performed two read-only observations against the
48
+ same state:
49
+
50
+ - `next` kept `action=task run` but added
51
+ `planIntegrityDirtyCarryover.state=validated`, the exact eight paths, their content hash, registered
52
+ recovery commit and exact support scope extension;
53
+ - `update plan-integrity-update-preflight` returned `eligible=true`,
54
+ `action=update plan-integrity-transport`, source `2.0.0-beta.12.18`, target
55
+ `2.0.0-beta.12.19`, `compatibilityMode=post-rebind-dirty-carryover` and zero blockers.
56
+
57
+ ## Root cause corrected
58
+
59
+ beta.12.18 repaired historical evidence validation and update transport, but did not connect that
60
+ authority to the final execution admission. Navigation could prove the recovery sequence coherent,
61
+ while `runStep` independently knew only ordinary clean checkout, corrective retry and downstream-
62
+ proof carryover. The result was an advertised-but-rejected transition after every required recovery
63
+ action had succeeded.
64
+
65
+ beta.12.19 introduces one shared fail-closed check-support dirty-carryover assessment for navigation,
66
+ external update compatibility and execution admission. This is not a generic dirty-checkout bypass.
67
+
68
+ ## Implemented beta.12.19 contract
69
+
70
+ - The latest compatible dependency recovery record must bind the exact registered history boundary.
71
+ - Its Plan must equal the current Plan or reach it through the recorded Knowledge-rebind chain.
72
+ - Exactly one validated historical v3 `continue-fix` decision must bind the same conflict,
73
+ remediation events, dirty set and derived scope extensions.
74
+ - The complete current dirty path set and `hashDirtyWorktree` must equal the registered binding.
75
+ - The planned Step must have no evidence, no other Step may be running, and every dirty path must be
76
+ inside its current `allowedWrites`.
77
+ - Every derived support path must be explicit in both current `allowedWrites` and `expectedOutputs`.
78
+ - Fresh `next` reports `planIntegrityDirtyCarryover.state=validated` only when `runStep` will accept
79
+ the same exact bytes. Any mismatch reports `doctor` with `blockedAction=task run`.
80
+ - An already authorized beta.12.18 Task can use the ordinary dependency-only update bridge with
81
+ `compatibilityMode=post-rebind-dirty-carryover`; after registration, Knowledge rebind, Risk Audit and
82
+ authorization remain fresh Core-advertised transitions.
83
+ - Capability `historical-check-support-dirty-carryover-v1` exposes the contract in the packaged
84
+ handshake. No Human approval is added for this exact machine-proved continuation.
92
85
 
93
86
  ## Boundaries and non-claims
94
87
 
95
- - The patch does not bypass dependency-only Git transport or permit installation while version
96
- surfaces diverge.
97
- - It does not edit Plan, product work, Workflow state or Git history during preflight.
98
- - This report does not claim beta.12.17 commit/tag/push, npm publication, live installation,
99
- dependency registration, STEP-002 commit/review, Task merge or Milestone completion until each
100
- operation receives its own readback.
101
-
102
- Confidence is high for source-version consensus and retained check-support recovery because the
103
- 353-test gate, both source-version E2E chains and the read-only live Signal preflight agree. Final
104
- end-to-end confidence remains conditional on exact publication, dependency-only transport into
105
- Signal, repository-local recovery, the real approved checks and a new sealed reviewer packet.
88
+ - The patch does not accept an arbitrary dirty file, content change, unregistered commit, unrelated
89
+ Plan, missing explicit scope, malformed sidecar, multiple historical match or active transaction.
90
+ - It does not mutate historical evidence, rewrite Git, manually edit Workflow state or implicitly
91
+ widen Step scope.
92
+ - It does not bypass repository-local installation, Knowledge rebind, Risk Audit, authorization,
93
+ approved checks, Core commit, strict Step review or external sealed review.
94
+ - This report does not claim beta.12.19 commit/tag/push, npm publication, live installation into
95
+ Signal, STEP-002 review, Task merge or Milestone completion until those operations receive their
96
+ own readback.
97
+
98
+ Confidence is high for the defect classification and package behavior: full `354/354`, focused
99
+ `8/8`, tamper-to-doctor E2E and read-only live Signal observations agree. End-to-end confidence in
100
+ the active Milestone remains conditional on publication, exact dependency-only installation, the
101
+ real approved checks and the user-authorized external sealed reviewer chat.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-workflow-v2",
3
- "version": "2.0.0-beta.12.17",
3
+ "version": "2.0.0-beta.12.19",
4
4
  "description": "Requirements-first Codex development workflow with local state and explicit Git ownership.",
5
5
  "repository": {
6
6
  "type": "git",