codex-workflow-v2 2.0.0-beta.12.16 → 2.0.0-beta.12.18

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.16
2
+ title: Codex Workflow V2: архитектура beta.12.18
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.16
6
+ date: 1 сентября 2026
7
+ subject: Архитектура и границы Codex Workflow V2 beta.12.18
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.16 гарантирует
21
+ ## 1.1. Что beta.12.18 гарантирует
22
22
 
23
23
  - exact project-local npm package и совместимый handshake до lifecycle действий;
24
24
  - Discovery до materialization Task или Milestone;
@@ -40,8 +40,11 @@ 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 случая отсутствуют.
43
46
 
44
- ## 1.2. Что beta.12.16 не гарантирует
47
+ ## 1.2. Что beta.12.18 не гарантирует
45
48
 
46
49
  - правильность продуктовой идеи или автоматически выбранного provider Task;
47
50
  - semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
@@ -348,6 +351,19 @@ Plan/Step/HEAD, полный dirty set, runner/support hashes, direct import, о
348
351
  scope. Indirect import, dynamic shell, forbidden path, unrelated dirty file или отсутствие SHA anchors
349
352
  fail-closed и не расширяют authority.
350
353
 
354
+ beta.12.17 закрывает transport-разрыв перед этим recovery: внешний runner больше не ожидает один
355
+ зашитый source release. Он выводит exact beta.12 source из declared dependency, требует равенства
356
+ locked, installed, current Task branch и active Milestone base и допускает только patch от .11 до
357
+ версии ниже runner. Dirty scope, отсутствие lease/transaction и dependency-only Git transport
358
+ остаются обязательными; product bytes и Workflow state вручную не изменяются.
359
+
360
+ beta.12.18 закрывает следующий post-rebind разрыв. Исторический check-support event остаётся валиден
361
+ по Plan hash, при котором был создан, даже если новый Plan теперь прямо владеет derived support path.
362
+ External preflight допускает продолжение только при одном таком event, неизменных dirty bytes,
363
+ отсутствии активного Step/lease/transaction и полном explicit scope adoption в planned Step. После
364
+ dependency-only transport Core заново связывает Knowledge и authorization; старый event не создаёт
365
+ скрытой authority и не модифицируется задним числом.
366
+
351
367
  Docker socket `EPERM` в sandbox не является доказательством сломанного daemon. Gateway один раз
352
368
  повторяет exact health probe или Plan check с sandbox escalation без расходования remediation attempt.
353
369
  Restart Docker Desktop требует отдельного разрешения и допустим только после escalated daemon failure.
@@ -357,7 +373,7 @@ Restart Docker Desktop требует отдельного разрешения
357
373
  # 10. Operational checklist
358
374
 
359
375
  - exact package version установлен, bundled gateway соответствует release и переустановлен;
360
- - handshake подтверждает protocol 2, state schema 2 и beta.12.16 capabilities;
376
+ - handshake подтверждает protocol 2, state schema 2 и beta.12.18 capabilities;
361
377
  - каждый mutation следует свежему `status -> next` и exact option contract;
362
378
  - Docker permission failure сначала классифицируется как sandbox boundary, а не как infra retry;
363
379
  - 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.16 путь от нового Discovery до принятого Milestone без ручного CLI
3
+ subtitle: Актуальный beta.12.18 путь от нового 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.16
6
+ date: 1 сентября 2026
7
+ subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.18
8
8
  ---
9
9
 
