codex-workflow-v2 2.0.0-beta.13.11 → 2.0.0-beta.13.12

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.
Files changed (38) hide show
  1. package/README.md +1 -1
  2. package/dist/reviewer-runtime-build.json +21 -9
  3. package/dist/src/alpha6/component-owner.d.ts +15 -1
  4. package/dist/src/alpha6/component-owner.js +44 -2
  5. package/dist/src/alpha6/component-owner.js.map +1 -1
  6. package/dist/src/alpha6/literal-test-invocation.d.ts +2 -0
  7. package/dist/src/alpha6/literal-test-invocation.js +106 -0
  8. package/dist/src/alpha6/literal-test-invocation.js.map +1 -0
  9. package/dist/src/alpha6/plan-integrity-update.d.ts +6 -0
  10. package/dist/src/alpha6/plan-integrity-update.js +17 -0
  11. package/dist/src/alpha6/plan-integrity-update.js.map +1 -0
  12. package/dist/src/alpha6/plan-integrity.js +7 -5
  13. package/dist/src/alpha6/plan-integrity.js.map +1 -1
  14. package/dist/src/alpha6/remediation.d.ts +5 -0
  15. package/dist/src/alpha6/remediation.js +150 -33
  16. package/dist/src/alpha6/remediation.js.map +1 -1
  17. package/dist/src/contracts.d.ts +7 -0
  18. package/dist/src/navigation-actions.d.ts +9 -0
  19. package/dist/src/navigation-actions.js +72 -0
  20. package/dist/src/navigation-actions.js.map +1 -0
  21. package/dist/src/state/corrective-replan-executor.d.ts +10 -0
  22. package/dist/src/state/corrective-replan-executor.js +37 -1
  23. package/dist/src/state/corrective-replan-executor.js.map +1 -1
  24. package/dist/src/version.d.ts +1 -1
  25. package/dist/src/version.js +1 -1
  26. package/dist/src/workflow.js +11 -7
  27. package/dist/src/workflow.js.map +1 -1
  28. package/docs/lifecycle-capture.md +34 -0
  29. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  30. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  31. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  32. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +23 -1
  33. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +22 -2
  34. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +22 -2
  35. package/docs/release.md +34 -0
  36. package/docs/updating-existing-project.md +31 -0
  37. package/package.json +1 -1
  38. package/schemas/corrective-decision-event.schema.json +3 -1
@@ -0,0 +1,34 @@
1
+ # Repository lifecycle capture
2
+
3
+ Use `node scripts/capture-lifecycle.mjs <actual CLI arguments>` with
4
+ `WORKFLOW_CAPTURE_CONFIG=/absolute/capture-config.json`. This repository-only tool
5
+ records actual CLI calls; it does not authorize commands, inject credentials,
6
+ or decide what to execute next. Follow Core navigation and validate the resulting
7
+ append-only JSONL with `scripts/validate-lifecycle-transcript.mjs`.
8
+
9
+ Prepare a config with `runId`, `candidate` (source commit), `version`, `repository`,
10
+ `stateRoot`, `log` (new absolute JSONL path), and `workerThreadId`. Bind each of
11
+ `artifact`, `bootstrapReceipt`, `cli`, `projector`, and `validator` using
12
+ `{ "file": "/absolute/path", "sha256": "<exact file hash>" }`.
13
+ `captureFiles` contains the same references for both `scripts/capture-lifecycle.mjs`
14
+ and `scripts/lifecycle-capture-evidence.mjs`. Do not edit these files/config while
15
+ capturing a run. Use absolute paths throughout.
16
+
17
+ The CLI and projector must belong to that fixture's exact installed package:
18
+ `dist/src/cli.js` and `dist/src/navigation-actions.js`. The validator uses its own
19
+ current build; build that checkout before capture. Its exported observation
20
+ registry classifies records, while the installed canonical projector supplies
21
+ advertised actions. Neither diagnostic routes nor Task status create authority.
22
+
23
+ Use only the disposable synthetic bootstrap receipt from the maintained bootstrap
24
+ tool. Repository, state root, candidate hash and version must match. Simulated
25
+ Knowledge/grant approvals are test setup, never production consent. Do not import
26
+ production project state or credentials. No live fixture is migrated by this tool.
27
+
28
+ Each invocation emits BEGIN/END markers and appends a terminal result, including
29
+ failures. Evidence redacts authority values and retains raw output hashes; original
30
+ CLI stdout/stderr are returned to the invoking Worker, so retain their normal
31
+ private handling. `INVALID_ARGUMENT` alone is not proof of a nonmutating retry.
32
+ The recorder does not erase failures or convert them into successful lifecycle
33
+ evidence. Keep actual App source records and review packets alongside the log;
34
+ the capture log alone does not establish an independent App review.
@@ -463,7 +463,7 @@ Restart Docker Desktop требует отдельного разрешения
463
463
  # 10. Operational checklist
