codex-workflow-v2 2.0.0-beta.12.4 → 2.0.0-beta.12.5
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 +16 -3
- package/dist/src/alpha6/downstream-proof.d.ts +29 -0
- package/dist/src/alpha6/downstream-proof.js +249 -0
- package/dist/src/alpha6/downstream-proof.js.map +1 -0
- package/dist/src/cli.js +9 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +19 -0
- package/dist/src/git.js +1 -0
- package/dist/src/git.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 +5 -0
- package/dist/src/workflow.js +152 -3
- package/dist/src/workflow.js.map +1 -1
- package/docs/autonomy-guardrails.md +16 -0
- package/docs/development-flow.md +12 -0
- 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 +20 -6
- package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +19 -8
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +30 -11
- package/docs/release.md +7 -1
- package/docs/validation-report.md +81 -78
- package/package.json +1 -1
- package/plugins/codex-workflow-gateway/references/protocol.md +16 -1
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +26 -1
- package/schemas/downstream-proof-invalidation-event.schema.json +70 -0
- package/schemas/task.schema.json +5 -0
|
@@ -67,6 +67,20 @@ active writer token when the C1 contract requires it. The recovery records only
|
|
|
67
67
|
`task run` merely to manufacture the second failure, and never invoke this recovery for a generic
|
|
68
68
|
test failure, a writable manifest, or unconfined changes.
|
|
69
69
|
|
|
70
|
+
When fresh `next` advertises `task downstream-proof-recover`, the active proof Step has produced
|
|
71
|
+
uncommitted files inside its own `allowedWrites` and has also exposed required changes owned by one
|
|
72
|
+
or more completed transitive predecessor Steps. Do not invoke `task step-complete`: its scope is
|
|
73
|
+
known to be stale. Use only the exact returned Task revision, claimant/lease actor, writer-token
|
|
74
|
+
contract, and a substantive reason. The atomic recovery preserves the worktree and HEAD, moves the
|
|
75
|
+
predecessor completion commits into historical `invalidatedStepCommits`, clears only the invalidated
|
|
76
|
+
completion evidence, blocks the active proof Step, supersedes execution authorization, appends
|
|
77
|
+
`downstream-proof-invalidations.jsonl`, releases C1/lease authority, and returns the same Task to
|
|
78
|
+
ordinary `task plan-set`. Build the replacement Plan from the full unfinished remainder, attach a
|
|
79
|
+
fresh Plan Risk Audit, then obtain fresh execution authorization. Never use this route for an
|
|
80
|
+
unrelated dirty file, a non-predecessor file, unregistered Git history, strict-review evidence, or
|
|
81
|
+
without explicit fresh `next` eligibility. Do not reset, stash, commit, or recreate the Task or
|
|
82
|
+
Milestone around this transition.
|
|
83
|
+
|
|
70
84
|
If any step fails, report the concrete diagnostic. Do not load workflow
|
|
71
85
|
semantics from this skill.
|
|
72
86
|
|
|
@@ -109,7 +123,7 @@ command shape or consuming a replacement Discovery. Never rebind, refresh, repla
|
|
|
109
123
|
resume, cancel, or manually replace the historical Task. Continue only after a later P04-B/P05
|
|
110
124
|
package explicitly advertises a topology-preserving replacement capability.
|
|
111
125
|
|
|
112
|
-
When beta.12.
|
|
126
|
+
When beta.12.5 `next` advertises `task stop-override-prepare`, the route is limited to the exact
|
|
113
127
|
beta.11 attempt-four policy stop: two ordinary failures, one corrective failure, a matching
|
|
114
128
|
attempt-3 `continue-fix`, and a matching attempt-4 `stop-escalate` under the unchanged Plan. Invoke
|
|
115
129
|
prepare with the exact Task/Step/revision, explicit human actor, and user-supplied reason. It is
|
|
@@ -155,6 +169,17 @@ For `task start`, the policy applies only when choosing `--workspace-owner local
|
|
|
155
169
|
`task step-complete`, `task merge`, and `task sync-base`, the advertised transition itself
|
|
156
170
|
writes Git metadata.
|
|
157
171
|
|
|
172
|
+
Treat Docker access diagnostics before classifying an infrastructure failure. `EPERM`,
|
|
173
|
+
`operation not permitted`, or `permission denied` while opening the Docker socket or invoking the
|
|
174
|
+
Docker CLI from a sandbox means the proof is unavailable at the current execution boundary; it is
|
|
175
|
+
not evidence that the daemon or image is broken. Re-run the exact read-only health probe or exact
|
|
176
|
+
Plan check once with the required sandbox escalation. This escalation rerun does not consume a
|
|
177
|
+
Workflow remediation attempt or a local infrastructure retry. Only an escalated probe that reaches
|
|
178
|
+
Docker and reports an unavailable daemon may be classified as a Docker infrastructure failure.
|
|
179
|
+
Never start, stop, or restart Docker Desktop, pull a substitute image, or mutate Docker state merely
|
|
180
|
+
because the sandboxed call returned a permission error; those actions require their own explicit
|
|
181
|
+
authorization and evidence.
|
|
182
|
+
|
|
158
183
|
When `next` includes `writerTokenContract`, treat it as an exact first-call precondition. Retain
|
|
159
184
|
the active writer lease from the first-field `writerLeaseReceipt` returned by `task run` and pass it using the advertised `option` for that
|
|
160
185
|
transition. The token is sensitive: never print, summarize, persist, or substitute a redacted
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://codex-workflow.local/schemas/downstream-proof-invalidation-event.schema.json",
|
|
4
|
+
"title": "Codex Workflow V2 Downstream Proof Invalidation Event",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"eventId",
|
|
9
|
+
"taskId",
|
|
10
|
+
"previousTaskRevision",
|
|
11
|
+
"resultTaskRevision",
|
|
12
|
+
"planHash",
|
|
13
|
+
"activeStepId",
|
|
14
|
+
"invalidatedSteps",
|
|
15
|
+
"dirtyFiles",
|
|
16
|
+
"preservedHeadCommit",
|
|
17
|
+
"actor",
|
|
18
|
+
"reason",
|
|
19
|
+
"packageVersion",
|
|
20
|
+
"previousEventHash",
|
|
21
|
+
"recordedAt",
|
|
22
|
+
"eventHash"
|
|
23
|
+
],
|
|
24
|
+
"properties": {
|
|
25
|
+
"eventId": { "type": "string", "pattern": "^DPI-[0-9A-HJKMNP-TV-Z]{26}$" },
|
|
26
|
+
"taskId": { "$ref": "#/$defs/taskId" },
|
|
27
|
+
"previousTaskRevision": { "type": "integer", "minimum": 1 },
|
|
28
|
+
"resultTaskRevision": { "type": "integer", "minimum": 2 },
|
|
29
|
+
"planHash": { "$ref": "#/$defs/hash64" },
|
|
30
|
+
"activeStepId": { "$ref": "#/$defs/stepId" },
|
|
31
|
+
"invalidatedSteps": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"minItems": 1,
|
|
34
|
+
"items": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"additionalProperties": false,
|
|
37
|
+
"required": ["stepId", "evidenceCommit", "triggerFiles"],
|
|
38
|
+
"properties": {
|
|
39
|
+
"stepId": { "$ref": "#/$defs/stepId" },
|
|
40
|
+
"evidenceCommit": { "$ref": "#/$defs/gitHash" },
|
|
41
|
+
"triggerFiles": {
|
|
42
|
+
"type": "array",
|
|
43
|
+
"uniqueItems": true,
|
|
44
|
+
"items": { "type": "string", "minLength": 1 }
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"dirtyFiles": {
|
|
50
|
+
"type": "array",
|
|
51
|
+
"minItems": 1,
|
|
52
|
+
"uniqueItems": true,
|
|
53
|
+
"items": { "type": "string", "minLength": 1 }
|
|
54
|
+
},
|
|
55
|
+
"preservedHeadCommit": { "$ref": "#/$defs/gitHash" },
|
|
56
|
+
"actor": { "type": "string", "minLength": 1 },
|
|
57
|
+
"reason": { "type": "string", "minLength": 1 },
|
|
58
|
+
"packageVersion": { "type": "string", "minLength": 1 },
|
|
59
|
+
"previousEventHash": { "$ref": "#/$defs/nullableHash64" },
|
|
60
|
+
"recordedAt": { "type": "string", "format": "date-time" },
|
|
61
|
+
"eventHash": { "$ref": "#/$defs/hash64" }
|
|
62
|
+
},
|
|
63
|
+
"$defs": {
|
|
64
|
+
"taskId": { "type": "string", "pattern": "^TASK-[0-9A-HJKMNP-TV-Z]{26}$" },
|
|
65
|
+
"stepId": { "type": "string", "pattern": "^STEP-[0-9]{3}(?:-[A-Z0-9-]+)?$" },
|
|
66
|
+
"gitHash": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
|
|
67
|
+
"hash64": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
68
|
+
"nullableHash64": { "type": ["string", "null"], "pattern": "^[a-f0-9]{64}$" }
|
|
69
|
+
}
|
|
70
|
+
}
|
package/schemas/task.schema.json
CHANGED
|
@@ -55,6 +55,11 @@
|
|
|
55
55
|
},
|
|
56
56
|
"replacementForTaskId": { "type": ["string", "null"], "pattern": "^TASK-[0-9A-HJKMNP-TV-Z]{26}$" },
|
|
57
57
|
"replacedByTaskId": { "type": ["string", "null"], "pattern": "^TASK-[0-9A-HJKMNP-TV-Z]{26}$" },
|
|
58
|
+
"invalidatedStepCommits": {
|
|
59
|
+
"type": "array",
|
|
60
|
+
"uniqueItems": true,
|
|
61
|
+
"items": { "type": "string", "pattern": "^[a-f0-9]{40}$" }
|
|
62
|
+
},
|
|
58
63
|
"dependencyProvenanceRecoveries": {
|
|
59
64
|
"type": "array",
|
|
60
65
|
"items": {
|