10
- # 1. Рабочая модель beta.12.16
10
+ # 1. Рабочая модель beta.12.18
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.16 как точную devDependency после публикации release.
43
+ 2. Установите beta.12.18 как точную 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.16 должен сообщать `packageVersion=2.0.0-beta.12.16`, `protocolVersion=2`,
59
+ Handshake beta.12.18 должен сообщать `packageVersion=2.0.0-beta.12.18`, `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.16 в delegated режиме.
120
+ Проведи новый Milestone через Codex Workflow V2 beta.12.18 в delegated режиме.
121
121
  Repository: <ABSOLUTE-REPOSITORY-ROOT>.
122
122
  Milestone ID: AUTO.
123
123
  Delegate actor: agent:milestone-coordinator.
@@ -299,6 +299,8 @@ 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
304
  | Downstream proof требует изменить completed predecessor | Только `task downstream-proof-recover`, затем новый Plan/risk audit/authorization в той же Task |
303
305
  | Failed guarded review | Та же Task: исправление и новый strict review без attempt hard stop |
304
306
  | Finding `route=fix` | Продолжить тот же Step; count остаётся диагностикой |
@@ -408,7 +410,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
408
410
 
409
411
  # 14. Итоговый checklist пользователя
410
412
 
411
- - beta.12.16 exact package и новый bundled gateway установлены;
413
+ - beta.12.18 exact package и новый bundled gateway установлены;
412
414
  - новый Coordinator chat не является fork старого Milestone;
413
415
  - bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
414
416
  - Discovery не materialized при blocking unknowns;
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: технический справочник beta.12.16
2
+ title: Codex Workflow V2: технический справочник beta.12.18
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.16
6
+ date: 1 сентября 2026
7
+ subject: Технический контракт Codex Workflow V2 beta.12.18
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 | Значение |
16
+ | Параметр beta.12.18 | Значение |
17
17
  |---|---|
18
- | npm package | `codex-workflow-v2@2.0.0-beta.12.16` |
18
+ | npm package | `codex-workflow-v2@2.0.0-beta.12.18` |
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.16 capabilities:
40
+ Ключевые beta.12.18 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`, 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 или соседней
@@ -513,6 +513,35 @@ forbiddenScope. Plan hash не меняется. Effective scope использ
513
513
  Core commit, downstream-proof assessment, corrective-replan worktree guard и strict review packet.
514
514
  Любое более широкое изменение остаётся в обычном corrective replan с Human gate.
515
515
 
516
+ # 13.8. beta.12.17 coherent Plan-integrity update source
517
+
518
+ Read-only `update plan-integrity-update-preflight` выводит `sourceVersion` из declared dependency, а
519
+ не из release-specific constant. Он принимает только exact `2.0.0-beta.12.N`, где `N >= 11` и
520
+ `N` меньше patch ordinal внешнего runner. Locked, installed, current Task branch и active Milestone
521
+ base обязаны совпадать с declared source. Любая missing/divergent surface блокирует transport.
522
+
523
+ Version consensus не заменяет остальные guards: должна существовать ровно одна eligible failed-Step
524
+ Plan-integrity assessment, observation обязана быть coherent, lease/transaction/Core operation
525
+ отсутствуют, а dirty bytes совпадают с доказанным Step scope. После dependency-only Git transport
526
+ repository-local runner регистрирует commit только через advertised
527
+ `update plan-integrity-dependency-recover`. Source consensus не усыновляет product history, не меняет
528
+ Plan/remediation evidence и не даёт generic update authority другим beta lines.
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
+
516
545
  # 14. P04-A structural replacement boundary
517
546
 
518
547
  Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
@@ -575,7 +604,7 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
575
604
  После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
576
605
  не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
577
606
 
578
- # 18. Public command surface beta.12.16
607
+ # 18. Public command surface beta.12.18
579
608
 
580
609
  | Область | Actions |
581
610
  |---|---|
@@ -606,7 +635,7 @@ active-downstream-proof bridge, beta.12.7 exact stranded-replan bridge, beta.12.
606
635
  dependency bridge и beta.12.15 Plan-integrity bridge; все они fail-closed и не дают общего разрешения
607
636
  dirty update.
608
637
 
609
- Перед beta.12.16 tag обязательны `npm ci`, `npm run validate`, `npm run test:signal-t10-check-support-e2e`, `npm run test:signal-remediation-e2e`, `npm run pack:check`,
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`,
610
639
  `npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
611
640
  `npm run docs:pdf:check`, `npm run release:check` с exact tag binding и validation
612
641
  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.12, the release gate also relies on `npm run release:check` to fail if:
32
+ For beta.12.18, 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;
@@ -61,10 +61,17 @@ For beta.12.12, the release gate also relies on `npm run release:check` to fail
61
61
  - bounded first- or repeated-failure Plan-integrity recovery, selector-required npm-check
62
62
  feasibility, exact failed-remediation/manifest/worktree
63
63
  bindings, or the no-synthetic-second-failure regression is absent.
64
+ - Plan-integrity update preflight again hard-codes one historical source release instead of deriving
65
+ a coherent exact beta.12 source from declared/locked/installed/current/base surfaces, or it accepts
66
+ a source before beta.12.11, a source not older than the runner, or any divergent version surface.
64
67
  - a direct migration check can import an external checksum/catalog authority without the producing