464
464
 
465
465
  - exact package version установлен, bundled gateway соответствует release и переустановлен;
466
- - handshake подтверждает `packageVersion=2.0.0-beta.13.11`, protocol 2, state schema 2 и beta.13
466
+ - handshake подтверждает `packageVersion=2.0.0-beta.13.12`, protocol 2, state schema 2 и beta.13
467
467
  capabilities;
468
468
  - routine observation начинается с компактного `status`; `status --full` запрашивается только для
469
469
  расследования, которому действительно нужна полная historical projection;
@@ -476,3 +476,25 @@ Restart Docker Desktop требует отдельного разрешения
476
476
  - advertised route имеет Signal-observed matrix binding либо явно помечен unsupported;
477
477
  - dependencies, progress и review posture берутся из Core projections;
478
478
  - local state не редактируется вручную; release и package update выполняются только после safe preflight и обязательных checks.
479
+
480
+
481
+ <!-- pagebreak -->
482
+
483
+ ## beta.13.12: восстановление зависимости тестового каталога
484
+
485
+ Поддерживаемый явный Vitest invocation связывает required check с единственным tracked
486
+ migration-catalog test. Это отдельное hash-bound evidence, а не выдуманный static import.
487
+ Неоднозначность, dynamic пути и forbiddenScope сохраняют запрет расширения.
488
+
489
+ После подтверждённого corrective Plan новый механический конфликт оценивается в проверенном
490
+ текущем semantic cycle. История, глобальные ordinals и stop/split authority сохраняются.
491
+ Расширение scope выполняется только по свежему Core route; ручная правка allowedWrites запрещена.
492
+
493
+ Выданное расширение переносится через проверенную Knowledge-only цепочку лишь при неизменных
494
+ Step и semantic scope. Navigation, исполнение и review scope используют одно доказательство.
495
+ Execution authorization остаётся отдельным условием; повреждённая цепочка блокирует перенос.
496
+
497
+ Read-only Plan-integrity update preflight допускает beta.13.11+ source только с новым eligible
498
+ V4 literal-test evidence и более новым exact target. Running Step, любой lease, повреждённая
499
+ история, изменённые dirty bytes или более широкий dependency transport остаются блокерами.
500
+ Полный протокол и ограничения: docs/updating-existing-project.md и docs/release.md.
@@ -57,7 +57,7 @@ AGENTS.md
57
57
  -> doctor только как дополнительная диагностика
