codex-workflow-v2 2.0.0-beta.12.5 → 2.0.0-beta.12.6
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 +17 -3
- package/dist/src/alpha6/downstream-proof.d.ts +6 -1
- package/dist/src/alpha6/downstream-proof.js +50 -3
- package/dist/src/alpha6/downstream-proof.js.map +1 -1
- package/dist/src/cli.js +23 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +15 -1
- package/dist/src/dependency-provenance.d.ts +8 -1
- package/dist/src/dependency-provenance.js +36 -5
- package/dist/src/dependency-provenance.js.map +1 -1
- package/dist/src/git.d.ts +1 -1
- package/dist/src/git.js +4 -2
- 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 +3 -0
- package/dist/src/workflow.js +72 -5
- package/dist/src/workflow.js.map +1 -1
- package/docs/development-flow.md +7 -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 +13 -6
- package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +16 -7
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +20 -11
- package/docs/release.md +5 -1
- package/docs/updating-existing-project.md +37 -2
- package/docs/validation-report.md +87 -77
- package/package.json +1 -1
- package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +1 -1
- package/plugins/codex-workflow-gateway/references/protocol.md +12 -1
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +18 -1
- package/schemas/task.schema.json +22 -0
- package/scripts/generate-pdf-docs.py +13 -2
|
@@ -123,7 +123,7 @@ command shape or consuming a replacement Discovery. Never rebind, refresh, repla
|
|
|
123
123
|
resume, cancel, or manually replace the historical Task. Continue only after a later P04-B/P05
|
|
124
124
|
package explicitly advertises a topology-preserving replacement capability.
|
|
125
125
|
|
|
126
|
-
When beta.12.
|
|
126
|
+
When beta.12.6 `next` advertises `task stop-override-prepare`, the route is limited to the exact
|
|
127
127
|
beta.11 attempt-four policy stop: two ordinary failures, one corrective failure, a matching
|
|
128
128
|
attempt-3 `continue-fix`, and a matching attempt-4 `stop-escalate` under the unchanged Plan. Invoke
|
|
129
129
|
prepare with the exact Task/Step/revision, explicit human actor, and user-supplied reason. It is
|
|
@@ -149,6 +149,23 @@ Core may account for exactly one Task revision per ordered verified recovery. Ne
|
|
|
149
149
|
compatibility from revision arithmetic alone: continue only when fresh `next` returns the validated
|
|
150
150
|
`task run` route. An unrelated extra revision remains a hard stop.
|
|
151
151
|
|
|
152
|
+
For the exact beta.12.6 active-downstream-proof update deadlock, do not apply the ordinary
|
|
153
|
+
clean-boundary update recipe and do not stash/reset/commit product work. This exception is available
|
|
154
|
+
only when a completed transitive predecessor and the active proof Step already own the complete dirty
|
|
155
|
+
set, no writer lease/transaction/Core operation exists, and the active Milestone base can be updated
|
|
156
|
+
in a separate worktree. Commit only exact `package.json`/`package-lock.json` dependency changes on
|
|
157
|
+
that base, then commit only the same dependency files on the current Task branch while leaving all
|
|
158
|
+
product bytes untouched. Install the exact beta.12.6 package and use only a fresh advertised
|
|
159
|
+
`update downstream-proof-dependency-recover`. Run its read-only preflight first and require
|
|
160
|
+
`eligible=true`, empty blockers, exact Task revision and non-null `activeDownstreamProof` binding.
|
|
161
|
+
Require recorded Task history to validate at `HEAD^` and the exact dependency-only candidate to be
|
|
162
|
+
`HEAD`; neither boundary may contain an unrelated or unregistered commit. The mutation registers
|
|
163
|
+
only the dependency HEAD. Immediately run sequential `status` then `next`;
|
|
164
|
+
continue only to the returned `task downstream-proof-recover` (including advertised writer-credential
|
|
165
|
+
recovery when required). Any unrelated dirty path, unknown history, wider candidate commit, stale
|
|
166
|
+
base, version mismatch, lease, transaction, or different route is a hard stop and never authorizes
|
|
167
|
+
manual external-state edits.
|
|
168
|
+
|
|
152
169
|
When `next` returns `milestone initial-assembly`, execution is unavailable. Follow only the
|
|
153
170
|
advertised `linked-task-assembly.commands` (`discovery start` and `discovery materialize`) until all
|
|
154
171
|
intended linked Tasks exist. The closing `milestone plan-set` option appears only after at least one
|
package/schemas/task.schema.json
CHANGED
|
@@ -78,6 +78,28 @@
|
|
|
78
78
|
"type": "array",
|
|
79
79
|
"uniqueItems": true,
|
|
80
80
|
"items": { "type": "string", "pattern": "^[a-f0-9]{40}$" }
|
|
81
|
+
},
|
|
82
|
+
"activeDownstreamProof": {
|
|
83
|
+
"type": "object",
|
|
84
|
+
"required": ["activeStepId", "planHash", "dirtyFiles", "dirtyWorktreeHash", "invalidatedStepIds"],
|
|
85
|
+
"properties": {
|
|
86
|
+
"activeStepId": { "type": "string", "pattern": "^STEP-[A-Z0-9][A-Z0-9-]{2,63}$" },
|
|
87
|
+
"planHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
88
|
+
"dirtyFiles": {
|
|
89
|
+
"type": "array",
|
|
90
|
+
"minItems": 1,
|
|
91
|
+
"uniqueItems": true,
|
|
92
|
+
"items": { "type": "string", "minLength": 1 }
|
|
93
|
+
},
|
|
94
|
+
"dirtyWorktreeHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
95
|
+
"invalidatedStepIds": {
|
|
96
|
+
"type": "array",
|
|
97
|
+
"minItems": 1,
|
|
98
|
+
"uniqueItems": true,
|
|
99
|
+
"items": { "type": "string", "pattern": "^STEP-[A-Z0-9][A-Z0-9-]{2,63}$" }
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"additionalProperties": false
|
|
81
103
|
}
|
|
82
104
|
},
|
|
83
105
|
"additionalProperties": false
|
|
@@ -200,6 +200,14 @@ def styles() -> dict[str, ParagraphStyle]:
|
|
|
200
200
|
leading=10.3,
|
|
201
201
|
textColor=TEXT,
|
|
202
202
|
),
|
|
203
|
+
"table_header": ParagraphStyle(
|
|
204
|
+
"TableHeader",
|
|
205
|
+
parent=base["BodyText"],
|
|
206
|
+
fontName="WorkflowBold",
|
|
207
|
+
fontSize=7.7,
|
|
208
|
+
leading=10.3,
|
|
209
|
+
textColor=colors.white,
|
|
210
|
+
),
|
|
203
211
|
"code": ParagraphStyle(
|
|
204
212
|
"Code",
|
|
205
213
|
parent=base["BodyText"],
|
|
@@ -316,8 +324,11 @@ def markdown_story(lines: list[str], style: dict[str, ParagraphStyle]) -> list:
|
|
|
316
324
|
column_count = max(len(row) for row in rows)
|
|
317
325
|
normalized = [row + [""] * (column_count - len(row)) for row in rows]
|
|
318
326
|
rendered = [
|
|
319
|
-
[
|
|
320
|
-
|
|
327
|
+
[
|
|
328
|
+
Paragraph(inline_markup(cell), style["table_header"] if row_index == 0 else style["small"])
|
|
329
|
+
for cell in row
|
|
330
|
+
]
|
|
331
|
+
for row_index, row in enumerate(normalized)
|
|
321
332
|
]
|
|
322
333
|
table = LongTable(rendered, colWidths=table_widths(column_count), repeatRows=1)
|
|
323
334
|
table.setStyle(TableStyle([
|