65
68
  Step owning it; or in-flight recovery can widen beyond the exact imported support path, bypass
66
69
  `forbiddenScope`, change the Plan hash, skip checks/Core commit/review disclosure, or require a
67
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.
68
75
  - downstream proof cannot invalidate only completed transitive-predecessor authority while
69
76
  preserving worktree/HEAD, yielding C1, and returning the same Task to fresh planning; or unrelated
70
77
  dirty files and damaged invalidation evidence do not fail closed.
@@ -22,6 +22,45 @@ state schema. Совпадение `stateSchemaVersion` до и после об
22
22
  нужна. Для alpha.6 при `stateSchemaVersion: 2` применяется не migration, а sidecar-only
23
23
  adoption posture.
24
24
 
25
+ ### beta.12.18: historical check-support scope adoption after Knowledge rebind
26
+
27
+ beta.12.18 closes a bounded post-rebind deadlock. A Task may already contain a valid beta.12.16
28
+ `continue-fix` decision that derived one exact check-support path, then refresh Knowledge and adopt
29
+ that path explicitly in a new Plan. The historical event must still be validated against its own
30
+ Plan hash; comparing it with the new Plan incorrectly reports `STATE_CORRUPT` precisely because the
31
+ new Plan now owns the path.
32
+
33
+ An external exact beta.12.18 runner recognizes only this exact shape: the Task awaits execution
34
+ authorization, no Step is running, one historical check-support decision binds the unchanged dirty
35
+ worktree, and one planned Step directly lists every derived support path in both `allowedWrites` and
36
+ `expectedOutputs`. Read-only `update plan-integrity-update-preflight` reports
37
+ `compatibilityMode=post-rebind-scope-adoption` only when all ordinary version, lease, transaction,
38
+ Core-operation, Git-head and dirty-byte guards also pass.
39
+
40
+ After `eligible=true`, use the same dependency-only base/Task transport described below. Fresh
41
+ repository-local Core registers it only through advertised
42
+ `update plan-integrity-dependency-recover`; Knowledge rebind and Risk Audit then follow fresh
43
+ `status -> next`. The adopted support path comes from the current Plan, not from implicit reuse of
44
+ the historical event. No Human approval is required for this exact machine-proved recovery. Any
45
+ additional path, dirty-byte drift, missing explicit Plan ownership, multiple matching events, active
46
+ lease or incoherent version surface remains blocked.
47
+
48
+ ### beta.12.17: coherent beta.12 Plan-integrity update transport
49
+
50
+ `update plan-integrity-update-preflight` больше не связывает совместимый transport с одним
51
+ историческим source release. Внешний exact beta.12.17 runner выводит source version из declared
52
+ dependency и требует, чтобы locked, installed, current Task branch и active Milestone base
53
+ совпадали с ним. Source должен быть exact `2.0.0-beta.12.N`, где `N >= 11` и `N` меньше patch
54
+ ordinal текущего runner. Расхождение хотя бы одной поверхности блокирует transport.
55
+
56
+ Остальные границы не изменены: ровно одна eligible Plan-integrity conflict, coherent observation,
57
+ нет lease/transaction/Core operation, а dirty set полностью совпадает с уже доказанным failed Step
58
+ scope. После `eligible=true` один dependency-only commit обновляет только `package.json` и
59
+ `package-lock.json` на Milestone base и в Task history; fresh repository-local package затем
60
+ регистрирует commit через advertised `update plan-integrity-dependency-recover`. Product bytes,
61
+ Plan hash и remediation evidence не переписываются. Этот контракт разрешает текущий `.15 -> .17`
62
+ transport и не требует нового literal для следующего совместимого beta.12 patch.
63
+
25
64
  ### beta.12.16: direct migration check-support authority
26
65
 
27
66
  Новый mechanical analyzer до execution authorization проверяет root `npm run` migration checks,
@@ -1,127 +1,103 @@
1
- # V2 beta.12.16 Validation Report
1
+ # V2 beta.12.18 Validation Report
2
2
 
