codex-workflow-v2 2.0.0-beta.12.12 → 2.0.0-beta.12.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/src/lifecycle/corrective-replan-binding-manifest.d.ts +5 -0
- package/dist/src/lifecycle/corrective-replan-binding-manifest.js +9 -0
- package/dist/src/lifecycle/corrective-replan-binding-manifest.js.map +1 -1
- package/dist/src/lifecycle/semantic-registry.js +1 -1
- package/dist/src/state/corrective-replan-executor.js +7 -5
- package/dist/src/state/corrective-replan-executor.js.map +1 -1
- package/dist/src/state/corrective-replan-public.js +30 -6
- package/dist/src/state/corrective-replan-public.js.map +1 -1
- package/dist/src/state/corrective-replan-transaction.js +12 -4
- package/dist/src/state/corrective-replan-transaction.js.map +1 -1
- package/dist/src/state/corrective-yield-transaction.js +11 -2
- package/dist/src/state/corrective-yield-transaction.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/workflow.d.ts +1 -0
- package/dist/src/workflow.js +38 -2
- package/dist/src/workflow.js.map +1 -1
- package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
- package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
- package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
- package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +16 -5
- package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +16 -7
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +35 -8
- package/docs/validation-report.md +101 -123
- package/package.json +1 -1
- package/schemas/corrective-replan-credentials.private.schema.json +4 -2
- package/schemas/transition-definition.schema.json +8 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Codex Workflow V2: архитектура beta.12.
|
|
2
|
+
title: Codex Workflow V2: архитектура beta.12.14
|
|
3
3
|
subtitle: Источники истины, lifecycle, роли, delegation, зависимости Tasks и границы доверия
|
|
4
4
|
part: Часть 1 из 3 | Архитектура
|
|
5
5
|
document_version: 2.0
|
|
6
6
|
date: 31 августа 2026
|
|
7
|
-
subject: Архитектура и границы Codex Workflow V2 beta.12.
|
|
7
|
+
subject: Архитектура и границы Codex Workflow V2 beta.12.14
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# 1. Назначение и граница системы
|
|
@@ -18,7 +18,7 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
|
|
|
18
18
|
Система рассчитана на одного пользователя и одну машину. Она не предоставляет distributed locking,
|
|
19
19
|
криптографическую идентификацию actor string или безопасную синхронизацию state между компьютерами.
|
|
20
20
|
|
|
21
|
-
## 1.1. Что beta.12.
|
|
21
|
+
## 1.1. Что beta.12.14 гарантирует
|
|
22
22
|
|
|
23
23
|
- exact project-local npm package и совместимый handshake до lifecycle действий;
|
|
24
24
|
- Discovery до materialization Task или Milestone;
|
|
@@ -41,7 +41,7 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
|
|
|
41
41
|
один additive remediation Task без нового Human gate; Core сохраняет Milestone semantics и выводит
|
|
42
42
|
authority из текущей Milestone authorization и exact audit evidence.
|
|
43
43
|
|
|
44
|
-
## 1.2. Что beta.12.
|
|
44
|
+
## 1.2. Что beta.12.14 не гарантирует
|
|
45
45
|
|
|
46
46
|
- правильность продуктовой идеи или автоматически выбранного provider Task;
|
|
47
47
|
- semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
|
|
@@ -323,6 +323,17 @@ manifest/runner hashes, HEAD и dirty allowlist. Exact beta.12.11 update bridge
|
|
|
323
323
|
Результат — один `replan-required` decision и обычный corrective replan с исполняемой check command;
|
|
324
324
|
повтор старой команды, ручной commit product files и state editing не допускаются.
|
|
325
325
|
|
|
326
|
+
beta.12.14 устраняет следующий доказанный разрыв этого пути. Corrective-replan credential раздельно
|
|
327
|
+
связывает исходную Knowledge revision/hash Task и целевую active Knowledge revision/hash replacement
|
|
328
|
+
Plan. Различие разрешено только при exact Plan-integrity dependency recovery: текущий system commit,
|
|
329
|
+
package version, failed Step, Plan, полная remediation history, dirty file set и их bytes должны
|
|
330
|
+
совпасть. Следующее dependency-only обновление после corrective yield может перенести ту же compatibility
|
|
331
|
+
на новый HEAD только при точном parent commit и неизменном worktree. Completed corrective-yield journal
|
|
332
|
+
остаётся историческим prefix-доказательством и не блокирует последующие append-only handoff events.
|
|
333
|
+
Completed corrective-replan journal также остаётся читаемым после эволюции binding manifest, но только
|
|
334
|
+
если его завершённый manifest/runtime/catalog tuple есть в append-only historical registry. Pending и
|
|
335
|
+
неизвестные identity по-прежнему fail-closed, поэтому compatibility не выдаёт новую authority.
|
|
336
|
+
|
|
326
337
|
Docker socket `EPERM` в sandbox не является доказательством сломанного daemon. Gateway один раз
|
|
327
338
|
повторяет exact health probe или Plan check с sandbox escalation без расходования remediation attempt.
|
|
328
339
|
Restart Docker Desktop требует отдельного разрешения и допустим только после escalated daemon failure.
|
|
@@ -332,7 +343,7 @@ Restart Docker Desktop требует отдельного разрешения
|
|
|
332
343
|
# 10. Operational checklist
|
|
333
344
|
|
|
334
345
|
- exact package version установлен, bundled gateway соответствует release и переустановлен;
|
|
335
|
-
- handshake подтверждает protocol 2, state schema 2 и beta.12.
|
|
346
|
+
- handshake подтверждает protocol 2, state schema 2 и beta.12.14 capabilities;
|
|
336
347
|
- каждый mutation следует свежему `status -> next` и exact option contract;
|
|
337
348
|
- Docker permission failure сначала классифицируется как sandbox boundary, а не как infra retry;
|
|
338
349
|
- semantic unknowns и human gates не маскируются delegation;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Codex Workflow V2: delegated chat-only guide
|
|
3
|
-
subtitle: Актуальный beta.12.
|
|
3
|
+
subtitle: Актуальный beta.12.14 путь от нового Discovery до принятого Milestone без ручного CLI
|
|
4
4
|
part: Часть 2 из 3 | Практика
|
|
5
5
|
document_version: 2.0
|
|
6
6
|
date: 31 августа 2026
|
|
7
|
-
subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.
|
|
7
|
+
subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.14
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# 1. Рабочая модель beta.12.
|
|
10
|
+
# 1. Рабочая модель beta.12.14
|
|
11
11
|
|
|
12
12
|
Пользователь работает в одном Codex Project и формулирует продуктовый outcome. Coordinator выполняет
|
|
13
13
|
CLI, создаёт отдельные Task/Reviewer chats и ведёт supervision loop. Workflow Core остаётся authority
|
|
@@ -40,7 +40,7 @@ Blocking unknown, scope change, grant issuance или unrecoverable integrity co
|
|
|
40
40
|
# 2. Подготовка проекта перед новым Discovery
|
|
41
41
|
|
|
42
42
|
1. Убедитесь, что checkout чистый и выбран правильный repository root.
|
|
43
|
-
2. Установите beta.12.
|
|
43
|
+
2. Установите beta.12.14 как точную devDependency после публикации release.
|
|
44
44
|
3. Обновите и переустановите bundled `codex-workflow-gateway` этого release.
|
|
45
45
|
4. Проверьте, что declared и installed package versions равны.
|
|
46
46
|
5. Запустите новый Coordinator chat, не fork старого Milestone conversation.
|
|
@@ -56,7 +56,7 @@ AGENTS.md
|
|
|
56
56
|
-> doctor только как дополнительная диагностика
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
Handshake beta.12.
|
|
59
|
+
Handshake beta.12.14 должен сообщать `packageVersion=2.0.0-beta.12.14`, `protocolVersion=2`,
|
|
60
60
|
`stateSchemaVersion=2`, dependency DAG, initial Plan transaction, mechanical feasibility,
|
|
61
61
|
Milestone autonomy и structural replacement disabled capabilities.
|
|
62
62
|
|
|
@@ -117,7 +117,7 @@ delegate, scope, transitions и expiry. DGR передаётся только е
|
|
|
117
117
|
```text
|
|
118
118
|
НОВЫЙ COORDINATOR CHAT
|
|
119
119
|
|
|
120
|
-
Проведи новый Milestone через Codex Workflow V2 beta.12.
|
|
120
|
+
Проведи новый Milestone через Codex Workflow V2 beta.12.14 в delegated режиме.
|
|
121
121
|
Repository: <ABSOLUTE-REPOSITORY-ROOT>.
|
|
122
122
|
Milestone ID: AUTO.
|
|
123
123
|
Delegate actor: agent:milestone-coordinator.
|
|
@@ -360,6 +360,15 @@ Knowledge refresh. Затем выполните advertised credential recovery,
|
|
|
360
360
|
`task corrective-yield`. Replacement Plan меняет только неисполняемую check на
|
|
361
361
|
`npm run validate:affected -- --files=<Step allowedWrites>` и проходит fresh Plan Risk Audit до нового run.
|
|
362
362
|
|
|
363
|
+
Если update произошёл уже после `task corrective-yield`, beta.12.14 допускает только advertised
|
|
364
|
+
`update plan-integrity-dependency-recover`: parent должен быть предыдущим зарегистрированным recovery
|
|
365
|
+
commit, а failed Step, Plan, remediation IDs, dirty paths и dirty SHA-256 — полностью совпадать. После
|
|
366
|
+
recovery снова запросите `status -> next`; ожидаемый route остаётся `task corrective-replan-prepare`.
|
|
367
|
+
Если новый package сначала сообщает `TASK_TRANSACTION_INTEGRITY_FAILED` только для terminal
|
|
368
|
+
corrective-replan journals предыдущего release, не repair/delete/edit state. beta.12.14 читает лишь
|
|
369
|
+
точно зарегистрированные completed manifest/runtime/catalog tuples; pending либо неизвестный tuple
|
|
370
|
+
остаётся блокером. После установки обязательно повторите handshake и последовательные `status -> next`.
|
|
371
|
+
|
|
363
372
|
Для exact beta.12.6 stranded-replan shape сначала нужен eligible read-only source preflight с exact
|
|
364
373
|
revision/HEAD/dirty hash. Затем два beta.12.7 dependency-only commits и advertised dependency/replan
|
|
365
374
|
recoveries. После Knowledge refresh `next` обязан остаться на `task plan-set`; новый единый Step должен
|
|
@@ -392,7 +401,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
|
|
|
392
401
|
|
|
393
402
|
# 14. Итоговый checklist пользователя
|
|
394
403
|
|
|
395
|
-
- beta.12.
|
|
404
|
+
- beta.12.14 exact package и новый bundled gateway установлены;
|
|
396
405
|
- новый Coordinator chat не является fork старого Milestone;
|
|
397
406
|
- bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
|
|
398
407
|
- Discovery не materialized при blocking unknowns;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Codex Workflow V2: технический справочник beta.12.
|
|
2
|
+
title: Codex Workflow V2: технический справочник beta.12.14
|
|
3
3
|
subtitle: Protocol 2, state schema 2, transactions, credentials, dependency authority, review и recovery
|
|
4
4
|
part: Часть 3 из 3 | Technical reference
|
|
5
5
|
document_version: 2.0
|
|
6
6
|
date: 31 августа 2026
|
|
7
|
-
subject: Технический контракт Codex Workflow V2 beta.12.
|
|
7
|
+
subject: Технический контракт Codex Workflow V2 beta.12.14
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# 1. Runtime contract
|
|
@@ -13,9 +13,9 @@ Workflow V2 предоставляет локальные revisioned transitions
|
|
|
13
13
|
и `value` либо структурированную ошибку с `code`, `message` и `details`. Chat, PDF и gateway не создают
|
|
14
14
|
authority сами: mutating permission определяется runtime state и свежим `next`.
|
|
15
15
|
|
|
16
|
-
| Параметр beta.12.
|
|
16
|
+
| Параметр beta.12.14 | Значение |
|
|
17
17
|
|---|---|
|
|
18
|
-
| npm package | `codex-workflow-v2@2.0.0-beta.12.
|
|
18
|
+
| npm package | `codex-workflow-v2@2.0.0-beta.12.14` |
|
|
19
19
|
| protocolVersion | 2 |
|
|
20
20
|
| stateSchemaVersion | 2 |
|
|
21
21
|
| lifecycle epoch | 2 |
|
|
@@ -37,7 +37,7 @@ Gateway выполняет:
|
|
|
37
37
|
5. вызов только package-local `dist/src/cli.js --repo <root>`;
|
|
38
38
|
6. `gateway handshake` до lifecycle действий.
|
|
39
39
|
|
|
40
|
-
Ключевые beta.12.
|
|
40
|
+
Ключевые beta.12.14 capabilities:
|
|
41
41
|
|
|
42
42
|
| Группа | Capabilities |
|
|
43
43
|
|---|---|
|
|
@@ -468,6 +468,31 @@ corrective-derived reconcile/approval; прочий drift fail-closed. Product b
|
|
|
468
468
|
переносятся. Fresh route продолжается через credential replacement, `plan-integrity-recover`, yield и
|
|
469
469
|
corrective replan с selector-bearing check.
|
|
470
470
|
|
|
471
|
+
# 13.6. beta.12.14 source/target Knowledge binding
|
|
472
|
+
|
|
473
|
+
Corrective-replan receipt теперь включает две разные пары. `knowledgeRevision/knowledgeHash` связывает
|
|
474
|
+
исходное состояние Task; `targetKnowledgeRevision/targetKnowledgeHash` связывает active Project
|
|
475
|
+
Knowledge Map и replacement Plan. Executor проверяет source под Task lock, candidate Plan — по target,
|
|
476
|
+
а Risk Audit и materialized Task получают target binding.
|
|
477
|
+
|
|
478
|
+
Source и target могут различаться только при exact `dependencyProvenanceRecoveries.planIntegrity` для
|
|
479
|
+
текущего HEAD и package version. Record обязан совпасть по Plan, failed Step, всей remediation event ID
|
|
480
|
+
последовательности, dirty paths и повторно вычисленному dirty SHA-256. Для последовательного package
|
|
481
|
+
update после corrective yield Core переносит compatibility лишь с зарегистрированного `HEAD^`; любое
|
|
482
|
+
изменение product bytes, Step status, Plan, decision или C1 posture отключает route.
|
|
483
|
+
|
|
484
|
+
Completed corrective-yield transaction проверяет неизменный canonical yield event как prefix текущей
|
|
485
|
+
append-only handoff history. Это сохраняет tamper detection, но разрешает новый handoff после успешного
|
|
486
|
+
corrective replan. E2E release gate проходит prepare/confirm/execute, authorization, handoff/claim,
|
|
487
|
+
selector-bearing Step completion commit и strict Step review.
|
|
488
|
+
|
|
489
|
+
Completed corrective-replan transaction сохраняет authority identity своего release. Текущий manifest
|
|
490
|
+
обязателен для любой pending/in-flight transaction; completed journal может использовать только exact
|
|
491
|
+
tuple из append-only registry: manifest SHA-256, runtime fingerprint и catalog hash. Неизвестный tuple,
|
|
492
|
+
legacy tuple у незавершённой transaction, повреждённый intent/phase chain или owned target остаётся
|
|
493
|
+
`journal-invalid`. Это позволяет читать terminal beta.12.12 history после расширения binding manifest,
|
|
494
|
+
не превращая legacy identity в новую execution authority.
|
|
495
|
+
|
|
471
496
|
# 14. P04-A structural replacement boundary
|
|
472
497
|
|
|
473
498
|
Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
|
|
@@ -530,7 +555,7 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
|
|
|
530
555
|
После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
|
|
531
556
|
не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
|
|
532
557
|
|
|
533
|
-
# 18. Public command surface beta.12.
|
|
558
|
+
# 18. Public command surface beta.12.14
|
|
534
559
|
|
|
535
560
|
| Область | Actions |
|
|
536
561
|
|---|---|
|
|
@@ -551,15 +576,17 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
|
|
|
551
576
|
Exact options берутся из fresh `next`; command help используется только когда
|
|
552
577
|
`exactOptionContractAvailable=false` или syntax действительно неизвестен.
|
|
553
578
|
|
|
579
|
+
<!-- pagebreak -->
|
|
580
|
+
|
|
554
581
|
# 19. Release и package update gates
|
|
555
582
|
|
|
556
583
|
Перед package update project-local `update preflight` должен вернуть `safe=true`: clean checkout, нет
|
|
557
584
|
running Step и active/stale writer lease. Исключения — документированный alpha.7 rescue, beta.12.6
|
|
558
585
|
active-downstream-proof bridge, beta.12.7 exact stranded-replan bridge, beta.12.9 historical-Step
|
|
559
|
-
dependency bridge и beta.12.
|
|
586
|
+
dependency bridge и beta.12.14 Plan-integrity bridge; все они fail-closed и не дают общего разрешения
|
|
560
587
|
dirty update.
|
|
561
588
|
|
|
562
|
-
Перед beta.12.
|
|
589
|
+
Перед beta.12.14 tag обязательны `npm ci`, `npm run validate`, `npm run test:signal-remediation-e2e`, `npm run pack:check`,
|
|
563
590
|
`npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
|
|
564
591
|
`npm run docs:pdf:check`, `npm run release:check` с exact tag binding и validation
|
|
565
592
|
append-only real-agent lifecycle log.
|
|
@@ -1,134 +1,112 @@
|
|
|
1
|
-
# V2 beta.12.
|
|
1
|
+
# V2 beta.12.14 Validation Report
|
|
2
2
|
|
|
3
|
-
Release candidate `2.0.0-beta.12.
|
|
3
|
+
Release candidate `2.0.0-beta.12.14` was validated on 2026-08-31 (Europe/Moscow) with
|
|
4
4
|
Node.js 24.17.0.
|
|
5
5
|
|
|
6
6
|
## Automated release evidence
|
|
7
7
|
|
|
8
|
-
- `npm ci` completed from the exact lockfile
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
replan
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
8
|
+
- A clean `npm ci` completed from the exact lockfile and reported zero vulnerabilities. The first
|
|
9
|
+
sandboxed attempt failed only on registry DNS (`ENOTFOUND`); the exact network-enabled retry passed.
|
|
10
|
+
- `npm run validate` passed typecheck and `349/349` sequential tests with no failures, skips,
|
|
11
|
+
cancellations or todos in 2,224,925.03 ms.
|
|
12
|
+
- The new regression case completes a corrective-replan transaction, rewrites its self-bound
|
|
13
|
+
identity and phase chain to the exact beta.12.12 historical tuple, and proves observation remains
|
|
14
|
+
clean. An unknown tuple and the same historical tuple on a pending transaction both remain
|
|
15
|
+
`journal-invalid`.
|
|
16
|
+
- The full suite still includes the beta.12.13 Signal-shaped E2E: repeated selector-contract
|
|
17
|
+
failures, consecutive dependency-only updates, exact carried compatibility, source/target
|
|
18
|
+
Knowledge separation, corrective replan, fresh authorization/C1, selector-bearing validation,
|
|
19
|
+
Core Step commit and strict Step review.
|
|
20
|
+
- `npm run test:signal-remediation-e2e` passed `2/2`; `npm run
|
|
21
|
+
test:signal-t03-replan-e2e` passed `1/1`; and `npm run test:signal-t04-recovery` passed `11/11`.
|
|
22
|
+
- Package dry-run passed with 281 files (approximately 1.1 MB packed and 4.3 MB unpacked), and the
|
|
23
|
+
disposable downstream installation returned `ok=true` for the exact beta.12.14 tarball.
|
|
24
|
+
- `npm run plugin:check`, `npm run docs:pdf:check`,
|
|
25
|
+
`RELEASE_TAG=v2.0.0-beta.12.14 npm run release:check`, and `git diff --check` all passed. PDF
|
|
26
|
+
freshness reported an empty stale set and exact beta.12.14 package binding.
|
|
27
|
+
|
|
28
|
+
## Live Signal reproduction
|
|
29
|
+
|
|
30
|
+
The beta.12.13 package was published and installed into Signal through one dependency-only commit
|
|
31
|
+
`51e5e61b39ff9a234dcc9ccb80d81da710570f55`. Declared, locked, installed, Task-branch and `main`
|
|
32
|
+
versions all became exact `2.0.0-beta.12.13`; the three uncommitted STEP-001 product files retained
|
|
33
|
+
their original SHA-256 values.
|
|
34
|
+
|
|
35
|
+
Fresh beta.12.13 handshake succeeded with protocol/state schema `2/2`, but read-only `status` failed
|
|
36
|
+
closed with `TASK_TRANSACTION_INTEGRITY_FAILED`. It identified exactly three `journal-invalid`
|
|
37
|
+
completed Task transactions:
|
|
38
|
+
|
|
39
|
+
- `TASK-01M0HVJ4S7GF6JNCNDHPMAVG8Y` / `c66a4bf6b4e67c2b406cccd8229e827a96b7c99e5609d9e025b835817c45e523`;
|
|
40
|
+
- `TASK-01M0HVNAWGQGSSXCDJ4DDGEZXV` / `52838ab5e81da7e471a377ff29828f0ad5326bcb20581c9ee65387e617e1446d`;
|
|
41
|
+
- `TASK-01M0WXJ2GHGYRH86HR7FMKWSTS` / `d5024dc6ab5b2d85da57b6c7d44b8927e0c1558e890ee434f3911712f6faa56a`.
|
|
42
|
+
|
|
43
|
+
All three were terminal corrective-replan transactions created by the prior 28-field binding model.
|
|
44
|
+
Their exact common identity was manifest SHA-256
|
|
45
|
+
`edab7ee7ac4018e759f5fc702a11a0fd113ef4f2cf8ed8fa823a59fde3012a1a`, runtime fingerprint
|
|
46
|
+
`bd4e7a0ddfcb6abc0c5eb107775e6aea7e08c4606dda4d945d77af8a4520710d`, and catalog hash
|
|
47
|
+
`fa1d11860d4f07978c3b8e85d1f91cd3d15b17284b05f41e05d462d3bb092aed`.
|
|
48
|
+
|
|
49
|
+
The beta.12.14 implementation was built locally and its transaction observer was run read-only
|
|
50
|
+
against the real Signal external state. It returned `pending=0`, `corrupt=0`. No state, journal,
|
|
51
|
+
sidecar, Git history or product file was modified by this reproduction.
|
|
37
52
|
|
|
38
53
|
## Root cause corrected
|
|
39
54
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
allowed without a Human gate only when the sole canonical drift is the exact Workflow pin in
|
|
78
|
-
`package.json`; any unrelated Knowledge change fails closed.
|
|
79
|
-
- The compatibility record is authority only for the exact post-update Plan-integrity recovery. A
|
|
80
|
-
fresh replacement Plan must bind the current Knowledge Map and replace the invalid check with an
|
|
81
|
-
executable selector-bearing command. Ordinary authorization, C1, Core commit, strict review, and
|
|
82
|
-
subsequent navigation remain mandatory.
|
|
83
|
-
- A repairable legacy remediation-mode defect outranks this new preflight. Plan-integrity assessment
|
|
84
|
-
reports itself ineligible and leaves `next` free to advertise the established
|
|
85
|
-
`task remediation-mode-recover` route.
|
|
86
|
-
- Handshake adds `plan-integrity-update-recovery-v1`; protocol and state schema remain `2/2`.
|
|
87
|
-
|
|
88
|
-
## Signal-shaped and negative evidence
|
|
89
|
-
|
|
90
|
-
The new synthetic E2E reproduces the real Signal boundary rather than testing a helper in isolation:
|
|
91
|
-
|
|
92
|
-
- beta.12.11 package/lock and approved Knowledge Map;
|
|
93
|
-
- an active claimed guarded Step with four distinct `checks-failed` events;
|
|
94
|
-
- the same missing selector contract as Signal;
|
|
95
|
-
- the exact allowlisted dirty worktree;
|
|
96
|
-
- a dependency-only beta.12.12 commit;
|
|
97
|
-
- automatic package-only Knowledge refresh and compatibility registration;
|
|
98
|
-
- writer credential replacement, Plan-integrity recovery, corrective yield, and fresh corrective
|
|
99
|
-
replan preparation.
|
|
100
|
-
|
|
101
|
-
Negative coverage rejects a runner inside the current Step write scope, unrelated dirty files,
|
|
102
|
-
tampered evidence, an active lease, wider dependency commits, changed worktree bytes, stale
|
|
103
|
-
Task/Plan/Step bindings, transaction conflicts, and unrelated Knowledge drift. Existing tests also
|
|
104
|
-
prove that Plan-integrity preflight cannot hide the older remediation-mode recovery route.
|
|
105
|
-
|
|
106
|
-
Live Signal mutation remains post-publication work. It must preserve the three current Worker files,
|
|
107
|
-
transport only package/lock, use fresh repository-local handshake/status/next before each mutation,
|
|
108
|
-
and follow only advertised recovery actions. No manual Workflow-state edit, history rewrite, Task
|
|
109
|
-
cancellation, duplicate Task, or replacement Milestone is authorized by this release.
|
|
55
|
+
beta.12.13 expanded the live corrective-replan binding manifest from 28 to 30 fields so source Task
|
|
56
|
+
Knowledge and target replacement-Plan Knowledge could differ under exact Plan-integrity compatibility.
|
|
57
|
+
The transaction journal validator compared every stored journal with only the current manifest hash.
|
|
58
|
+
Consequently, already completed and otherwise intact beta.12.12 transactions became unreadable after
|
|
59
|
+
the legitimate manifest evolution.
|
|
60
|
+
|
|
61
|
+
The problem was not corrupted Signal state and not a missing repair operation. It was missing
|
|
62
|
+
versioned read compatibility for consumed, terminal Core transaction authority. Repairing, deleting or
|
|
63
|
+
rewriting those journals would have destroyed evidence and hidden the product defect.
|
|
64
|
+
|
|
65
|
+
## Implemented compatibility contract
|
|
66
|
+
|
|
67
|
+
- The current binding manifest remains mandatory for every new, pending or in-flight
|
|
68
|
+
corrective-replan transaction.
|
|
69
|
+
- An append-only registry records exact historical completed identities as a three-value tuple:
|
|
70
|
+
manifest SHA-256, runtime semantic fingerprint and runtime catalog hash.
|
|
71
|
+
- A non-current identity is accepted only when the journal phase is `completed` and the full tuple is
|
|
72
|
+
present in that registry.
|
|
73
|
+
- Existing schema validation, path identity, intent hash, phase hash chain, target inventory, owned
|
|
74
|
+
preimage/postimage digests, sidecar anchors, completion result and canonical-target readback remain
|
|
75
|
+
mandatory. Historical registration bypasses none of them.
|
|
76
|
+
- Unknown tuples and historical tuples on nonterminal transactions remain fail closed. A historical
|
|
77
|
+
completed journal is read evidence only; it cannot mint a new receipt, resume execution or become
|
|
78
|
+
current transition authority.
|
|
79
|
+
- Protocol and state schema remain `2/2`; no state migration or repair command is required.
|
|
80
|
+
|
|
81
|
+
## Existing beta.12.13 contract retained
|
|
82
|
+
|
|
83
|
+
- Corrective-replan credentials still separate source `knowledgeRevision`/`knowledgeHash` from target
|
|
84
|
+
`targetKnowledgeRevision`/`targetKnowledgeHash`.
|
|
85
|
+
- Source/target difference still requires an exact current Plan-integrity recovery matching HEAD,
|
|
86
|
+
package version, system commit, Plan, failed Step, full remediation history, dirty paths and dirty
|
|
87
|
+
worktree hash.
|
|
88
|
+
- Consecutive package-only updates can still carry compatibility only from one exact registered
|
|
89
|
+
recovery at `HEAD^`, with unchanged product bytes and no C1 posture.
|
|
90
|
+
- Completed corrective-yield journals still require their owned event bytes to be an exact prefix of
|
|
91
|
+
a valid current append-only handoff history.
|
|
110
92
|
|
|
111
93
|
## PDF release documentation evidence
|
|
112
94
|
|
|
113
|
-
- All three tracked Russian PDFs were regenerated from beta.12.
|
|
114
|
-
- Architecture is 9 pages,
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
Confidence is high for selector detection, repeated-failure recovery, update compatibility,
|
|
132
|
-
transaction atomicity, regression compatibility, package composition, downstream installation,
|
|
133
|
-
gateway and documentation. Live Signal confidence remains conditional on exact publication,
|
|
134
|
-
installation, fresh Core readback, and completion of the previously blocked Step.
|
|
95
|
+
- All three tracked Russian PDFs were regenerated from beta.12.14 sources.
|
|
96
|
+
- Architecture is 9 pages, delegated chat-only guide is 10 pages, and technical reference is 14
|
|
97
|
+
pages. All 33 pages were rendered and visually inspected; the release-gate appendix has an explicit
|
|
98
|
+
page boundary, and no clipping, overlap or unreadable content was observed.
|
|
99
|
+
|
|
100
|
+
## Boundaries and non-claims
|
|
101
|
+
|
|
102
|
+
- The historical registry is not a wildcard, schema migration, state repair or permission to accept
|
|
103
|
+
arbitrary old bytes. Each prior identity must be added explicitly and tested.
|
|
104
|
+
- The patch does not weaken pending transaction recovery, current Core authority, dirty-worktree
|
|
105
|
+
boundaries, review gates or product checks.
|
|
106
|
+
- This report does not claim commit/tag/push, npm publication, live beta.12.14 installation, dependency
|
|
107
|
+
recovery or STEP-001 completion before each operation receives its own readback.
|
|
108
|
+
|
|
109
|
+
Confidence is high for historical completed-journal compatibility because the focused test, full
|
|
110
|
+
349-test gate and read-only real Signal state inspection agree. End-to-end confidence remains
|
|
111
|
+
conditional on publication, exact Signal installation, fresh repository-local `status -> next`, and
|
|
112
|
+
completion of the blocked STEP-001 through Core-advertised routes.
|
package/package.json
CHANGED
|
@@ -12,14 +12,16 @@
|
|
|
12
12
|
},
|
|
13
13
|
"bindingValues": {
|
|
14
14
|
"type": "object", "additionalProperties": false,
|
|
15
|
-
"required": ["transitionId", "runtimeFingerprint", "catalogHash", "lifecycleEpoch", "taskId", "revision", "currentPlanHash", "briefHash", "knowledgeRevision", "knowledgeHash", "gitHead", "guardedStepId", "correctiveDecisionEventId", "correctiveDecisionHash", "attemptCount", "remediationTailHash", "candidatePlanHash", "candidateStepSetHash", "planAuthorIdentityHash", "planValidationHash", "planValidatorIdentityHash", "riskAuditHash", "riskAuditorIdentityHash", "actorIdentityHash", "actorRole", "humanPrincipalIdentityHash", "capabilityId", "capabilityVersion"],
|
|
15
|
+
"required": ["transitionId", "runtimeFingerprint", "catalogHash", "lifecycleEpoch", "taskId", "revision", "currentPlanHash", "briefHash", "knowledgeRevision", "knowledgeHash", "targetKnowledgeRevision", "targetKnowledgeHash", "gitHead", "guardedStepId", "correctiveDecisionEventId", "correctiveDecisionHash", "attemptCount", "remediationTailHash", "candidatePlanHash", "candidateStepSetHash", "planAuthorIdentityHash", "planValidationHash", "planValidatorIdentityHash", "riskAuditHash", "riskAuditorIdentityHash", "actorIdentityHash", "actorRole", "humanPrincipalIdentityHash", "capabilityId", "capabilityVersion"],
|
|
16
16
|
"properties": {
|
|
17
17
|
"transitionId": { "const": "task.plan.corrective-replan" },
|
|
18
18
|
"runtimeFingerprint": { "$ref": "#/$defs/hash" }, "catalogHash": { "$ref": "#/$defs/hash" },
|
|
19
19
|
"lifecycleEpoch": { "const": 2 }, "taskId": { "$ref": "#/$defs/id" },
|
|
20
20
|
"revision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "currentPlanHash": { "$ref": "#/$defs/hash" },
|
|
21
21
|
"briefHash": { "$ref": "#/$defs/hash" }, "knowledgeRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
|
|
22
|
-
"knowledgeHash": { "$ref": "#/$defs/hash" },
|
|
22
|
+
"knowledgeHash": { "$ref": "#/$defs/hash" },
|
|
23
|
+
"targetKnowledgeRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
|
|
24
|
+
"targetKnowledgeHash": { "$ref": "#/$defs/hash" }, "gitHead": { "type": "string", "pattern": "^(?:[a-f0-9]{40}|[a-f0-9]{64})$" },
|
|
23
25
|
"guardedStepId": { "$ref": "#/$defs/id" }, "correctiveDecisionEventId": { "$ref": "#/$defs/id" },
|
|
24
26
|
"correctiveDecisionHash": { "$ref": "#/$defs/hash" }, "attemptCount": { "type": "integer", "minimum": 2, "maximum": 9007199254740991 },
|
|
25
27
|
"remediationTailHash": { "$ref": "#/$defs/hash" }, "candidatePlanHash": { "$ref": "#/$defs/hash" },
|
|
@@ -436,6 +436,8 @@
|
|
|
436
436
|
"projection.corrective-replan.candidate@1:field.plan-validator-identity-hash",
|
|
437
437
|
"projection.corrective-replan.candidate@1:field.risk-audit-hash",
|
|
438
438
|
"projection.corrective-replan.candidate@1:field.risk-auditor-identity-hash",
|
|
439
|
+
"projection.corrective-replan.candidate@1:field.target-knowledge-hash",
|
|
440
|
+
"projection.corrective-replan.candidate@1:field.target-knowledge-revision",
|
|
439
441
|
"projection.corrective-replan.execution-receipt@1:field.actor-identity-hash",
|
|
440
442
|
"projection.corrective-replan.execution-receipt@1:field.actor-role",
|
|
441
443
|
"projection.corrective-replan.execution-receipt@1:field.attempt-count",
|
|
@@ -461,6 +463,8 @@
|
|
|
461
463
|
"projection.corrective-replan.execution-receipt@1:field.risk-audit-hash",
|
|
462
464
|
"projection.corrective-replan.execution-receipt@1:field.risk-auditor-identity-hash",
|
|
463
465
|
"projection.corrective-replan.execution-receipt@1:field.runtime-fingerprint",
|
|
466
|
+
"projection.corrective-replan.execution-receipt@1:field.target-knowledge-hash",
|
|
467
|
+
"projection.corrective-replan.execution-receipt@1:field.target-knowledge-revision",
|
|
464
468
|
"projection.corrective-replan.execution-receipt@1:field.task-id",
|
|
465
469
|
"projection.corrective-replan.execution-receipt@1:field.task-revision",
|
|
466
470
|
"projection.corrective-replan.execution-receipt@1:field.transition-id",
|
|
@@ -535,6 +539,8 @@
|
|
|
535
539
|
"projection.input.execution-receipt@1:field.risk-audit-hash",
|
|
536
540
|
"projection.input.execution-receipt@1:field.risk-auditor-identity-hash",
|
|
537
541
|
"projection.input.execution-receipt@1:field.runtime-fingerprint",
|
|
542
|
+
"projection.input.execution-receipt@1:field.target-knowledge-hash",
|
|
543
|
+
"projection.input.execution-receipt@1:field.target-knowledge-revision",
|
|
538
544
|
"projection.input.execution-receipt@1:field.task-id",
|
|
539
545
|
"projection.input.execution-receipt@1:field.task-revision",
|
|
540
546
|
"projection.input.execution-receipt@1:field.transition-id",
|
|
@@ -620,6 +626,8 @@
|
|
|
620
626
|
"field.runtime-fingerprint",
|
|
621
627
|
"field.step-id",
|
|
622
628
|
"field.step-status",
|
|
629
|
+
"field.target-knowledge-hash",
|
|
630
|
+
"field.target-knowledge-revision",
|
|
623
631
|
"field.task-id",
|
|
624
632
|
"field.task-plan-hash",
|
|
625
633
|
"field.task-revision",
|