58
58
  ```
59
59
 
60
- Handshake beta.13.11 должен сообщать `packageVersion=2.0.0-beta.13.11`, `protocolVersion=2`,
60
+ Handshake beta.13.12 должен сообщать `packageVersion=2.0.0-beta.13.12`, `protocolVersion=2`,
61
61
  `stateSchemaVersion=2`, dependency DAG, initial Plan transaction, mechanical feasibility,
62
62
  Milestone autonomy, host-safe credential reference, failed-Step continuation transaction,
63
63
  cause-bound rolling refinement, structural production edge, compact status, reviewer runtime preflight,
@@ -480,7 +480,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
480
480
  # 14. Итоговый checklist пользователя
481
481
 
482
482
  - beta.13.10 exact package и новый bundled gateway установлены; handshake показывает
483
- `packageVersion=2.0.0-beta.13.11`, protocol/state schema `2/2` и beta.13 capabilities;
483
+ `packageVersion=2.0.0-beta.13.12`, protocol/state schema `2/2` и beta.13 capabilities;
484
484
  - новый Coordinator chat не является fork старого Milestone;
485
485
  - bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
486
486
  - Discovery не materialized при blocking unknowns;
@@ -504,3 +504,23 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
504
504
  - historical-Step recovery, если рекламировался, сохранил exact accepted commit и довёл текущий Step до обычного `step-complete` без history rewrite;
505
505
  - split-required остановился без replacement mutations;
506
506
  - Milestone validation и final acceptance связаны с текущим clean base HEAD.
507
+
508
+
509
+ ## beta.13.12: восстановление зависимости тестового каталога
510
+
511
+ Поддерживаемый явный Vitest invocation связывает required check с единственным tracked
512
+ migration-catalog test. Это отдельное hash-bound evidence, а не выдуманный static import.
513
+ Неоднозначность, dynamic пути и forbiddenScope сохраняют запрет расширения.
514
+
515
+ После подтверждённого corrective Plan новый механический конфликт оценивается в проверенном
516
+ текущем semantic cycle. История, глобальные ordinals и stop/split authority сохраняются.
517
+ Расширение scope выполняется только по свежему Core route; ручная правка allowedWrites запрещена.
518
+
519
+ Выданное расширение переносится через проверенную Knowledge-only цепочку лишь при неизменных
520
+ Step и semantic scope. Navigation, исполнение и review scope используют одно доказательство.
521
+ Execution authorization остаётся отдельным условием; повреждённая цепочка блокирует перенос.
522
+
523
+ Read-only Plan-integrity update preflight допускает beta.13.11+ source только с новым eligible
524
+ V4 literal-test evidence и более новым exact target. Running Step, любой lease, повреждённая
525
+ история, изменённые dirty bytes или более широкий dependency transport остаются блокерами.
526
+ Полный протокол и ограничения: docs/updating-existing-project.md и docs/release.md.
@@ -15,7 +15,7 @@ authority сами: mutating permission определяется runtime state
15
15
 
16
16
  | Параметр beta.13 | Значение |
17
17
  |---|---|
18
- | npm package | `codex-workflow-v2@2.0.0-beta.13.11` |
18
+ | npm package | `codex-workflow-v2@2.0.0-beta.13.12` |
19
19
  | protocolVersion | 2 |
20
20
  | stateSchemaVersion | 2 |
21
21
  | lifecycle epoch | 2 |
@@ -775,7 +775,7 @@ dirty update.
775
775
  observed-route matrix/compact-status/reviewer-runtime tests, legacy compatibility regressions,
776
776
  `npm run test:signal-t10-check-support-e2e`, `npm run test:signal-remediation-e2e`,
777
777
  `npm run pack:check`, `npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
778
- `npm run docs:pdf:check` и `npm run release:check` с exact `v2.0.0-beta.13.11` tag binding и append-only
778
+ `npm run docs:pdf:check` и `npm run release:check` с exact `v2.0.0-beta.13.12` tag binding и append-only
779
779
  real-agent lifecycle log. Candidate проверяется из clean source checkout; missing built module не должен
780
780
  превращаться в stack trace, а обязан быть детерминированно собран или диагностирован release gate.
781
781
 
@@ -784,3 +784,23 @@ Real-agent gate повторяет production boundary Codex App: Task agent у
784
784
  Nested native `codex exec` внутри другого Codex agent не является release evidence. Packet generation
785
785
  логируется как read-only observation, record — как exact `next`-authorized mutation с последующими
786
786
  `status` и `next`.
787
+
788
+
789
+ ## beta.13.12: восстановление зависимости тестового каталога
790
+
791
+ Поддерживаемый явный Vitest invocation связывает required check с единственным tracked
792
+ migration-catalog test. Это отдельное hash-bound evidence, а не выдуманный static import.
793
+ Неоднозначность, dynamic пути и forbiddenScope сохраняют запрет расширения.
794
+
795
+ После подтверждённого corrective Plan новый механический конфликт оценивается в проверенном
796
+ текущем semantic cycle. История, глобальные ordinals и stop/split authority сохраняются.
797
+ Расширение scope выполняется только по свежему Core route; ручная правка allowedWrites запрещена.
798
+
799
+ Выданное расширение переносится через проверенную Knowledge-only цепочку лишь при неизменных
800
+ Step и semantic scope. Navigation, исполнение и review scope используют одно доказательство.
801
+ Execution authorization остаётся отдельным условием; повреждённая цепочка блокирует перенос.
802
+
803
+ Read-only Plan-integrity update preflight допускает beta.13.11+ source только с новым eligible
804
+ V4 literal-test evidence и более новым exact target. Running Step, любой lease, повреждённая
805
+ история, изменённые dirty bytes или более широкий dependency transport остаются блокерами.
806
+ Полный протокол и ограничения: docs/updating-existing-project.md и docs/release.md.
package/docs/release.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # Release Policy
2
2
 