3
- Release candidate `2.0.0-beta.12.16` was validated on 2026-08-31 (Europe/Moscow) with
3
+ Release candidate `2.0.0-beta.12.18` 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 `352/352` sequential tests with no failures, skips,
10
- cancellations or todos in 2,166,261.797 ms.
11
- - The release-specific `npm run test:signal-t10-check-support-e2e` gate passed `6/6`. Its
12
- Signal-shaped case reproduces the STEP-002 migration/check-support conflict, records one bounded
13
- machine-derived scope extension, retries the same Step, passes checks and produces the Core-owned
14
- Step commit without a Human replan.
15
- - Existing Signal compatibility gates remained green: `npm run test:signal-t04-recovery` passed
16
- `11/11`, `npm run test:signal-t03-replan-e2e` passed `1/1`, and `npm run
17
- test:signal-remediation-e2e` passed `2/2`.
18
- - Package dry-run passed with 284 files (approximately 1.1 MB packed and 4.4 MB unpacked). The
19
- tarball contains the compiled `check-support-anchor` analyzer and its declaration/source map.
20
- - Disposable downstream installation returned `ok=true` for the exact beta.12.16 tarball. The first
21
- sandboxed run failed only because registry DNS was unavailable; the exact network-enabled retry
22
- passed.
23
- - `npm run plugin:check` passed. `npm run docs:pdf:check` reported `stale=[]` and the exact
24
- beta.12.16 package binding.
25
-
26
- ## Live Signal reproduction before installation
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
19
+ `ok=true`. The first sandboxed attempt could not resolve the npm registry; the identical network-
20
+ enabled invocation passed.
21
+ - `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
+
25
+ ## Live Signal evidence before publication
27
26
 
28
27
  The live repository was observed read-only at:
29
28
 
30
29
  - Task branch `codex/task-01m1b79c66-current-formalization-commit-and-provide`;
31
- - HEAD `f290d0875387283c368bedd03964fb423619db7b`;
32
- - repository-local package `codex-workflow-v2@2.0.0-beta.12.15`, protocol/schema `2/2`;
33
- - Task `TASK-01M1B79C660YMNSRRZ236NTR1T`, with the last recorded STEP-002 failure at Task revision
34
- 21.
35
-
36
- HEAD is the Core-owned STEP-001 commit. Its strict external review passed with sealed packet hash
37
- `c48658ce617bca58eddba4e11f43501eb87967d076e43bd4656f512ba256358f` and seal
38
- `31cfd03a8bd9f9ba21f067703db90da97102643901725718f3e88199e486d806`.
39
-
40
- The checkout still contains exactly the eight STEP-002 product paths present at the recorded
41
- `checks-failed` boundary:
42
-
43
- - `libs/processing-decision/ports/src/processing-persistence.ts`;
44
- - `libs/processing-decision/ports/src/index.ts`;
45
- - `libs/processing-decision/adapters/postgres/src/processing-evidence-transaction.ts`;
46
- - `libs/processing-decision/adapters/postgres/src/processing-evidence-transaction.spec.ts`;
47
- - `libs/processing-decision/adapters/postgres/src/processing-evidence-transaction.integration.spec.ts`;
48
- - `libs/processing-decision/adapters/postgres/migrations/0003_current_formalization_commits.sql`;
49
- - `libs/processing-decision/adapters/postgres/migrations/manifest.json`;
50
- - `libs/processing-decision/adapters/postgres/bootstrap/0000_roles_and_schema.sql`.
51
-
52
- Focused evidence and full affected validation passed for those product changes. The exact migration
53
- check failed because `tools/postgres/check-processing-migrations.ts` directly imports
54
- `tools/postgres/processing-migration-files.ts`, while the latter did not catalog the new migration
55
- and was outside STEP-002 `allowedWrites`. Repeating the approved check could not change that result.
56
-
57
- The beta.12.16 analyzer was then run read-only against this exact repository state. It derived one
58
- candidate and no broader scope:
59
-
60
- - runner: `tools/postgres/check-processing-migrations.ts`;
61
- - support authority: `tools/postgres/processing-migration-files.ts`;
62
- - expected output:
63
- `libs/processing-decision/adapters/postgres/migrations/0003_current_formalization_commits.sql`;
64
- - reason: `CHECK_SUPPORT_ANCHOR_OUTSIDE_ALLOWED_WRITES`.
65
-
66
- Fresh beta.12.15 `status -> next` currently stops earlier at an expired writer lease and advertises
67
- only `locks repair`. No Signal lease, Workflow state, Git history, product file or chat was changed
68
- by this release-candidate reproduction. Live beta.12.16 recovery is intentionally not claimed until
69
- publication, installation, stale-lease repair and fresh repository-local readback.
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.
70
55
 
71
56
  ## Root cause corrected
72
57
 
73
- Mechanical feasibility treated the migration, manifest and bootstrap files as the Step's complete
74
- output boundary, but did not model the repository-local module imported by the approved migration
75
- check as execution authority. That support module owns the exact migration list and SHA-256 catalog;
76
- therefore the new migration cannot pass its check until the support module changes as well.
77
-
78
- This is not a semantic Plan error and not evidence that the product implementation must be
79
- discarded. The missing path is mechanically derivable from executable code and exact file anchors.
80
- The old runtime nevertheless routed the first confirmed failure back to ordinary `task run`, where
81
- the Worker remained forbidden from editing the only file that could make the approved check pass.
82
-
83
- ## Implemented contract
84
-
85
- - New analyzer `wf2.check-support-anchor@1` recognizes only a root `npm run` check, its
86
- repository-local Node/tsx runner, one direct relative static import, and a support module whose
87
- migration filename family plus SHA/catalog anchors bind an exact Plan-declared migration output.
88
- - For a future Plan, execution authorization fails closed when the producing Step does not own that
89
- exact support path. This prevents the invalid scope from reaching execution.
90
- - For an already running guarded Step, the first exact `checks-failed` event may advertise `task
91
- plan-integrity-recover`. Recovery revalidates Plan, Step, HEAD, complete dirty set, runner/support
92
- hashes, direct import, missing declared output and existing evidence under the Workflow lock.
93
- - Recovery appends one `continue-fix` decision with the exact `scopeExtensions` path. It does not
94
- change the Plan hash, product bytes, Git history or review result and does not synthesize a second
95
- failed attempt.
96
- - Worker envelope, retry boundary, Core commit, downstream proof, corrective-replan worktree guard
97
- and strict review packet all use the same effective Step scope. The original allowedWrites remain
98
- canonical and the append-only decision is visible as derived authority.
99
- - The existing missing-script and selector-required cases retain `replan-required` and their
100
- Human-confirmed corrective-replan route. Indirect imports, dynamic shell, unsupported syntax,
101
- forbidden paths, unrelated dirty files, missing SHA/catalog anchors and multiple ambiguous
102
- candidates remain fail-closed.
103
-
104
- ## PDF release documentation evidence
105
-
106
- - All three tracked Russian PDFs were regenerated from beta.12.16 sources.
107
- - Architecture is 9 pages, delegated chat-only guide is 10 pages, and technical reference is 15
108
- pages. All 34 rendered pages were visually inspected; no clipping, overlap or unreadable content
109
- was observed.
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.
110
87
 
111
88
  ## Boundaries and non-claims
112
89
 
113
- - The patch is not autonomous semantic replanning and does not permit a Worker to add an arbitrary
114
- file after a failed check.
115
- - Scope augmentation is limited to one exact mechanically proved support authority for the current
116
- migration-file family. A broader or ambiguous dependency remains an ordinary Plan conflict.
117
- - The patch does not weaken dirty-worktree, forbidden-scope, Plan identity, C1 authority, checks,
118
- Core-owned commit or sealed strict-review gates.
119
- - This report does not claim commit/tag/push, npm publication, live beta.12.16 installation, live
120
- STEP-002 recovery, STEP-002 commit/review, Task merge or Milestone completion before those
121
- operations receive their own readback.
122
-
123
- Confidence is high for the bounded analyzer, preventive authorization and runtime recovery because
124
- the full 352-test gate, release-specific Signal E2E, legacy Signal gates and read-only live candidate
125
- agree. End-to-end confidence for the active Signal Task remains conditional on publication, exact
126
- repository-local installation, advertised stale-lease repair, fresh `status -> next`, Core recovery,
127
- the real approved checks and a new sealed external review packet.
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
98
+ own readback.
99
+
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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-workflow-v2",
3
- "version": "2.0.0-beta.12.16",
3
+ "version": "2.0.0-beta.12.18",
4
4
  "description": "Requirements-first Codex development workflow with local state and explicit Git ownership.",
5
5
  "repository": {
6
6
  "type": "git",