codex-workflow-v2 2.0.0-beta.12.18 → 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.18
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
6
  date: 1 сентября 2026
7
- subject: Архитектура и границы Codex Workflow V2 beta.12.18
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.18 гарантирует
21
+ ## 1.1. Что beta.12.19 гарантирует
22
22
 
23
23
  - exact project-local npm package и совместимый handshake до lifecycle действий;
24
24
  - Discovery до materialization Task или Milestone;
@@ -43,8 +43,11 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
43
43
  - исторический check-support decision проверяется против собственного Plan hash, а новый Plan может
44
44
  продолжить только после явного принятия каждого support path в `allowedWrites` и `expectedOutputs`;
45
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`.
46
49
 
47
- ## 1.2. Что beta.12.18 не гарантирует
50
+ ## 1.2. Что beta.12.19 не гарантирует
48
51
 
49
52
  - правильность продуктовой идеи или автоматически выбранного provider Task;
50
53
  - semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
@@ -364,6 +367,12 @@ External preflight допускает продолжение только при
364
367
  dependency-only transport Core заново связывает Knowledge и authorization; старый event не создаёт
365
368
  скрытой authority и не модифицируется задним числом.
366
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
+
367
376
  Docker socket `EPERM` в sandbox не является доказательством сломанного daemon. Gateway один раз
368
377
  повторяет exact health probe или Plan check с sandbox escalation без расходования remediation attempt.
369
378
  Restart Docker Desktop требует отдельного разрешения и допустим только после escalated daemon failure.
@@ -373,7 +382,7 @@ Restart Docker Desktop требует отдельного разрешения
373
382
  # 10. Operational checklist
374
383
 
375
384
  - exact package version установлен, bundled gateway соответствует release и переустановлен;
376
- - handshake подтверждает protocol 2, state schema 2 и beta.12.18 capabilities;
385
+ - handshake подтверждает protocol 2, state schema 2 и beta.12.19 capabilities;
377
386
  - каждый mutation следует свежему `status -> next` и exact option contract;
378
387
  - Docker permission failure сначала классифицируется как sandbox boundary, а не как infra retry;
379
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.18 путь от нового Discovery до принятого Milestone без ручного CLI
3
+ subtitle: Актуальный beta.12.19 путь от нового Discovery до принятого Milestone без ручного CLI
4
4
  part: Часть 2 из 3 | Практика
5
5
  document_version: 2.0
6
6
  date: 1 сентября 2026
7
- subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.18
7
+ subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.19
8
8
  ---
9
9
 
10
- # 1. Рабочая модель beta.12.18
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.18 как точную 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.18 должен сообщать `packageVersion=2.0.0-beta.12.18`, `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.18 в 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,8 +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.18 external preflight выводит coherent exact beta.12 source из пяти version surfaces; затем только dependency-only transport и advertised recovery |
303
- | Новый Plan явно принял ранее derived check-support path, но старый event выглядит corrupt | beta.12.18 external preflight требует exact post-rebind scope adoption и неизменные dirty bytes; затем dependency-only transport, Knowledge rebind, PRA и fresh authorization без Human gate |
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` запуск запрещён |
304
305
  | Downstream proof требует изменить completed predecessor | Только `task downstream-proof-recover`, затем новый Plan/risk audit/authorization в той же Task |
305
306
  | Failed guarded review | Та же Task: исправление и новый strict review без attempt hard stop |
306
307
  | Finding `route=fix` | Продолжить тот же Step; count остаётся диагностикой |
@@ -410,7 +411,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
410
411
 
411
412
  # 14. Итоговый checklist пользователя
412
413
 
413
- - beta.12.18 exact package и новый bundled gateway установлены;
414
+ - beta.12.19 exact package и новый bundled gateway установлены;
414
415
  - новый Coordinator chat не является fork старого Milestone;
415
416
  - bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
416
417
  - Discovery не materialized при blocking unknowns;
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: технический справочник beta.12.18
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
6
  date: 1 сентября 2026
7
- subject: Технический контракт Codex Workflow V2 beta.12.18
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.18 | Значение |
16
+ | Параметр beta.12.19 | Значение |
17
17
  |---|---|
18
- | npm package | `codex-workflow-v2@2.0.0-beta.12.18` |
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.18 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, `historical-check-support-scope-adoption-v1`, 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 или соседней
@@ -542,6 +542,24 @@ content hash не изменились, а current planned Step напрямую
542
542
  Git guards сохраняются. После регистрации update Knowledge rebind, PRA и authorization выполняются
543
543
  только по fresh routes; Human approval для exact machine-proved scope не нужен.
544
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
+
545
563
  # 14. P04-A structural replacement boundary
546
564
 
547
565
  Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
@@ -604,7 +622,7 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
604
622
  После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
605
623
  не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
606
624
 
607
- # 18. Public command surface beta.12.18
625
+ # 18. Public command surface beta.12.19
608
626
 
609
627
  | Область | Actions |
610
628
  |---|---|
@@ -635,7 +653,7 @@ active-downstream-proof bridge, beta.12.7 exact stranded-replan bridge, beta.12.
635
653
  dependency bridge и beta.12.15 Plan-integrity bridge; все они fail-closed и не дают общего разрешения
636
654
  dirty update.
637
655
 
638
- Перед beta.12.18 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`,
639
657
  `npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
640
658
  `npm run docs:pdf:check`, `npm run release:check` с exact tag binding и validation
641
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.18, 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;
@@ -22,6 +22,29 @@ 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
+
25
48
  ### beta.12.18: historical check-support scope adoption after Knowledge rebind
26
49
 
27
50
  beta.12.18 closes a bounded post-rebind deadlock. A Task may already contain a valid beta.12.16
@@ -1,103 +1,101 @@
1
- # V2 beta.12.18 Validation Report
1
+ # V2 beta.12.19 Validation Report
2
2
 
3
- Release candidate `2.0.0-beta.12.18` 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
9
  - `npm run validate` passed typecheck and `354/354` sequential tests with no failures, skips,
10
- cancellations or todos in 2,103,253.819 ms.
11
- - `npm run test:signal-t10-check-support-e2e` passed `8/8` in 148,470.477 ms. The added case
12
- reproduces a historical v3 check-support decision, Knowledge rebind, explicit support-path adoption
13
- by the new Plan and successful fresh navigation without `STATE_CORRUPT`.
14
- - `npm run test:signal-remediation-e2e` passed `2/2`.
15
- - `npm run pack:check` produced the exact `2.0.0-beta.12.18` tarball. The first sandboxed attempt
16
- could not write npm cache; the identical escalated invocation passed. This was an environment
17
- boundary, not a package failure.
18
- - `npm run smoke:downstream` installed the packed tarball into an empty project and returned
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
19
21
  `ok=true`. The first sandboxed attempt could not resolve the npm registry; the identical network-
20
22
  enabled invocation passed.
21
23
  - `npm run plugin:check`, `npm run docs:pdf:check` and `npm run release:check` all passed. The three
22
- Russian PDFs were regenerated for beta.12.18, reported no stale outputs and were visually inspected
23
- on their title and changed contract pages.
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.
24
27
 
25
28
  ## Live Signal evidence before publication
26
29
 
27
- The live repository was observed read-only at:
30
+ The live repository was observed without changing product files, Git references or Workflow state at:
28
31
 
29
32
  - Task branch `codex/task-01m1b79c66-current-formalization-commit-and-provide`;
30
- - HEAD `a34314d2613865767ef9adb37e7c12b4a12cd5c2`;
31
- - repository-local package `codex-workflow-v2@2.0.0-beta.12.17`, protocol/schema `2/2`;
32
- - Task `TASK-01M1B79C660YMNSRRZ236NTR1T`, revision 24, status
33
- `awaiting_execution_authorization`;
34
- - current Plan hash `94fba18b423b795fc3b276166f9dec03a34fe3d0d2db73acf3c74dbf0e35f34b`;
35
- - planned `STEP-002-CURRENT-COMMIT`, which directly owns the derived check-support path;
36
- - exactly eight preserved STEP-002 product paths, with no support-module edit yet.
37
-
38
- beta.12.17 rejected fresh navigation with `STATE_CORRUPT`. Its v3 validator compared the historical
39
- check-support event against the current Plan. That event was valid under its recorded earlier Plan,
40
- but the current Plan now explicitly owned the same support path, so the old validation predicate
41
- became self-contradictory after the intended recovery sequence.
42
-
43
- The locally built external beta.12.18 runner then executed read-only
44
- `update plan-integrity-update-preflight` against the same state and returned:
45
-
46
- - `eligible=true` and `action=update plan-integrity-transport`;
47
- - `compatibilityMode=post-rebind-scope-adoption`;
48
- - source `2.0.0-beta.12.17`, target `2.0.0-beta.12.18`;
49
- - Task revision 24 and `STEP-002-CURRENT-COMMIT`;
50
- - the same eight dirty paths;
51
- - conflict hash `1bb6b0f7d1817024ff9c61a55ce3eda97169780265c3eea74f21643fcd9f487e`;
52
- - zero blockers.
53
-
54
- No Signal product byte, Git reference or Workflow-state artifact was changed by this live preflight.
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.
55
56
 
56
57
  ## Root cause corrected
57
58
 
58
- The defect was not the original migration check-support analyzer. beta.12.16 had already proved the
59
- missing imported support authority, and the new Plan correctly adopted that path. The remaining root
60
- cause was temporal validation: immutable evidence from Plan A was reinterpreted using Plan B's scope.
61
- Because Plan B intentionally fixed the scope omission, the validator classified the valid historical
62
- event as corrupt.
63
-
64
- beta.12.18 separates two authorities:
65
-
66
- - historical event integrity is checked against the Plan hash recorded by that event and its own
67
- immutable hashes, conflicts, dirty set and remediation chain;
68
- - executable current scope comes only from the current Plan or a current-Plan event. Historical
69
- evidence does not implicitly widen the new Step.
70
-
71
- ## Implemented beta.12.18 contract
72
-
73
- - v3 check-support validation applies current Step scope predicates only when
74
- `event.planHash === task.planHash`.
75
- - A bounded post-rebind compatibility candidate exists only while the Task awaits execution
76
- authorization, no Step is running and C1 posture is empty.
77
- - Exactly one historical `continue-fix` check-support event must match the current unchanged dirty
78
- worktree and a registered system commit.
79
- - The current planned Step must explicitly list every historical `scopeExtension` in both
80
- `allowedWrites` and `expectedOutputs`.
81
- - Ordinary coherent-version, dependency-only commit, lease, transaction, Core-operation and dirty-
82
- byte guards remain mandatory.
83
- - The route is advertised as `historical-check-support-scope-adoption-v1` and reports
84
- `compatibilityMode=post-rebind-scope-adoption`.
85
- - Registration, Knowledge rebind, Plan Risk Audit and execution authorization remain separate fresh
86
- Core-advertised transitions. The exact machine-proved recovery requires no Human approval.
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.
87
85
 
88
86
  ## Boundaries and non-claims
89
87
 
90
- - The patch does not accept an arbitrary new Plan, extra support path, changed dirty byte, multiple
91
- matching event, active lease or divergent version surface.
92
- - It does not mutate or rewrite the historical event and does not carry its scope into an unrelated
93
- current Plan.
94
- - It does not bypass dependency-only Git transport, repository-local installation, Knowledge rebind,
95
- Plan Risk Audit, checks, Core commit or external sealed review.
96
- - This report does not claim beta.12.18 commit/tag/push, npm publication, live installation into
97
- Signal, STEP-002 commit/review, Task merge or Milestone completion until each operation receives its
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
98
96
  own readback.
99
97
 
100
- Confidence is high for the defect classification and compatibility preflight: the full `354/354`
101
- gate, focused `8/8` Signal suite and read-only live Signal state agree. End-to-end confidence remains
102
- conditional on publication, exact dependency-only transport into Signal, fresh Core routing, the real
103
- approved checks and the user-authorized new sealed reviewer chat.
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.18",
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",