3
+ ## beta.13.12: bounded test invocation recovery after a corrective Plan
4
+
5
+ A required check can invoke a tracked test through an explicit Vitest argument list rather
6
+ than a static import. The bounded component-owner analyzer recognizes supported literal
7
+ runner invocations and a unique migration-catalog test. It records the invocation and hashes
8
+ as their own evidence; it does not invent an import edge or classify every diagnostic path
9
+ as the failing test. Dynamic or ambiguous invocations, forbidden paths and unproved catalog
10
+ dependencies do not establish scope authority.
11
+ Literal invocation evidence binds a supported static call site, tracked runner/test bytes,
12
+ the recorded failed-check diagnostic and a unique missing-catalog anchor. It does not
13
+ assert a runtime trace or prove that every diagnostic path was a failing test.
14
+
15
+ Plan-integrity eligibility can use a verified current semantic Plan cycle after an applied
16
+ human corrective Plan and content-only Knowledge rebind. Historical failures and decisions
17
+ remain immutable and globally numbered. Pending, malformed, conflicting or unconsumed stop
18
+ and split authority must not disappear when selecting the current failure cycle.
19
+ An issued machine-derived support amendment must survive only a verified Knowledge-only
20
+ Plan rebind with the same Step and semantic scope. Navigation, execution and review scope
21
+ must use the same proof. Rebinding does not supply execution authorization, and an invalid
22
+ chain or semantic change must reject the carry-forward. The combined regression must reach
23
+ authorization, run, passing checks and the sealed review packet after this rebind.
24
+
25
+ The existing read-only Plan-integrity update protocol additionally admits coherent beta.13
26
+ patches from beta.13.11 only for a freshly eligible V4 conflict with validated literal test
27
+ invocation evidence and a strictly newer target. Existing lease, transaction, Plan, HEAD,
28
+ dirty-byte and dependency-only transport checks remain in force. This profile does not admit
29
+ an active Step or general dirty-worktree updates. Historical beta.12 profiles are unchanged.
30
+
31
+ Required regression evidence includes real failed-check recovery after human corrective
32
+ execution and rebind, positive and negative invocation proofs, unchanged prior Step history,
33
+ correct current-cycle event readback, and a complete dependency transport, recovery and
34
+ same-Worker continuation. Predicate-only tests do not satisfy the release gate. Ordinary
35
+ CI, exact artifact, disposable App, documentation and publication checks also remain required.
36
+
3
37
  ## beta.13.11: preserve production edges through corrective Plan admission
4
38
 
5
39
  The closed public corrective Plan schema now admits the existing optional
@@ -22,6 +22,37 @@ state schema. Совпадение `stateSchemaVersion` до и после об
22
22
  нужна. Для alpha.6 при `stateSchemaVersion: 2` применяется не migration, а sidecar-only
23
23
  adoption posture.
24
24
 
