codex-workflow-v2 2.0.0-alpha.6.1 → 2.0.0-alpha.6.2

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/docs/release.md CHANGED
@@ -31,3 +31,7 @@ Tag releases as `v<package-version>`. The tag workflow verifies the tag/package
31
31
  uses npm trusted publishing with public access. For a public GitHub repository and public
32
32
  package, npm trusted publishing generates provenance automatically. Publishing is never
33
33
  performed by local validation commands.
34
+
35
+ The `2.0.0-alpha.6.x` backport line publishes with the dedicated `backport-alpha6`
36
+ dist-tag (or by exact version). It must never move npm's `next` tag, which remains owned by
37
+ the alpha.7 line.
@@ -44,6 +44,24 @@ Recovery не требует и не допускает предваритель
44
44
  knowledge rebind, свежую authorization и завершите Task. Только на безопасной lifecycle-границе
45
45
  запускайте обычное обновление dependency и gateway.
46
46
 
47
+ ## Исключение: signal_v4 после двух failed review в alpha.6
48
+
49
+ Если точный alpha.6 state уже дошёл до Task revision 14/status `ready`, `STEP-001` имеет два
50
+ distinct verified strict-review failure, remediation `attemptCount=2`, а corrective decision
51
+ отсутствует, используйте только внешний runner `2.0.0-alpha.6.2`. Dependency проекта при этом
52
+ остаётся точно `2.0.0-alpha.6`.
53
+
54
+ Сначала выполните mutation-free `update corrective-rescue-preflight`. Он требует clean checkout
55
+ на exact HEAD `5c63798cc7b8fbb5e1c8b26ebf93876bc642295a`, неизменные Brief/Plan/Milestone bindings,
56
+ claimed C1 и ровно один token-bound lease. Stale lease допустим только при точном совпадении
57
+ claimant/token binding; plaintext token команда не возвращает.
58
+
59
+ При `eligible=true` команда `update corrective-rescue-apply` принимает исходный actor/token,
60
+ полный corrective Plan, independent `continue-fix` decision audit и отдельный independent Plan
61
+ audit. Она использует канонические переходы, heartbeat'ит существующий lease только после
62
+ проверки actor/token и не удаляет его. Нельзя вручную редактировать state, Brief, Step 2,
63
+ requirements/acceptance или Milestone scope.
64
+
47
65
  ## 1. Подготовьте отдельный чат обновления
48
66
 
49
67
  Не обновляйте пакет во время выполняющегося Worker Step. Дождитесь завершения текущего ответа
@@ -1,15 +1,15 @@
1
1
  # V2 Alpha Validation Report
2
2
 
3
- Release candidate `2.0.0-alpha.6.1` was validated on 2026-08-14 with Node.js 24.17.0 as a
4
- narrow backport from the published `2.0.0-alpha.6` baseline.
3
+ Release candidate `2.0.0-alpha.6.2` was validated on 2026-08-14 with Node.js 20.12.2 as a
4
+ narrow backport from the `2.0.0-alpha.6.1` backport line, itself based on published
5
+ `2.0.0-alpha.6`.
5
6
 
6
7
  - `npm run typecheck`, `npm run build`, `npm test`, `npm run validate`, `npm run plugin:check`,
7
8
  `npm run smoke:downstream`, `npm run release:check`, and `npm run pack:check` passed in the
8
9
  sequential backport validation.
9
- - The final sequential full suite passed `83/83` on 2026-08-14.
10
- - The package test script runs test files sequentially and uses Node's `--test-force-exit`
11
- after all test cases finish because concurrent isolated runners retain IPC/stdio handles in
12
- this environment; the same 83 cases also passed when executed per file.
10
+ - The final sequential full suite passed `89/89` on 2026-08-14.
11
+ - The package test script runs test files sequentially; the unsupported
12
+ `--test-force-exit` flag was removed.
13
13
  - Plan Risk Audit coverage includes the combined `plan-set --risk-audit-file` path, atomic
14
14
  rejection before Task/Plan acceptance, distinct planner/auditor identities, exact current
15
15
  Step-set equality, concrete failure modes, executable evidence binding, coupled
@@ -24,8 +24,14 @@ narrow backport from the published `2.0.0-alpha.6` baseline.
24
24
  exposes no plaintext token, completes review with the exact claimant/token, and fails closed
25
25
  for a wrong actor or token. Ordinary `task step-review` remains blocked by stale Knowledge.
26
26
  - Guarded remediation coverage includes the per-Step circuit breaker: two ordinary retries
27
- allowed, third gated by bounded `continue-fix`, a hard stop after a third failed corrective
28
- review, and stop/redirection handling for `split-required` and `stop-escalate`.
27
+ allowed, the third gated by a separate decision plus full independently audited corrective
28
+ Plan, an explicit corrective run envelope, a hard stop after a third failed corrective
29
+ review, and stop/redirection handling for `split-required` and `stop-escalate`. Knowledge
30
+ rebind and reauthorization preserve this breaker posture.
31
+ - Signal_v4 rescue coverage includes exact alpha.6 dependency/HEAD/Task/review-history
32
+ matching, mutation-free preflight, active and stale bound leases without token disclosure,
33
+ wrong actor/token ordering before heartbeat, scope-preserving decision plus full Plan apply,
34
+ dirty/advanced checkout rejection, malformed/missing review evidence, and unrelated leases.
29
35
  - Milestone coverage includes human-only scope-change prepare/apply, journaled recovery of
30
36
  `state.json`, `plan.json`, and `scope-change-events.jsonl`, plus membership-integrity
31
37
  blocking for stale or contradictory Milestone/Task state, including reverse detection of a
