codex-workflow-v2 2.0.0-beta.12.7 → 2.0.0-beta.12.9
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 +9 -1
- package/dist/src/alpha6/review.d.ts +6 -0
- package/dist/src/alpha6/review.js +12 -0
- package/dist/src/alpha6/review.js.map +1 -1
- package/dist/src/cli.js +37 -3
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +37 -1
- package/dist/src/dependency-provenance.d.ts +2 -2
- package/dist/src/dependency-provenance.js +21 -5
- package/dist/src/dependency-provenance.js.map +1 -1
- package/dist/src/git.js +1 -0
- package/dist/src/git.js.map +1 -1
- package/dist/src/historical-step-provenance.d.ts +20 -0
- package/dist/src/historical-step-provenance.js +111 -0
- package/dist/src/historical-step-provenance.js.map +1 -0
- package/dist/src/state/corrective-replan-executor.js +5 -0
- package/dist/src/state/corrective-replan-executor.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 +7 -2
- package/dist/src/workflow.js +206 -11
- 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 +23 -6
- package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +28 -28
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +41 -26
- package/docs/release.md +9 -1
- package/docs/updating-existing-project.md +30 -0
- package/docs/validation-report.md +90 -96
- package/package.json +1 -1
- package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +1 -1
- package/plugins/codex-workflow-gateway/references/protocol.md +15 -0
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +35 -0
- package/schemas/task.schema.json +43 -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.9
|
|
3
3
|
subtitle: Источники истины, lifecycle, роли, delegation, зависимости Tasks и границы доверия
|
|
4
4
|
part: Часть 1 из 3 | Архитектура
|
|
5
5
|
document_version: 2.0
|
|
6
|
-
date:
|
|
7
|
-
subject: Архитектура и границы Codex Workflow V2 beta.12.
|
|
6
|
+
date: 30 августа 2026
|
|
7
|
+
subject: Архитектура и границы Codex Workflow V2 beta.12.9
|
|
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.9 гарантирует
|
|
22
22
|
|
|
23
23
|
- exact project-local npm package и совместимый handshake до lifecycle действий;
|
|
24
24
|
- Discovery до materialization Task или Milestone;
|
|
@@ -26,6 +26,8 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
|
|
|
26
26
|
- mechanical-feasibility проверку поддерживаемых форм Plan до новой Task authorization;
|
|
27
27
|
- явный Milestone dependency DAG и один общий runnable predicate для routing, handoff, claim и start;
|
|
28
28
|
- один C1 writer lease, секретные one-time credentials и Core-owned Step commits;
|
|
29
|
+
- lease-free Human final-acceptance gate: `task result-set` проверяет и освобождает active writer
|
|
30
|
+
lease, а после acceptance merge получает новый credential только через fresh recovery route;
|
|
29
31
|
- external-sealed Step/Task review в отдельных Codex tasks;
|
|
30
32
|
- state-bound human gates либо ранее выданные bounded delegation contracts;
|
|
31
33
|
- journaled recovery для составных переходов и fail-closed поведение при drift/corruption.
|
|
@@ -33,8 +35,10 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
|
|
|
33
35
|
worktree и HEAD сохраняются, stale completion authority снимается, та же Task возвращается в planning.
|
|
34
36
|
- bounded compatibility recovery, если beta.12.6 после этого recovery ошибочно rebind-нула отвергнутый
|
|
35
37
|
Plan: exact dirty bytes сохраняются до нового consolidated Step, а Knowledge refresh не отменяет `plan-set`.
|
|
38
|
+
- corrective Plan сохраняет authority исключённых completed Step commits, а beta.12.9 bounded recovery
|
|
39
|
+
исправляет уже stranded state только при passed strict review и прежнем hash-bound final acceptance.
|
|
36
40
|
|
|
37
|
-
## 1.2. Что beta.12.
|
|
41
|
+
## 1.2. Что beta.12.9 не гарантирует
|
|
38
42
|
|
|
39
43
|
- правильность продуктовой идеи или автоматически выбранного provider Task;
|
|
40
44
|
- semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
|
|
@@ -110,6 +114,11 @@ Discovery -> materialize -> Plan -> Plan Risk Audit
|
|
|
110
114
|
-> final acceptance -> merge
|
|
111
115
|
```
|
|
112
116
|
|
|
117
|
+
`task result-set` является последним execution lease-bound переходом. Он требует рекламируемый
|
|
118
|
+
writer token, освобождает lease до `awaiting_final_acceptance` и тем самым допускает неограниченную
|
|
119
|
+
по времени Human pause без stale-lock блокировки repository. После acceptance прежний token не
|
|
120
|
+
переиспользуется: fresh `next` выдаёт bounded `task writer-credential-replace` для merge.
|
|
121
|
+
|
|
113
122
|
Fresh Task authorization записывает versioned mechanical-feasibility evidence. Analyzer может
|
|
114
123
|
выдать `blocked`, `pass` или `unverified`. `unverified` не означает semantic approval; он означает,
|
|
115
124
|
что поддерживаемая точная грамматика не доказала противоречие.
|
|
@@ -276,6 +285,14 @@ Task в `needs_fix`; stale Knowledge можно reconciliate/approve, но fresh
|
|
|
276
285
|
всем dirty set. `task run` принимает carryover лишь при exact HEAD/path/hash match, после чего Step
|
|
277
286
|
проходит обычные checks, Core-owned commit и strict review.
|
|
278
287
|
|
|
288
|
+
beta.12.9 закрывает исторический provenance gap corrective replan. Новые replan transitions автоматически
|
|
289
|
+
переносят evidence commits исключённых Steps в `invalidatedStepCommits`. Для уже существующего gap Core
|
|
290
|
+
требует один неожиданный commit, complete passed strict-review chain, verified reviewer attestation и
|
|
291
|
+
совпадающий прежний final acceptance. Если пакет уже зарегистрирован, recovery меняет только Task state.
|
|
292
|
+
Если exact beta.12.9 dependency commit ещё находится в HEAD, отдельный update compatibility route
|
|
293
|
+
регистрирует dependency и historical authority одной revision. Оба пути сохраняют dirty bytes текущего
|
|
294
|
+
Step, не переписывают Git и завершаются fresh обычным `step-complete` flow.
|
|
295
|
+
|
|
279
296
|
Docker socket `EPERM` в sandbox не является доказательством сломанного daemon. Gateway один раз
|
|
280
297
|
повторяет exact health probe или Plan check с sandbox escalation без расходования remediation attempt.
|
|
281
298
|
Restart Docker Desktop требует отдельного разрешения и допустим только после escalated daemon failure.
|
|
@@ -285,7 +302,7 @@ Restart Docker Desktop требует отдельного разрешения
|
|
|
285
302
|
# 10. Operational checklist
|
|
286
303
|
|
|
287
304
|
- exact package version установлен, bundled gateway соответствует release и переустановлен;
|
|
288
|
-
- handshake подтверждает protocol 2, state schema 2 и beta.12.
|
|
305
|
+
- handshake подтверждает protocol 2, state schema 2 и beta.12.9 capabilities;
|
|
289
306
|
- каждый mutation следует свежему `status -> next` и exact option contract;
|
|
290
307
|
- Docker permission failure сначала классифицируется как sandbox boundary, а не как infra retry;
|
|
291
308
|
- 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.9 путь от нового Discovery до принятого Milestone без ручного CLI
|
|
4
4
|
part: Часть 2 из 3 | Практика
|
|
5
5
|
document_version: 2.0
|
|
6
|
-
date:
|
|
7
|
-
subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.
|
|
6
|
+
date: 30 августа 2026
|
|
7
|
+
subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.9
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# 1. Рабочая модель beta.12.
|
|
10
|
+
# 1. Рабочая модель beta.12.9
|
|
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.9 как точную 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.9 должен сообщать `packageVersion=2.0.0-beta.12.9`, `protocolVersion=2`,
|
|
60
60
|
`stateSchemaVersion=2`, dependency DAG, initial Plan transaction, mechanical feasibility,
|
|
61
61
|
Milestone autonomy и structural replacement disabled capabilities.
|
|
62
62
|
|
|
@@ -116,7 +116,7 @@ delegate, scope, transitions и expiry. DGR передаётся только е
|
|
|
116
116
|
```text
|
|
117
117
|
НОВЫЙ COORDINATOR CHAT
|
|
118
118
|
|
|
119
|
-
Проведи новый Milestone через Codex Workflow V2 beta.12.
|
|
119
|
+
Проведи новый Milestone через Codex Workflow V2 beta.12.9 в delegated режиме.
|
|
120
120
|
Repository: <ABSOLUTE-REPOSITORY-ROOT>.
|
|
121
121
|
Milestone ID: AUTO.
|
|
122
122
|
Delegate actor: agent:milestone-coordinator.
|
|
@@ -242,6 +242,10 @@ Credential и approval grant решают разные задачи.
|
|
|
242
242
|
4. Claim проверяет dependency binding и возвращает `writerLeaseReceipt`.
|
|
243
243
|
5. `task run` принимает active writer credential согласно `next.writerTokenContract` и обновляет lease.
|
|
244
244
|
6. `task step-complete`, review record и другие guarded mutations используют только рекламируемый option.
|
|
245
|
+
7. После passed final review `task result-set` использует active writer token и освобождает lease до
|
|
246
|
+
`awaiting_final_acceptance`; Human gate не должен удерживать credential.
|
|
247
|
+
8. После acceptance старый token не используется: fresh `next` рекламирует
|
|
248
|
+
`task writer-credential-replace`, затем разрешает merge или merge confirmation.
|
|
245
249
|
|
|
246
250
|
Нельзя искать token в later payload fields, писать его в prompt/report/evidence или заменять redacted
|
|
247
251
|
fingerprint. Потеря token не разрешает новый handoff либо lease acquisition вне fresh recovery route.
|
|
@@ -300,6 +304,7 @@ Task chat записывает его только при совпадении p
|
|
|
300
304
|
| `split-required` | Stop: `STRUCTURAL_REPLACEMENT_REQUIRED`, никаких replacement writes |
|
|
301
305
|
| Старая версия + active downstream proof блокируют update | Только beta.12.6 exact dependency commits и advertised `update downstream-proof-dependency-recover` |
|
|
302
306
|
| После downstream recovery beta.12.6 вернула отвергнутый Plan через Knowledge rebind | Только beta.12.7 replan update bridge, затем recovery и новый consolidated Plan той же Task |
|
|
307
|
+
| Corrective Plan потерял authority ранее принятого Step commit | Только advertised beta.12.9 historical-Step preflight/recovery; без rebase/reset и без новой Task |
|
|
303
308
|
| Exact beta.11 attempt-four `stop-escalate` | Только advertised prepare, затем отдельный Human-confirmed apply; исходный stop сохраняется |
|
|
304
309
|
| Любой другой explicit `stop-escalate` | Terminal user attention |
|
|
305
310
|
| Stale dependency binding | Новый handoff/claim только по fresh `next` |
|
|
@@ -319,32 +324,26 @@ beta.12.6 и требуйте от fresh `next` `update downstream-proof-depende
|
|
|
319
324
|
binding dirty set. Recover регистрирует только dependency HEAD; следующий fresh `next` должен вернуть
|
|
320
325
|
обычный `task downstream-proof-recover`. Любой иной diff/history/dirty path/lease означает stop.
|
|
321
326
|
|
|
322
|
-
Для
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
327
|
+
Для beta.12.9 historical-Step blocker обновите base в отдельном worktree и Task branch двумя commits
|
|
328
|
+
только package/lock. После install продолжайте лишь при advertised `update historical-step-dependency-recover`
|
|
329
|
+
и preflight, связавшем HEAD/parent, passed+accepted historical SHA, Plan/Step, dirty hash и отсутствие lease.
|
|
330
|
+
Recover сохраняет product bytes; затем обязательны `status -> next -> task step-complete`. Если package
|
|
331
|
+
уже зарегистрирован, используйте advertised `task historical-step-provenance-preflight/recover`.
|
|
332
|
+
|
|
333
|
+
Для exact beta.12.6 stranded-replan shape сначала нужен eligible read-only source preflight с exact
|
|
334
|
+
revision/HEAD/dirty hash. Затем два beta.12.7 dependency-only commits и advertised dependency/replan
|
|
335
|
+
recoveries. После Knowledge refresh `next` обязан остаться на `task plan-set`; новый единый Step должен
|
|
336
|
+
владеть всем dirty set, а `task run` требует `downstreamProofCarryover.state=validated`.
|
|
330
337
|
|
|
331
338
|
Ошибка Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied` в sandbox не считается
|
|
332
339
|
падением daemon и не расходует retry. Повторите exact read-only probe или Plan check один раз с sandbox
|
|
333
340
|
escalation. Не перезапускайте Docker Desktop и не меняйте image без отдельного разрешения и подтверждённого
|
|
334
341
|
escalated daemon failure.
|
|
335
342
|
|
|
336
|
-
|
|
337
|
-
`
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
`writerCredentialRecovery.action=task writer-credential-replace` сначала восстановите credential
|
|
341
|
-
точного claimant-актора. `doctor`, semantic Plan change, разрыв rebind/audit chain или HEAD commit без
|
|
342
|
-
точного dependency-provenance record означают stop, а не ручной обход.
|
|
343
|
-
|
|
344
|
-
Если advertised navigation записала dependency provenance после последнего context-refresh audit,
|
|
345
|
-
продолжайте только когда fresh `next` сам вернул `task run`. Core обязан доказать, что каждый такой
|
|
346
|
-
recovery объясняет ровно один дополнительный Task revision; простое `revision >=` не является
|
|
347
|
-
authority.
|
|
343
|
+
После stop override выполняйте только advertised context/dependency recoveries и каждый раз повторяйте
|
|
344
|
+
`status -> next`; attempt 4 требует `stopOverrideContextRebind.state=validated`. Lost credential
|
|
345
|
+
восстанавливает только advertised exact claimant route. Semantic drift, broken chain, необъяснённый HEAD
|
|
346
|
+
или revision означают stop; продолжение разрешено только когда fresh `next` сам вернул `task run`.
|
|
348
347
|
|
|
349
348
|
# 12. Milestone final acceptance
|
|
350
349
|
|
|
@@ -363,7 +362,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
|
|
|
363
362
|
|
|
364
363
|
# 14. Итоговый checklist пользователя
|
|
365
364
|
|
|
366
|
-
- beta.12.
|
|
365
|
+
- beta.12.9 exact package и новый bundled gateway установлены;
|
|
367
366
|
- новый Coordinator chat не является fork старого Milestone;
|
|
368
367
|
- bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
|
|
369
368
|
- Discovery не materialized при blocking unknowns;
|
|
@@ -376,5 +375,6 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
|
|
|
376
375
|
- downstream predecessor recovery, если рекламировался, сохранил worktree и завершился новым Plan authority;
|
|
377
376
|
- active-proof package bridge, если понадобился, зарегистрировал только exact dependency HEAD перед recovery;
|
|
378
377
|
- stranded-replan bridge, если понадобился, завершился новым Plan и полным Step checks/review, а не только сменой navigation;
|
|
378
|
+
- historical-Step recovery, если рекламировался, сохранил exact accepted commit и довёл текущий Step до обычного `step-complete` без history rewrite;
|
|
379
379
|
- split-required остановился без replacement mutations;
|
|
380
380
|
- Milestone validation и final acceptance связаны с текущим clean base HEAD.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Codex Workflow V2: технический справочник beta.12.
|
|
2
|
+
title: Codex Workflow V2: технический справочник beta.12.9
|
|
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:
|
|
7
|
-
subject: Технический контракт Codex Workflow V2 beta.12.
|
|
6
|
+
date: 30 августа 2026
|
|
7
|
+
subject: Технический контракт Codex Workflow V2 beta.12.9
|
|
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.9 | Значение |
|
|
17
17
|
|---|---|
|
|
18
|
-
| npm package | `codex-workflow-v2@2.0.0-beta.12.
|
|
18
|
+
| npm package | `codex-workflow-v2@2.0.0-beta.12.9` |
|
|
19
19
|
| protocolVersion | 2 |
|
|
20
20
|
| stateSchemaVersion | 2 |
|
|
21
21
|
| lifecycle epoch | 2 |
|
|
@@ -37,16 +37,16 @@ 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.9 capabilities:
|
|
41
41
|
|
|
42
42
|
| Группа | Capabilities |
|
|
43
43
|
|---|---|
|
|
44
44
|
| Knowledge и graph | `project-memory-v1`, `graph-binding-v1`, `task-context-refresh-v1` |
|
|
45
45
|
| Milestone | lifecycle, initial assembly navigation, autonomy, progress, dependency DAG, initial Plan transaction |
|
|
46
46
|
| Task planning | Plan Risk Audit, proof obligations, mechanical feasibility |
|
|
47
|
-
| C1 | handoff sidecar
|
|
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, 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, 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 или соседней
|
|
@@ -235,7 +235,8 @@ Claim сверяет stored binding с current Milestone authority до lock acq
|
|
|
235
235
|
3. Exact target actor вызывает `task claim` с one-time token.
|
|
236
236
|
4. Claim выдаёт first-field `writerLeaseReceipt`.
|
|
237
237
|
5. `task run` принимает token по `next.writerTokenContract`, heartbeats lease и возвращает refreshed receipt.
|
|
238
|
-
6.
|
|
238
|
+
6. `task result-set` consumes active token и освобождает lease до Human final-acceptance gate.
|
|
239
|
+
7. После acceptance `writer-credential-replace` создаёт merge lease; terminal transitions освобождают его.
|
|
239
240
|
|
|
240
241
|
Credential нельзя логировать, сохранять в chat packet или включать в evidence. `handoff-show` возвращает
|
|
241
242
|
только safe persisted binding. Recovery использует отдельные advertised replacement actions.
|
|
@@ -249,7 +250,7 @@ Credential нельзя логировать, сохранять в chat packet
|
|
|
249
250
|
| Worker return | Изменения uncommitted и только в allowedWrites |
|
|
250
251
|
| Step complete | History, scope, checks, review gate, exact writer token |
|
|
251
252
|
| Commit | Один Core-owned commit с Task/Step metadata |
|
|
252
|
-
| Submit |
|
|
253
|
+
| Submit/Result | Exact evidence/review; Result освобождает lease до Human gate |
|
|
253
254
|
| Merge | Fresh review/acceptance, base conditions, accepted HEAD |
|
|
254
255
|
|
|
255
256
|
Local start повторно сравнивает authorized base внутри Git branch creation, закрывая TOCTOU между
|
|
@@ -380,6 +381,26 @@ fresh `next` рекламирует lease-bound `task downstream-proof-recover`
|
|
|
380
381
|
remainder и пройти fresh Plan Risk Audit и execution authorization. Unrelated/non-predecessor file,
|
|
381
382
|
strict-review evidence, unregistered commit, branch mismatch или damaged sidecar возвращают `doctor`.
|
|
382
383
|
|
|
384
|
+
# 13.3. beta.12.9 historical Step provenance
|
|
385
|
+
|
|
386
|
+
Corrective replan теперь сохраняет evidence commits Steps, исключённых replacement Plan, в
|
|
387
|
+
`invalidatedStepCommits`. Это предотвращает новый unregistered-history blocker без переноса завершённого
|
|
388
|
+
Step в новый Plan.
|
|
389
|
+
|
|
390
|
+
Для уже существующего stranded state fresh `next` допускает только один из двух bounded routes:
|
|
391
|
+
|
|
392
|
+
- `task historical-step-provenance-preflight/recover`, если beta.12.9 dependency HEAD уже зарегистрирован;
|
|
393
|
+
- `update historical-step-dependency-preflight/recover`, если dependency-only beta.12.9 commit ещё
|
|
394
|
+
является единственным unregistered HEAD.
|
|
395
|
+
|
|
396
|
+
Core требует один active Step, dirty paths только в его `allowedWrites`, отсутствие leases/transactions,
|
|
397
|
+
ровно один omitted product commit, полный hash-valid strict Step Review с `passed`, verified reviewer
|
|
398
|
+
attestation и прежний hash-bound `final_acceptance` того же Plan. Update-route дополнительно связывает
|
|
399
|
+
exact `HEAD^`/`HEAD`, package/version surfaces и SHA-256 dirty worktree. Recovery не переписывает Git,
|
|
400
|
+
не меняет product bytes и не возвращает старый Step в Plan; он записывает historical authority и, для
|
|
401
|
+
update-route, dependency provenance в одной Task revision. Fresh `status -> next` после transition
|
|
402
|
+
должен вернуть обычный credential/`task step-complete` flow текущего Step.
|
|
403
|
+
|
|
383
404
|
# 14. P04-A structural replacement boundary
|
|
384
405
|
|
|
385
406
|
Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
|
|
@@ -442,12 +463,12 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
|
|
|
442
463
|
После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
|
|
443
464
|
не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
|
|
444
465
|
|
|
445
|
-
# 18. Public command surface beta.12.
|
|
466
|
+
# 18. Public command surface beta.12.9
|
|
446
467
|
|
|
447
468
|
| Область | Actions |
|
|
448
469
|
|---|---|
|
|
449
470
|
| System | `doctor`, `status`, `next`, `gateway handshake`, `locks` |
|
|
450
|
-
| Update | `preflight`, `rescue-preflight`, dependency provenance, downstream-proof dependency bridge, downstream-proof replan update/dependency bridge |
|
|
471
|
+
| Update | `preflight`, `rescue-preflight`, dependency provenance, historical-Step dependency bridge, downstream-proof dependency bridge, downstream-proof replan update/dependency bridge |
|
|
451
472
|
| Project memory | `scan`, `show`, `status`, `approve`, `reconcile` |
|
|
452
473
|
| Delegation | `prepare`, `grant`, `list`, `show`, `revoke` |
|
|
453
474
|
| Graph | `prepare`, `status`, `refresh-request`, `bind`, `fallback` |
|
|
@@ -457,7 +478,7 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
|
|
|
457
478
|
| Task execution | `start`, `run`, `step-complete`, `submit`, `result-set`, `accept`, `sync-base`, `merge`, `merge-confirm` |
|
|
458
479
|
| C1 | `handoff[-prepare/-replace/-show]`, `claim`, `writer-credential-replace`, `handback[-create]` |
|
|
459
480
|
| Review | review/step-review packet, launch, sealed record и record actions |
|
|
460
|
-
| Corrective | decision/recovery, plan-integrity, downstream-proof-recover/replan-recover, remediation-mode, stop-override prepare/apply, yield и corrective-replan actions |
|
|
481
|
+
| Corrective | decision/recovery, plan-integrity, historical-step-provenance preflight/recover, downstream-proof-recover/replan-recover, remediation-mode, stop-override prepare/apply, yield и corrective-replan actions |
|
|
461
482
|
| Replacement | `replacement-materialize` retained, но всегда disabled в P04-A |
|
|
462
483
|
|
|
463
484
|
Exact options берутся из fresh `next`; command help используется только когда
|
|
@@ -467,16 +488,10 @@ Exact options берутся из fresh `next`; command help используе
|
|
|
467
488
|
|
|
468
489
|
Перед package update project-local `update preflight` должен вернуть `safe=true`: clean checkout, нет
|
|
469
490
|
running Step и active/stale writer lease. Исключения — документированный alpha.7 rescue, beta.12.6
|
|
470
|
-
active-downstream-proof bridge
|
|
471
|
-
общего разрешения dirty update.
|
|
472
|
-
|
|
473
|
-
Перед beta.12.
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
3. `npm run pack:check`;
|
|
478
|
-
4. `npm run smoke:downstream`;
|
|
479
|
-
5. `npm run plugin:check` и official plugin/skill validators;
|
|
480
|
-
6. `npm run docs:pdf:check`;
|
|
481
|
-
7. `npm run release:check` с exact release tag binding;
|
|
482
|
-
8. validation append-only real-agent lifecycle log.
|
|
491
|
+
active-downstream-proof bridge, beta.12.7 exact stranded-replan bridge и beta.12.9 historical-Step
|
|
492
|
+
dependency bridge; все они fail-closed и не дают общего разрешения dirty update.
|
|
493
|
+
|
|
494
|
+
Перед beta.12.9 tag обязательны `npm ci`, `npm run validate`, `npm run pack:check`,
|
|
495
|
+
`npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
|
|
496
|
+
`npm run docs:pdf:check`, `npm run release:check` с exact tag binding и validation
|
|
497
|
+
append-only real-agent lifecycle log.
|
package/docs/release.md
CHANGED
|
@@ -27,7 +27,7 @@ The PDF check deterministically regenerates all three Russian documents from
|
|
|
27
27
|
`docs/pdf/sources`, binds the visible package version to the root manifest, and fails when any
|
|
28
28
|
tracked PDF is stale. Source and binary PDFs are one release unit.
|
|
29
29
|
|
|
30
|
-
For beta.12.
|
|
30
|
+
For beta.12.9, the release gate also relies on `npm run release:check` to fail if:
|
|
31
31
|
|
|
32
32
|
- canonical entity schema 2 shapes drift;
|
|
33
33
|
- protocol 2 is not the active public contract, or intact protocol-1 adoption evidence stops being readable through the bounded compatibility window;
|
|
@@ -42,10 +42,18 @@ For beta.12.7, the release gate also relies on `npm run release:check` to fail i
|
|
|
42
42
|
explicit recovery, or dual-readback capabilities are absent from the packaged surface.
|
|
43
43
|
- scoped Task navigation, credential replacement recovery, or sealed external Task/Step review
|
|
44
44
|
commands are absent from the packaged surface.
|
|
45
|
+
- `task result-set` can enter the unbounded Human final-acceptance gate without consuming a live
|
|
46
|
+
writer credential and releasing its lease, or claimed Task E2E cannot reacquire a fresh merge credential.
|
|
45
47
|
- bounded dependency-provenance recovery, retained passed-review provenance, the exact Signal T04
|
|
46
48
|
revision-26 fixture, or pending/corrupt-review rejection regressions are absent.
|
|
47
49
|
- dependency recovery again requires Task-local manifest/lock fields to equal the Milestone base,
|
|
48
50
|
or a candidate commit can alter any non-Workflow dependency payload.
|
|
51
|
+
- corrective replan drops completed Step evidence from accepted Task history, or an already-stranded
|
|
52
|
+
Task can register arbitrary/unreviewed history instead of one exact passed and previously accepted
|
|
53
|
+
Step commit.
|
|
54
|
+
- beta.12.9 cannot install through an exact dependency-only base/Task transport while preserving the
|
|
55
|
+
active Step worktree, or that compatibility route fails to bind the dependency HEAD, historical
|
|
56
|
+
commit, current Plan/Step, dirty paths/content hash, and absence of leases/transactions.
|
|
49
57
|
- the read-only Milestone progress projection, replacement regression, project-monotonic chat
|
|
50
58
|
registry, title fallback/readback, or long-Cyrillic multi-attempt E2E evidence is absent.
|
|
51
59
|
- bounded first-failure Plan-integrity recovery, exact failed-remediation/manifest/worktree
|
|
@@ -59,6 +59,36 @@ candidate: его HEAD обязан менять ровно `package.json` и `p
|
|
|
59
59
|
dependency; любое другое поле, добавленное тем же candidate commit, неизвестный commit, stale base,
|
|
60
60
|
dirty checkout, lease или transaction по-прежнему блокируют recovery.
|
|
61
61
|
|
|
62
|
+
### Исключение beta.12.9 для Step commit, потерянного corrective Plan
|
|
63
|
+
|
|
64
|
+
Если активный corrective Step сохраняет допустимый dirty worktree, а `task step-complete` обнаруживает
|
|
65
|
+
ровно один старый product commit, beta.12.9 не требует переписывать Git. Пакет поддерживает два
|
|
66
|
+
строго ограниченных входа в один и тот же recovery:
|
|
67
|
+
|
|
68
|
+
- если beta.12.9 уже зарегистрирована, свежий `next` рекламирует
|
|
69
|
+
`task historical-step-provenance-recover`;
|
|
70
|
+
- если для установки beta.12.9 на Milestone base и Task branch уже созданы ровно dependency-only
|
|
71
|
+
commits, свежий `next` рекламирует `update historical-step-dependency-recover`. Этот переход
|
|
72
|
+
атомарно регистрирует новый dependency HEAD и сохраняет authority старого Step commit.
|
|
73
|
+
|
|
74
|
+
В обоих случаях Core сам доказывает для старого SHA полную hash-valid strict Step Review цепочку с
|
|
75
|
+
решением `passed`, verified reviewer isolation и совпадающий прежний `final_acceptance`. Update-route
|
|
76
|
+
дополнительно требует exact target version на declared/locked/installed/current-branch/base surfaces,
|
|
77
|
+
dependency commit только из `package.json` и `package-lock.json`, а также неизменный hash активного
|
|
78
|
+
dirty worktree относительно read-only assessment.
|
|
79
|
+
|
|
80
|
+
Сначала выполните read-only `task historical-step-provenance-preflight --id <TASK-ID>`. Продолжайте
|
|
81
|
+
только при `eligible=true`, точных Task revision, Plan/Brief/HEAD и commit SHA, отсутствии leases,
|
|
82
|
+
transactions и Core operations, а также dirty paths строго внутри `allowedWrites` единственного
|
|
83
|
+
активного Step. Recover принимает exact SHA, actor и содержательную reason, добавляет SHA в
|
|
84
|
+
`invalidatedStepCommits` и записывает источник прежнего acceptance. Product bytes, HEAD и текущий
|
|
85
|
+
Plan не меняются; старый Step не возвращается в Plan. После recovery обязательны последовательные
|
|
86
|
+
`status` и `next`, затем обычный credential route и `task step-complete` текущего Step.
|
|
87
|
+
|
|
88
|
+
Несколько unknown commits, pending/failed review, несовпадающий Plan прежнего acceptance,
|
|
89
|
+
повреждённый sidecar, посторонний dirty path или lease являются hard stop. Запрещено заменять этот
|
|
90
|
+
переход rebase/reset/amend, ручным `systemCommits` или переносом старого Step в текущий Plan.
|
|
91
|
+
|
|
62
92
|
### Исключение beta.12.6 для активного downstream proof
|
|
63
93
|
|
|
64
94
|
Обычный `update preflight` по-прежнему правильно запрещает обновление при running Step и dirty
|