25
+ ### beta.13.12: явный запуск теста и текущий цикл corrective Plan
26
+
27
+ Если обязательный check вызывает tracked migration-catalog test через поддерживаемый literal
28
+ Vitest invocation, новый analyzer может доказать единственный дополнительный support path.
29
+ Диагностические пути из failed check являются упоминаниями, а не доказательством того, что
30
+ каждый такой тест упал. Неоднозначный каталог, dynamic/glob invocation, выход за компонент
31
+ или forbiddenScope не дают автоматического расширения.
32
+
33
+ После реально зарегистрированного checks-failed новый runtime проверяет текущий semantic
34
+ Plan cycle, включая завершённое human corrective execution и допустимый content-only rebind.
35
+ Старая история и глобальные ordinals сохраняются. Нельзя повторять заведомо падающий Step
36
+ ради счётчика, удалять old decisions или считать неподтверждённую смену Plan новым циклом.
37
+
38
+ Уже выданное machine-derived расширение сохраняется только через проверенную Knowledge-only
39
+ цепочку при неизменных Step и semantic scope. Navigation, исполнение и пакет ревью используют
40
+ одно доказательство. Такая привязка не заменяет execution authorization; повреждённая цепочка
41
+ или изменение смысла Plan запрещают перенос разрешения. После rebind следуйте свежему `next`.
42
+
43
+ Для coherent beta.13 patch начиная с beta.13.11 опубликованный exact более новый runner
44
+ может выполнить только read-only `update plan-integrity-preflight --id <TASK-ID>`.
45
+ Новый source profile требует заново доказанный eligible V4 literal-test conflict; fallback
46
+ adopted/dirty-carryover modes сами по себе его не открывают. Require `eligible=true`, нет
47
+ running Step, active/stale lease или pending operation, точные Plan/HEAD и dirty-byte bindings.
48
+ Далее используйте только возвращённый dependency-only transport на base и Task, установите
49
+ exact target и следуйте target provenance recovery и fresh navigation. Сохраняйте продуктовые
50
+ байты; не применяйте дополнительный test patch до Core-derived scope authority.
51
+
52
+ Обычный `update preflight` остаётся строгим. Отсутствие scope proof или иной blocked boundary
53
+ не разрешает внешний runner для mutation, ручную правку state, stash/reset либо более широкий
54
+ commit. Этот профиль не подменяет внешнюю проверку разрешений.
55
+
25
56
  ### beta.13.1: legacy PRA compatibility after beta.13
26
57
 
27
58
  `2.0.0-beta.13.1` preserves the beta.13 protocol/schema `2/2` and adds no state migration. The
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-workflow-v2",
3
- "version": "2.0.0-beta.13.11",
3
+ "version": "2.0.0-beta.13.12",
4
4
  "description": "Requirements-first Codex development workflow with local state and explicit Git ownership.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -234,13 +234,15 @@
234
234
  "items": {
235
235
  "type": "object", "additionalProperties": false,
236
236
  "required": ["reasonCode", "command", "runnerPath", "ownerPath", "ownerHash", "importChain", "diagnosticPath", "componentRoot"],
237
+ "allOf": [{ "if": { "required": ["testInvocation"] }, "then": { "properties": { "importChain": { "maxItems": 1 } } }, "else": { "properties": { "importChain": { "minItems": 2 } } } }],
237
238
  "properties": {
238
239
  "reasonCode": { "const": "FAILED_CHECK_COMPONENT_OWNER_OUTSIDE_ALLOWED_WRITES" },
239
240
  "command": { "type": "string", "minLength": 1 },
240
241
  "runnerPath": { "type": "string", "minLength": 1 },
241
242
  "ownerPath": { "type": "string", "minLength": 1 },
242
243
  "ownerHash": { "$ref": "#/$defs/hash64" },
243
- "importChain": { "$ref": "#/$defs/stringList", "minItems": 2 },
244
+ "importChain": { "$ref": "#/$defs/stringList", "minItems": 1 },
245
+ "testInvocation": {"type": "object", "additionalProperties": false, "required": ["kind", "runnerHash", "argv", "migrationOutputs", "catalogNames"], "properties": {"kind": {"const": "literal-vitest-catalog"}, "runnerHash": {"type": "string", "pattern": "^[a-f0-9]{64}$"}, "argv": {"type": "array", "items": {"type": "string"}, "minItems": 3}, "migrationOutputs": {"type": "array", "items": {"type": "string"}, "minItems": 1, "uniqueItems": true}, "catalogNames": {"type": "array", "items": {"type": "string", "pattern": "^[0-9]{4}_[a-z0-9_]+\\.sql$"}, "minItems": 1, "uniqueItems": true}}},
244
246
  "diagnosticPath": { "type": "string", "minLength": 1 },
245
247
  "componentRoot": { "type": "string", "minLength": 1 }
246
248
  }