@@ -44,13 +50,16 @@ narrow backport from the published `2.0.0-alpha.6` baseline.
44
50
  `plan-risk-audit-sidecar-v1`, `step-strict-review-sidecar-v1`,
45
51
  `step-remediation-circuit-breaker-sidecar-v1`, `milestone-scope-change-sidecar-v1`,
46
52
  `milestone-membership-integrity-v1`, `task-c1-handoff-sidecar-v1`, and
47
- `alpha6-adoption-posture-v1`, plus strengthened contracts advertised as
53
+ `alpha6-adoption-posture-v1`, `alpha6-c1-strict-review-rescue-v1`, and
54
+ `alpha6-corrective-rescue-signal-v4`, plus strengthened contracts advertised as
48
55
  `semantic-plan-risk-audit-v2`, `guarded-remediation-hard-stop-v1`,
49
56
  `milestone-reverse-membership-integrity-v1`, and `task-c1-handoff-bundle-v2`.
50
- - npm dry-run packaging produced `codex-workflow-v2-2.0.0-alpha.6.1.tgz` with runtime, schemas,
57
+ - npm dry-run packaging produced `codex-workflow-v2-2.0.0-alpha.6.2.tgz` with runtime, schemas,
51
58
  references, docs, and plugin source. Downstream installation and the packaged CLI handshake
52
59
  passed, and the install created none of `.codex`, `.tasks`, `.increments`, or
53
60
  `.memory-bank` in the temporary project.
61
+ - Release checks require the dedicated `backport-alpha6` npm dist-tag, so publishing this
62
+ version cannot move the alpha.7-owned `next` tag.
54
63
 
55
64
  Not claimed here:
56
65
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-workflow-v2",
3
- "version": "2.0.0-alpha.6.1",
3
+ "version": "2.0.0-alpha.6.2",
4
4
  "description": "Requirements-first Codex development workflow with local state and explicit Git ownership.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -40,7 +40,7 @@
40
40
  "clean": "node --eval \"import('node:fs').then(({rmSync}) => { rmSync('dist', {recursive:true, force:true}); rmSync('.test-dist', {recursive:true, force:true}); })\"",
41
41
  "build": "npm run clean && tsc -p tsconfig.build.json && node scripts/mark-cli-executable.mjs",
42
42
  "typecheck": "tsc -p tsconfig.json --noEmit",
43
- "test": "npm run build && tsc -p tsconfig.test.json && node --test --test-concurrency=1 --test-force-exit .test-dist/tests/*.test.js",
43
+ "test": "npm run build && tsc -p tsconfig.test.json && node --test --test-concurrency=1 .test-dist/tests/*.test.js",
44
44
  "validate": "npm run typecheck && npm test",
45
45
  "pack:check": "npm run build && npm pack --dry-run",
46
46
  "smoke:downstream": "npm run build && node scripts/downstream-smoke.mjs",
@@ -43,6 +43,16 @@
43
43
  "stepId": { "type": "string", "pattern": "^STEP-[0-9]{3}(?:-[A-Z0-9-]+)?$" },
44
44
  "expectedRevision": { "type": "integer", "minimum": 1 },
45
45
  "writerToken": { "type": ["string", "null"] },
46
+ "remediation": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "required": ["attemptOrdinal", "mode", "correctiveDecisionEventId"],
50
+ "properties": {
51
+ "attemptOrdinal": { "type": "integer", "minimum": 1, "maximum": 3 },
52
+ "mode": { "enum": ["ordinary", "corrective"] },
53
+ "correctiveDecisionEventId": { "type": ["string", "null"] }
54
+ }
55
+ },
46
56
  "knowledgeMap": {
47
57
  "type": "object",
48
58
  "additionalProperties": false,
@@ -0,0 +1,47 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://codex-workflow.local/schemas/corrective-plan-audit-record.schema.json",
4
+ "title": "Codex Workflow V2 Alpha.6 Corrective Plan Audit Binding",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "recordedAt",
9
+ "taskId",
10
+ "taskRevision",
11
+ "stepId",
12
+ "triggeringAttemptCount",
13
+ "decisionEventId",
14
+ "decisionPlanHash",
15
+ "previousPlanHash",
16
+ "correctivePlanHash",
17
+ "failedReviewAttempts",
18
+ "auditor",
19
+ "summary",
20
+ "decision",
21
+ "reviewedFindingIds"
22
+ ],
23
+ "properties": {
24
+ "recordedAt": { "type": "string", "format": "date-time" },
25
+ "taskId": { "type": "string", "pattern": "^TASK-[0-9A-HJKMNP-TV-Z]{26}$" },
26
+ "taskRevision": { "type": "integer", "minimum": 0 },
27
+ "stepId": { "type": "string", "pattern": "^STEP-[0-9]{3}(?:-[A-Z0-9-]+)?$" },
28
+ "triggeringAttemptCount": { "const": 3 },
29
+ "decisionEventId": { "type": "string", "minLength": 1 },
30
+ "decisionPlanHash": { "$ref": "#/$defs/hash64" },
31
+ "previousPlanHash": { "$ref": "#/$defs/hash64" },
32
+ "correctivePlanHash": { "$ref": "#/$defs/hash64" },
33
+ "failedReviewAttempts": { "const": 2 },
34
+ "auditor": { "type": "string", "minLength": 1 },
35
+ "summary": { "type": "string", "minLength": 1 },
36
+ "decision": { "const": "continue-fix" },
37
+ "reviewedFindingIds": {
38
+ "type": "array",
39
+ "minItems": 1,
40
+ "uniqueItems": true,
41
+ "items": { "type": "string", "minLength": 1 }
42
+ }
43
+ },
44
+ "$defs": {
45
+ "hash64": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
46
+ }
47
+ }