codex-workflow-v2 2.0.0-beta.12.15 → 2.0.0-beta.12.17
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 +22 -12
- package/dist/src/alpha6/check-support-anchor.d.ts +24 -0
- package/dist/src/alpha6/check-support-anchor.js +102 -0
- package/dist/src/alpha6/check-support-anchor.js.map +1 -0
- package/dist/src/alpha6/downstream-proof.js +4 -2
- package/dist/src/alpha6/downstream-proof.js.map +1 -1
- package/dist/src/alpha6/mechanical-feasibility.js +14 -0
- package/dist/src/alpha6/mechanical-feasibility.js.map +1 -1
- package/dist/src/alpha6/plan-integrity.js +55 -8
- package/dist/src/alpha6/plan-integrity.js.map +1 -1
- package/dist/src/alpha6/remediation.d.ts +1 -0
- package/dist/src/alpha6/remediation.js +86 -5
- package/dist/src/alpha6/remediation.js.map +1 -1
- package/dist/src/cli.js +2 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +31 -2
- package/dist/src/reviewer.d.ts +9 -4
- package/dist/src/reviewer.js +10 -8
- package/dist/src/reviewer.js.map +1 -1
- package/dist/src/state/corrective-replan-public.js +5 -4
- package/dist/src/state/corrective-replan-public.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/workflow.js +45 -12
- package/dist/src/workflow.js.map +1 -1
- package/docs/autonomy-guardrails.md +17 -14
- package/docs/development-flow.md +7 -7
- 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 +22 -5
- package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +12 -7
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +38 -7
- package/docs/release.md +17 -9
- package/docs/updating-existing-project.md +34 -0
- package/docs/validation-report.md +96 -98
- package/package.json +2 -1
- package/schemas/authorization-event.schema.json +2 -2
- package/schemas/corrective-decision-event.schema.json +67 -4
|
@@ -145,25 +145,28 @@ commit, or unverified recovery remains blocked.
|
|
|
145
145
|
|
|
146
146
|
### First-failure Plan-integrity recovery
|
|
147
147
|
|
|
148
|
-
A mechanically impossible Plan check must not consume
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
following
|
|
152
|
-
|
|
153
|
-
- the failed Step contains an exact root `npm run <script>`
|
|
154
|
-
|
|
155
|
-
-
|
|
148
|
+
A mechanically impossible Plan check must not consume another attempt merely to unlock its known
|
|
149
|
+
correction. After the first guarded `checks-failed` event, Core performs a read-only bounded
|
|
150
|
+
assessment. Existing missing-script and required-selector conflicts route to corrective replan.
|
|
151
|
+
beta.12.16 additionally recognizes one exact check-support conflict when all of the following hold:
|
|
152
|
+
|
|
153
|
+
- the failed Step contains an exact root `npm run <script>` check and declares an absent migration
|
|
154
|
+
output path that is inside its original `allowedWrites`;
|
|
155
|
+
- the root script resolves to a repository-local runner whose direct static import resolves to a
|
|
156
|
+
tracked checksum/catalog support module;
|
|
157
|
+
- that support module has SHA-256 anchors and names an existing migration in the same file family,
|
|
158
|
+
but is outside the Step's `allowedWrites` and `forbiddenScope`;
|
|
156
159
|
- exactly one ordinary `checks-failed` remediation event exists for the Step;
|
|
157
160
|
- no corrective decision exists for its second-attempt binding;
|
|
158
161
|
- every dirty file remains inside the Step's current `allowedWrites` and outside its
|
|
159
162
|
`forbiddenScope`.
|
|
160
163
|
|
|
161
|
-
The recovery appends one hash-bound `
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
164
|
+
The recovery appends one hash-bound `continue-fix` decision for attempt ordinal 2 and the exact
|
|
165
|
+
support path. It preserves the worktree and Plan hash; it does not alter source or Git. The current
|
|
166
|
+
C1 actor presents the existing writer token and fresh `task run` exposes the effective scope.
|
|
167
|
+
`task step-complete` remains the only commit owner, all checks rerun, and strict review packets name
|
|
168
|
+
the derived scope. Missing-script/selector conflicts still use `replan-required` plus the normal
|
|
169
|
+
Human-confirmed corrective replan. Unproved or broader scope changes never receive this authority.
|
|
167
170
|
|
|
168
171
|
### Downstream-proof predecessor recovery
|
|
169
172
|
|
package/docs/development-flow.md
CHANGED
|
@@ -93,13 +93,13 @@ executable. A reviewer routes to `replan` only with an exact Plan obstruction an
|
|
|
93
93
|
change; ordinary findings default to `fix`. Remediation cannot change the Task objective,
|
|
94
94
|
requirements, or acceptance.
|
|
95
95
|
|
|
96
|
-
One bounded exception avoids
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
96
|
+
One bounded exception avoids deliberately repeating an already-proved Plan-integrity failure.
|
|
97
|
+
Missing root scripts and missing mandatory selectors use the advertised evidence-bound
|
|
98
|
+
`replan-required` path. For beta.12.16's exact direct check-support case, fresh `next` instead binds
|
|
99
|
+
the imported SHA/catalog support module and records a machine-derived `continue-fix` scope. Continue
|
|
100
|
+
with fresh `task run`; its envelope contains the original Step paths plus that one support path.
|
|
101
|
+
Core still owns the commit and review packet. Do not add adjacent files or treat this as generic
|
|
102
|
+
permission to change the Plan.
|
|
103
103
|
|
|
104
104
|
If a later proof Step leaves changes both in its own scope and in files owned by a completed
|
|
105
105
|
transitive predecessor, fresh `next` advertises `task downstream-proof-recover` instead of
|
|
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.17
|
|
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.17
|
|
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.17 гарантирует
|
|
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.17 не гарантирует
|
|
45
45
|
|
|
46
46
|
- правильность продуктовой идеи или автоматически выбранного provider Task;
|
|
47
47
|
- semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
|
|
@@ -337,6 +337,23 @@ Completed corrective-replan journal также остаётся читаемым
|
|
|
337
337
|
если его завершённый manifest/runtime/catalog tuple есть в append-only historical registry. Pending и
|
|
338
338
|
неизвестные identity по-прежнему fail-closed, поэтому compatibility не выдаёт новую authority.
|
|
339
339
|
|
|
340
|
+
beta.12.16 закрывает следующий доказанный разрыв: migration Step мог владеть новой SQL migration,
|
|
341
|
+
manifest и bootstrap, но не владеть TypeScript-модулем, который direct import из обязательного check
|
|
342
|
+
использовал как независимую SHA/catalog authority. Новый `wf2.check-support-anchor@1` блокирует такой
|
|
343
|
+
Plan до execution authorization. Для уже выполняемой Task после первого `checks-failed` Core связывает
|
|
344
|
+
Plan/Step/HEAD, полный dirty set, runner/support hashes, direct import, отсутствующий declared output и
|
|
345
|
+
существующие anchors. Если доказательство однозначно, append-only decision `continue-fix` выдаёт только
|
|
346
|
+
один exact support path как effective Step scope. Human replan не нужен, Plan hash и product bytes не
|
|
347
|
+
меняются, а Worker envelope, Core commit и sealed review packet явно используют и раскрывают derived
|
|
348
|
+
scope. Indirect import, dynamic shell, forbidden path, unrelated dirty file или отсутствие SHA anchors
|
|
349
|
+
fail-closed и не расширяют authority.
|
|
350
|
+
|
|
351
|
+
beta.12.17 закрывает transport-разрыв перед этим recovery: внешний runner больше не ожидает один
|
|
352
|
+
зашитый source release. Он выводит exact beta.12 source из declared dependency, требует равенства
|
|
353
|
+
locked, installed, current Task branch и active Milestone base и допускает только patch от .11 до
|
|
354
|
+
версии ниже runner. Dirty scope, отсутствие lease/transaction и dependency-only Git transport
|
|
355
|
+
остаются обязательными; product bytes и Workflow state вручную не изменяются.
|
|
356
|
+
|
|
340
357
|
Docker socket `EPERM` в sandbox не является доказательством сломанного daemon. Gateway один раз
|
|
341
358
|
повторяет exact health probe или Plan check с sandbox escalation без расходования remediation attempt.
|
|
342
359
|
Restart Docker Desktop требует отдельного разрешения и допустим только после escalated daemon failure.
|
|
@@ -346,7 +363,7 @@ Restart Docker Desktop требует отдельного разрешения
|
|
|
346
363
|
# 10. Operational checklist
|
|
347
364
|
|
|
348
365
|
- exact package version установлен, bundled gateway соответствует release и переустановлен;
|
|
349
|
-
- handshake подтверждает protocol 2, state schema 2 и beta.12.
|
|
366
|
+
- handshake подтверждает protocol 2, state schema 2 и beta.12.17 capabilities;
|
|
350
367
|
- каждый mutation следует свежему `status -> next` и exact option contract;
|
|
351
368
|
- Docker permission failure сначала классифицируется как sandbox boundary, а не как infra retry;
|
|
352
369
|
- 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.17 путь от нового 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.17
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# 1. Рабочая модель beta.12.
|
|
10
|
+
# 1. Рабочая модель beta.12.17
|
|
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.17 как точную 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.17 должен сообщать `packageVersion=2.0.0-beta.12.17`, `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.17 в delegated режиме.
|
|
121
121
|
Repository: <ABSOLUTE-REPOSITORY-ROOT>.
|
|
122
122
|
Milestone ID: AUTO.
|
|
123
123
|
Delegate actor: agent:milestone-coordinator.
|
|
@@ -298,6 +298,8 @@ Task chat записывает его только при совпадении p
|
|
|
298
298
|
| Состояние | Действие |
|
|
299
299
|
|---|---|
|
|
300
300
|
| First proven impossible npm check после legacy/late authorization | Только рекламируемый `task plan-integrity-recover` |
|
|
301
|
+
| Direct imported migration checksum/catalog authority вне Step scope | beta.12.16: advertised `task plan-integrity-recover`, затем тот же Step с exact derived support path; Human replan не нужен |
|
|
302
|
+
| In-flight Plan-integrity Task требует package update | beta.12.17 external preflight выводит coherent exact beta.12 source из пяти version surfaces; затем только dependency-only transport и advertised recovery |
|
|
301
303
|
| Downstream proof требует изменить completed predecessor | Только `task downstream-proof-recover`, затем новый Plan/risk audit/authorization в той же Task |
|
|
302
304
|
| Failed guarded review | Та же Task: исправление и новый strict review без attempt hard stop |
|
|
303
305
|
| Finding `route=fix` | Продолжить тот же Step; count остаётся диагностикой |
|
|
@@ -313,6 +315,9 @@ Task chat записывает его только при совпадении p
|
|
|
313
315
|
| Review seal drift | Discard review и создать fresh packet |
|
|
314
316
|
|
|
315
317
|
Plan-integrity recovery не редактирует Plan, package.json или worktree и не синтезирует второй failure.
|
|
318
|
+
Для beta.12.16 check-support evidence fresh `task run` обязан показать `boundedEffect=record-machine-derived-check-support-scope`
|
|
319
|
+
и добавить ровно рекламируемый support path в Worker `allowedWrites`. Для иных Plan-integrity видов
|
|
320
|
+
сохраняется `replan-required` route.
|
|
316
321
|
P04-A не переносит completed Steps и не rewires dependencies при split.
|
|
317
322
|
|
|
318
323
|
Audited remediation beta.12.11 не является generic scope-change. Coordinator использует только exact
|
|
@@ -404,7 +409,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
|
|
|
404
409
|
|
|
405
410
|
# 14. Итоговый checklist пользователя
|
|
406
411
|
|
|
407
|
-
- beta.12.
|
|
412
|
+
- beta.12.17 exact package и новый bundled gateway установлены;
|
|
408
413
|
- новый Coordinator chat не является fork старого Milestone;
|
|
409
414
|
- bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
|
|
410
415
|
- Discovery не materialized при blocking unknowns;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Codex Workflow V2: технический справочник beta.12.
|
|
2
|
+
title: Codex Workflow V2: технический справочник beta.12.17
|
|
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.17
|
|
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.17 | Значение |
|
|
17
17
|
|---|---|
|
|
18
|
-
| npm package | `codex-workflow-v2@2.0.0-beta.12.
|
|
18
|
+
| npm package | `codex-workflow-v2@2.0.0-beta.12.17` |
|
|
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.17 capabilities:
|
|
41
41
|
|
|
42
42
|
| Группа | Capabilities |
|
|
43
43
|
|---|---|
|
|
@@ -496,6 +496,37 @@ legacy tuple у незавершённой transaction, повреждённый
|
|
|
496
496
|
`journal-invalid`. Это позволяет читать terminal beta.12.12 history после расширения binding manifest,
|
|
497
497
|
не превращая legacy identity в новую execution authority.
|
|
498
498
|
|
|
499
|
+
# 13.7. beta.12.16 check-support scope authority
|
|
500
|
+
|
|
501
|
+
Analyzer `wf2.check-support-anchor@1` рассматривает только root `npm run` check, repository-local
|
|
502
|
+
`node`/`tsx` runner и его direct relative static import. Блокировка допустима, когда Step создаёт
|
|
503
|
+
отсутствующий exact migration output, импортированный support-модуль содержит SHA-256 и approved/
|
|
504
|
+
expected/manifest/catalog anchors той же `.sql` family, но Step не владеет support path. Это machine
|
|
505
|
+
evidence, а не вывод из текста ошибки.
|
|
506
|
+
|
|
507
|
+
Для pre-execution Plan finding `CHECK_SUPPORT_ANCHOR_OUTSIDE_ALLOWED_WRITES` блокирует authorization.
|
|
508
|
+
Для уже выполняемой guarded Step первый `checks-failed` может рекламировать тот же
|
|
509
|
+
`task plan-integrity-recover`, но evidence v3 записывает `continue-fix`, а не `replan-required`.
|
|
510
|
+
`scopeExtensions` равно отсортированному exact набору support paths из conflict evidence; dirty files
|
|
511
|
+
до recovery обязаны оставаться в original allowedWrites, support path не может пересекать
|
|
512
|
+
forbiddenScope. Plan hash не меняется. Effective scope используется retry precondition, Worker envelope,
|
|
513
|
+
Core commit, downstream-proof assessment, corrective-replan worktree guard и strict review packet.
|
|
514
|
+
Любое более широкое изменение остаётся в обычном corrective replan с Human gate.
|
|
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
|
+
|
|
499
530
|
# 14. P04-A structural replacement boundary
|
|
500
531
|
|
|
501
532
|
Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
|
|
@@ -558,7 +589,7 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
|
|
|
558
589
|
После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
|
|
559
590
|
не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
|
|
560
591
|
|
|
561
|
-
# 18. Public command surface beta.12.
|
|
592
|
+
# 18. Public command surface beta.12.17
|
|
562
593
|
|
|
563
594
|
| Область | Actions |
|
|
564
595
|
|---|---|
|
|
@@ -589,7 +620,7 @@ active-downstream-proof bridge, beta.12.7 exact stranded-replan bridge, beta.12.
|
|
|
589
620
|
dependency bridge и beta.12.15 Plan-integrity bridge; все они fail-closed и не дают общего разрешения
|
|
590
621
|
dirty update.
|
|
591
622
|
|
|
592
|
-
Перед beta.12.
|
|
623
|
+
Перед beta.12.17 tag обязательны `npm ci`, `npm run validate`, `npm run test:signal-t10-check-support-e2e`, `npm run test:signal-remediation-e2e`, `npm run pack:check`,
|
|
593
624
|
`npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
|
|
594
625
|
`npm run docs:pdf:check`, `npm run release:check` с exact tag binding и validation
|
|
595
626
|
append-only real-agent lifecycle log.
|
package/docs/release.md
CHANGED
|
@@ -10,14 +10,15 @@ Before tagging a release:
|
|
|
10
10
|
|
|
11
11
|
1. `npm ci`
|
|
12
12
|
2. `npm run validate`
|
|
13
|
-
3. `npm run test:signal-
|
|
14
|
-
4. `npm run
|
|
15
|
-
5. `npm run
|
|
16
|
-
6. `npm run
|
|
17
|
-
7. `npm run
|
|
18
|
-
8. `npm run
|
|
19
|
-
9.
|
|
20
|
-
10. validate the
|
|
13
|
+
3. `npm run test:signal-t10-check-support-e2e`
|
|
14
|
+
4. `npm run test:signal-remediation-e2e`
|
|
15
|
+
5. `npm run pack:check`
|
|
16
|
+
6. `npm run smoke:downstream`
|
|
17
|
+
7. `npm run plugin:check`
|
|
18
|
+
8. `npm run docs:pdf:check`
|
|
19
|
+
9. `npm run release:check`
|
|
20
|
+
10. validate `plugins/codex-workflow-gateway` with the Codex plugin validator
|
|
21
|
+
11. validate the append-only real-agent log with
|
|
21
22
|
`node scripts/validate-lifecycle-transcript.mjs --file <lifecycle-log.jsonl>`
|
|
22
23
|
|
|
23
24
|
The downstream smoke packs the actual tarball, installs it into an empty temporary project,
|
|
@@ -28,7 +29,7 @@ The PDF check deterministically regenerates all three Russian documents from
|
|
|
28
29
|
`docs/pdf/sources`, binds the visible package version to the root manifest, and fails when any
|
|
29
30
|
tracked PDF is stale. Source and binary PDFs are one release unit.
|
|
30
31
|
|
|
31
|
-
For beta.12.
|
|
32
|
+
For beta.12.17, the release gate also relies on `npm run release:check` to fail if:
|
|
32
33
|
|
|
33
34
|
- canonical entity schema 2 shapes drift;
|
|
34
35
|
- protocol 2 is not the active public contract, or intact protocol-1 adoption evidence stops being readable through the bounded compatibility window;
|
|
@@ -60,6 +61,13 @@ For beta.12.12, the release gate also relies on `npm run release:check` to fail
|
|
|
60
61
|
- bounded first- or repeated-failure Plan-integrity recovery, selector-required npm-check
|
|
61
62
|
feasibility, exact failed-remediation/manifest/worktree
|
|
62
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.
|
|
67
|
+
- a direct migration check can import an external checksum/catalog authority without the producing
|
|
68
|
+
Step owning it; or in-flight recovery can widen beyond the exact imported support path, bypass
|
|
69
|
+
`forbiddenScope`, change the Plan hash, skip checks/Core commit/review disclosure, or require a
|
|
70
|
+
Human approval for the machine-proved scope-only correction.
|
|
63
71
|
- downstream proof cannot invalidate only completed transitive-predecessor authority while
|
|
64
72
|
preserving worktree/HEAD, yielding C1, and returning the same Task to fresh planning; or unrelated
|
|
65
73
|
dirty files and damaged invalidation evidence do not fail closed.
|
|
@@ -22,6 +22,40 @@ state schema. Совпадение `stateSchemaVersion` до и после об
|
|
|
22
22
|
нужна. Для alpha.6 при `stateSchemaVersion: 2` применяется не migration, а sidecar-only
|
|
23
23
|
adoption posture.
|
|
24
24
|
|
|
25
|
+
### beta.12.17: coherent beta.12 Plan-integrity update transport
|
|
26
|
+
|
|
27
|
+
`update plan-integrity-update-preflight` больше не связывает совместимый transport с одним
|
|
28
|
+
историческим source release. Внешний exact beta.12.17 runner выводит source version из declared
|
|
29
|
+
dependency и требует, чтобы locked, installed, current Task branch и active Milestone base
|
|
30
|
+
совпадали с ним. Source должен быть exact `2.0.0-beta.12.N`, где `N >= 11` и `N` меньше patch
|
|
31
|
+
ordinal текущего runner. Расхождение хотя бы одной поверхности блокирует transport.
|
|
32
|
+
|
|
33
|
+
Остальные границы не изменены: ровно одна eligible Plan-integrity conflict, coherent observation,
|
|
34
|
+
нет lease/transaction/Core operation, а dirty set полностью совпадает с уже доказанным failed Step
|
|
35
|
+
scope. После `eligible=true` один dependency-only commit обновляет только `package.json` и
|
|
36
|
+
`package-lock.json` на Milestone base и в Task history; fresh repository-local package затем
|
|
37
|
+
регистрирует commit через advertised `update plan-integrity-dependency-recover`. Product bytes,
|
|
38
|
+
Plan hash и remediation evidence не переписываются. Этот контракт разрешает текущий `.15 -> .17`
|
|
39
|
+
transport и не требует нового literal для следующего совместимого beta.12 patch.
|
|
40
|
+
|
|
41
|
+
### beta.12.16: direct migration check-support authority
|
|
42
|
+
|
|
43
|
+
Новый mechanical analyzer до execution authorization проверяет root `npm run` migration checks,
|
|
44
|
+
repository-local `node`/`tsx` runner и его direct static relative imports. Если Step создаёт новую
|
|
45
|
+
SQL migration, а импортированный TypeScript/JavaScript support-модуль закрепляет approved SHA-256,
|
|
46
|
+
manifest или expected catalog той же migration family, этот support path должен входить в
|
|
47
|
+
`allowedWrites` той же Step. Иначе Plan возвращается к `task plan-set` до запуска Worker.
|
|
48
|
+
|
|
49
|
+
Для уже выполняемой Task с первым `checks-failed` fresh beta.12.16 `next` может рекламировать
|
|
50
|
+
`task plan-integrity-recover` с reason `CHECK_SUPPORT_ANCHOR_OUTSIDE_ALLOWED_WRITES` и
|
|
51
|
+
`boundedEffect=record-machine-derived-check-support-scope`. Выполните только этот route под текущим
|
|
52
|
+
C1 actor/writer credential, затем снова прочитайте `next` и вызовите `task run`. Worker envelope
|
|
53
|
+
должен добавить ровно `evidence.scopeExtensions`; Plan hash и существующие product bytes остаются
|
|
54
|
+
неизменными. Core повторяет все checks, сам создаёт commit и включает derived scope в sealed review
|
|
55
|
+
packet. Human corrective-replan для этого точного scope-only случая не требуется. Если route не
|
|
56
|
+
рекламируется, есть indirect/dynamic import, лишний dirty path, forbiddenScope intersection или нет
|
|
57
|
+
SHA/catalog anchors — не расширяйте scope вручную.
|
|
58
|
+
|
|
25
59
|
### beta.12.12: неисполняемая Step check и сохранение текущей реализации
|
|
26
60
|
|
|
27
61
|
Новые Plans больше не могут получить execution authorization, если root npm script запускает
|
|
@@ -1,107 +1,105 @@
|
|
|
1
|
-
# V2 beta.12.
|
|
1
|
+
# V2 beta.12.17 Validation Report
|
|
2
2
|
|
|
3
|
-
Release candidate `2.0.0-beta.12.
|
|
3
|
+
Release candidate `2.0.0-beta.12.17` 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
|
-
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
-
|
|
92
|
-
pages. All 33 rendered pages were visually inspected; no clipping, overlap or unreadable content
|
|
93
|
-
was observed.
|
|
9
|
+
- `npm run validate` passed typecheck and `353/353` sequential tests with no failures, skips,
|
|
10
|
+
cancellations or todos in 2,273,062.454 ms.
|
|
11
|
+
- `npm run test:signal-t10-check-support-e2e` passed `7/7`. It includes the Signal-shaped
|
|
12
|
+
check-support recovery and two complete update/recovery chains whose coherent source is
|
|
13
|
+
`2.0.0-beta.12.11` and `2.0.0-beta.12.15`, respectively.
|
|
14
|
+
- The `.15` case proves read-only update preflight, exact dependency-only transport, dependency
|
|
15
|
+
provenance registration, Plan-integrity recovery, retry and continuation without product-byte
|
|
16
|
+
loss or a Human replan for the machine-proved support scope.
|
|
17
|
+
- Existing Signal compatibility remained green inside the full suite, including T04 retained
|
|
18
|
+
review/history recovery, T03 corrective replan, audited remediation topology, downstream proof
|
|
19
|
+
and dependency-only update recovery.
|
|
20
|
+
|
|
21
|
+
## Live Signal evidence before installation
|
|
22
|
+
|
|
23
|
+
The live repository was observed at:
|
|
24
|
+
|
|
25
|
+
- Task branch `codex/task-01m1b79c66-current-formalization-commit-and-provide`;
|
|
26
|
+
- HEAD `f290d0875387283c368bedd03964fb423619db7b`;
|
|
27
|
+
- repository-local package `codex-workflow-v2@2.0.0-beta.12.15`, protocol/schema `2/2`;
|
|
28
|
+
- Task `TASK-01M1B79C660YMNSRRZ236NTR1T`, revision 21, failed Step
|
|
29
|
+
`STEP-002-CURRENT-COMMIT`;
|
|
30
|
+
- exactly eight preserved STEP-002 product paths and no pending/corrupt Core transaction.
|
|
31
|
+
|
|
32
|
+
The stale writer lease was repaired only through the exact repository-level `locks repair` route.
|
|
33
|
+
Fresh beta.12.15 `status -> next` then reproduced the original defect: `next` advertised only
|
|
34
|
+
`task run`, although the Worker could not write the imported migration support authority.
|
|
35
|
+
|
|
36
|
+
Published beta.12.16 correctly identified the check-support conflict, but its external
|
|
37
|
+
`update plan-integrity-update-preflight` returned `eligible=false`: the implementation still required
|
|
38
|
+
all five version surfaces to equal the hard-coded stranded source `2.0.0-beta.12.11`. Signal already
|
|
39
|
+
had coherent `.15` declared, locked, installed, current-branch and Milestone-base versions. No update
|
|
40
|
+
commit, package installation, Workflow-state edit or product-file mutation was performed after that
|
|
41
|
+
failed preflight.
|
|
42
|
+
|
|
43
|
+
The beta.12.17 runner was then built locally and invoked read-only against the same Signal state. It
|
|
44
|
+
returned:
|
|
45
|
+
|
|
46
|
+
- `eligible=true` and `action=update plan-integrity-transport`;
|
|
47
|
+
- source `2.0.0-beta.12.15`, target `2.0.0-beta.12.17`;
|
|
48
|
+
- Task revision 21 and `STEP-002-CURRENT-COMMIT`;
|
|
49
|
+
- the same eight dirty paths;
|
|
50
|
+
- conflict hash `44ee553355bc696861bd2e4f49c1675e39c7cf4e5be28785e2f86cd95de45383`;
|
|
51
|
+
- zero blockers.
|
|
52
|
+
|
|
53
|
+
## Root causes corrected
|
|
54
|
+
|
|
55
|
+
beta.12.16 corrected the product-flow root cause: the Plan and retry boundary did not model the
|
|
56
|
+
directly imported checksum/catalog module as authority required by the approved migration check.
|
|
57
|
+
The bounded analyzer and append-only scope augmentation remain unchanged in beta.12.17.
|
|
58
|
+
|
|
59
|
+
The installation blocker had a separate root cause. Plan-integrity update preflight encoded one
|
|
60
|
+
historical release literal instead of deriving the source version from the repository surfaces it
|
|
61
|
+
already inspected. Every compatible patch after `.11` therefore became impossible to transport
|
|
62
|
+
while failed-Step product work remained dirty.
|
|
63
|
+
|
|
64
|
+
## Implemented beta.12.17 contract
|
|
65
|
+
|
|
66
|
+
- `planIntegrityUpdatePreflight` derives `sourceVersion` from the declared exact dependency.
|
|
67
|
+
- Source must match `2.0.0-beta.12.N`, with `N >= 11` and `N` strictly less than the external
|
|
68
|
+
runner's beta.12 patch ordinal.
|
|
69
|
+
- Locked, installed, current Task branch and active Milestone base must equal the declared source.
|
|
70
|
+
Missing or divergent surfaces block transport with an exact diagnostic.
|
|
71
|
+
- Existing guards remain mandatory: one eligible Plan-integrity conflict, coherent observation,
|
|
72
|
+
no active/stale lease, no pending/corrupt transaction or Core operation, and an exact dirty set
|
|
73
|
+
inside the failed Step boundary.
|
|
74
|
+
- The only allowed transport remains one dependency-only commit changing `package.json` and
|
|
75
|
+
`package-lock.json` on the Milestone base and in Task history. Fresh repository-local Core must
|
|
76
|
+
register it through advertised `update plan-integrity-dependency-recover`.
|
|
77
|
+
- The contract is advertised as `coherent-plan-integrity-update-source-v1`. It is deliberately
|
|
78
|
+
limited to the compatible beta.12 line and does not create generic update or product-history
|
|
79
|
+
adoption authority.
|
|
80
|
+
|
|
81
|
+
## Retained check-support contract
|
|
82
|
+
|
|
83
|
+
- `wf2.check-support-anchor@1` blocks a future Plan whose producing migration Step does not own the
|
|
84
|
+
directly imported SHA/catalog support authority.
|
|
85
|
+
- For the already-running exact first-failure shape, `task plan-integrity-recover` appends one
|
|
86
|
+
`continue-fix` decision with the derived support path; Plan hash and product bytes remain stable.
|
|
87
|
+
- Worker envelope, retry boundary, Core commit, downstream proof, corrective-replan guard and sealed
|
|
88
|
+
review packet use and disclose the same effective scope.
|
|
89
|
+
- Indirect/dynamic imports, unsupported syntax, forbidden paths, unrelated dirty files or absent
|
|
90
|
+
anchors remain fail-closed. Missing scripts and selector-required checks retain their ordinary
|
|
91
|
+
`replan-required` path.
|
|
94
92
|
|
|
95
93
|
## Boundaries and non-claims
|
|
96
94
|
|
|
97
|
-
- The
|
|
98
|
-
|
|
99
|
-
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
Confidence is high for
|
|
105
|
-
|
|
106
|
-
on
|
|
107
|
-
the
|
|
95
|
+
- The patch does not bypass dependency-only Git transport or permit installation while version
|
|
96
|
+
surfaces diverge.
|
|
97
|
+
- It does not edit Plan, product work, Workflow state or Git history during preflight.
|
|
98
|
+
- This report does not claim beta.12.17 commit/tag/push, npm publication, live installation,
|
|
99
|
+
dependency registration, STEP-002 commit/review, Task merge or Milestone completion until each
|
|
100
|
+
operation receives its own readback.
|
|
101
|
+
|
|
102
|
+
Confidence is high for source-version consensus and retained check-support recovery because the
|
|
103
|
+
353-test gate, both source-version E2E chains and the read-only live Signal preflight agree. Final
|
|
104
|
+
end-to-end confidence remains conditional on exact publication, dependency-only transport into
|
|
105
|
+
Signal, repository-local recovery, the real approved checks and a new sealed reviewer packet.
|