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.
Files changed (34) hide show
  1. package/README.md +17 -3
  2. package/dist/src/alpha6/downstream-proof.d.ts +6 -1
  3. package/dist/src/alpha6/downstream-proof.js +50 -3
  4. package/dist/src/alpha6/downstream-proof.js.map +1 -1
  5. package/dist/src/cli.js +23 -1
  6. package/dist/src/cli.js.map +1 -1
  7. package/dist/src/contracts.d.ts +15 -1
  8. package/dist/src/dependency-provenance.d.ts +8 -1
  9. package/dist/src/dependency-provenance.js +36 -5
  10. package/dist/src/dependency-provenance.js.map +1 -1
  11. package/dist/src/git.d.ts +1 -1
  12. package/dist/src/git.js +4 -2
  13. package/dist/src/git.js.map +1 -1
  14. package/dist/src/version.d.ts +1 -1
  15. package/dist/src/version.js +1 -1
  16. package/dist/src/workflow.d.ts +3 -0
  17. package/dist/src/workflow.js +72 -5
  18. package/dist/src/workflow.js.map +1 -1
  19. package/docs/development-flow.md +7 -0
  20. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  21. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  22. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  23. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +13 -6
  24. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +16 -7
  25. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +20 -11
  26. package/docs/release.md +5 -1
  27. package/docs/updating-existing-project.md +37 -2
  28. package/docs/validation-report.md +87 -77
  29. package/package.json +1 -1
  30. package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +1 -1
  31. package/plugins/codex-workflow-gateway/references/protocol.md +12 -1
  32. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +18 -1
  33. package/schemas/task.schema.json +22 -0
  34. 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.5 `next` advertises `task stop-override-prepare`, the route is limited to the exact
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
@@ -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
- [Paragraph(inline_markup(cell), style["small"]) for cell in row]
320
- for row in normalized
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([