codex-workflow-v2 2.0.0-beta.13.3 → 2.0.0-beta.13.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 +4 -1
- package/dist/reviewer-runtime-build.json +23 -11
- package/dist/src/alpha6/plan-risk.d.ts +1 -0
- package/dist/src/alpha6/plan-risk.js +9 -6
- package/dist/src/alpha6/plan-risk.js.map +1 -1
- package/dist/src/alpha6/preexecution-replan.d.ts +38 -0
- package/dist/src/alpha6/preexecution-replan.js +130 -0
- package/dist/src/alpha6/preexecution-replan.js.map +1 -0
- package/dist/src/alpha6/remediation.d.ts +4 -3
- package/dist/src/alpha6/remediation.js +147 -21
- package/dist/src/alpha6/remediation.js.map +1 -1
- package/dist/src/alpha6/root-cause-replan-carryover.d.ts +17 -0
- package/dist/src/alpha6/root-cause-replan-carryover.js +372 -0
- package/dist/src/alpha6/root-cause-replan-carryover.js.map +1 -0
- package/dist/src/cli-actions.d.ts +2 -2
- package/dist/src/cli-actions.js +2 -0
- package/dist/src/cli-actions.js.map +1 -1
- package/dist/src/cli.js +51 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +35 -0
- package/dist/src/dependency-provenance.d.ts +3 -2
- package/dist/src/dependency-provenance.js +33 -2
- package/dist/src/dependency-provenance.js.map +1 -1
- package/dist/src/domain/plan-semantics.d.ts +11 -0
- package/dist/src/domain/plan-semantics.js +49 -0
- package/dist/src/domain/plan-semantics.js.map +1 -0
- package/dist/src/gateway-handshake.js +1 -0
- package/dist/src/gateway-handshake.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 +21 -1
- package/dist/src/workflow.js +793 -89
- package/dist/src/workflow.js.map +1 -1
- 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 +1 -1
- package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +2 -2
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +2 -2
- package/docs/release.md +72 -0
- package/package.json +1 -1
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +72 -2
- package/schemas/preexecution-replan-event.schema.json +45 -0
- package/schemas/task.schema.json +55 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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.
|
|
466
|
+
- handshake подтверждает `packageVersion=2.0.0-beta.13.5`, protocol 2, state schema 2 и beta.13
|
|
467
467
|
capabilities;
|
|
468
468
|
- routine observation начинается с компактного `status`; `status --full` запрашивается только для
|
|
469
469
|
расследования, которому действительно нужна полная historical projection;
|
|
@@ -57,7 +57,7 @@ AGENTS.md
|
|
|
57
57
|
-> doctor только как дополнительная диагностика
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
Handshake beta.13.
|
|
60
|
+
Handshake beta.13.5 должен сообщать `packageVersion=2.0.0-beta.13.5`, `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,
|
|
@@ -482,7 +482,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
|
|
|
482
482
|
# 14. Итоговый checklist пользователя
|
|
483
483
|
|
|
484
484
|
- beta.13.1 exact package и новый bundled gateway установлены; handshake показывает
|
|
485
|
-
`packageVersion=2.0.0-beta.13.
|
|
485
|
+
`packageVersion=2.0.0-beta.13.5`, protocol/state schema `2/2` и beta.13 capabilities;
|
|
486
486
|
- новый Coordinator chat не является fork старого Milestone;
|
|
487
487
|
- bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
|
|
488
488
|
- Discovery не materialized при blocking unknowns;
|
|
@@ -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.
|
|
18
|
+
| npm package | `codex-workflow-v2@2.0.0-beta.13.5` |
|
|
19
19
|
| protocolVersion | 2 |
|
|
20
20
|
| stateSchemaVersion | 2 |
|
|
21
21
|
| lifecycle epoch | 2 |
|
|
@@ -767,7 +767,7 @@ dirty update.
|
|
|
767
767
|
observed-route matrix/compact-status/reviewer-runtime tests, legacy compatibility regressions,
|
|
768
768
|
`npm run test:signal-t10-check-support-e2e`, `npm run test:signal-remediation-e2e`,
|
|
769
769
|
`npm run pack:check`, `npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
|
|
770
|
-
`npm run docs:pdf:check` и `npm run release:check` с exact `v2.0.0-beta.13.
|
|
770
|
+
`npm run docs:pdf:check` и `npm run release:check` с exact `v2.0.0-beta.13.5` tag binding и append-only
|
|
771
771
|
real-agent lifecycle log. Candidate проверяется из clean source checkout; missing built module не должен
|
|
772
772
|
превращаться в stack trace, а обязан быть детерминированно собран или диагностирован release gate.
|
|
773
773
|
|
package/docs/release.md
CHANGED
|
@@ -4,6 +4,78 @@ The npm package is `codex-workflow-v2` with public visibility. Consumers must pi
|
|
|
4
4
|
an exact version. Stable compatibility covers the latest minor release of the current
|
|
5
5
|
major only; older minors are unsupported unless a release note explicitly says otherwise.
|
|
6
6
|
|
|
7
|
+
## beta.13.6 candidate: preserve work across root-cause replan
|
|
8
|
+
|
|
9
|
+
A repeated mechanical failure can legitimately yield the same Task to a replacement
|
|
10
|
+
Plan while preserving uncommitted implementation. beta.13.5 authorizes that Plan but
|
|
11
|
+
then rejects its planned Step because the checkout is dirty. Reaching planning or
|
|
12
|
+
reauthorization therefore does not prove recovery.
|
|
13
|
+
|
|
14
|
+
Acceptance for this candidate must exercise the complete repeated mechanical failure,
|
|
15
|
+
automatic C1 yield, semantic replacement Plan, independent PRA, authorization, and
|
|
16
|
+
same-Worker execution sequence with the original dirty bytes. The carryover assessment
|
|
17
|
+
must bind the source remediation cycle, verified historical and current Plans, current
|
|
18
|
+
PRA and authorization, completed evidence, HEAD, file set and content hash. Every carried
|
|
19
|
+
path must already belong to the replacement Step and remain outside forbidden scope;
|
|
20
|
+
carryover never expands scope or forgives unrelated work.
|
|
21
|
+
|
|
22
|
+
Navigation and execution must use the same assessment. Changed bytes, paths, HEAD,
|
|
23
|
+
Plan artifacts, audit/authorization evidence or ambiguous source history must fail
|
|
24
|
+
closed before execution. Tests must continue beyond successful start through checks,
|
|
25
|
+
Core commit and strict review, and reject each material binding mismatch.
|
|
26
|
+
|
|
27
|
+
The stranded-source update must additionally prove a read-only compatibility preflight,
|
|
28
|
+
no writer lease or pending Core operation, exact coherent source/target versions,
|
|
29
|
+
dependency-only Task and Milestone-base commits, registration of the Task dependency
|
|
30
|
+
commit after verification of the base transport, and unchanged product bytes. It must preserve the original Task and Worker and must not
|
|
31
|
+
rely on manual product commits, stash/reset, installed-code edits or state-file edits.
|
|
32
|
+
|
|
33
|
+
All ordinary release gates below apply. The user's one-time beta.13.5 CI-based release
|
|
34
|
+
exception is consumed and is not evidence or an exception for this candidate.
|
|
35
|
+
|
|
36
|
+
## beta.13.5 preventive Plan correction before execution
|
|
37
|
+
|
|
38
|
+
A newly discovered implementation Plan defect can require changing unfinished scope
|
|
39
|
+
before its next Step runs. The preventive route withdraws the current execution
|
|
40
|
+
authorization under an independent blocking Plan Risk Audit, then requires a corrected
|
|
41
|
+
Plan, fresh independent audit and ordinary execution authorization. It must preserve
|
|
42
|
+
the same Task, completed Step definitions and evidence, requirements, acceptance,
|
|
43
|
+
review history and grants. It must not manufacture a failed run to unlock planning.
|
|
44
|
+
|
|
45
|
+
Initial eligibility is deliberately limited to a coherent, clean, idle `ready` Task
|
|
46
|
+
with no C1 ownership or writer lease. Stale bindings, existing ownership, incomplete
|
|
47
|
+
review, unexpected Git history and damaged state must fail closed. Regression gates
|
|
48
|
+
must prove authority withdrawal and actual same-Task continuation, plus rejection of
|
|
49
|
+
attempts to change the objective, discard completed evidence or weaken guarded scope.
|
|
50
|
+
|
|
51
|
+
Replacement Plan publication commits Task state, the current and immutable Plan artifacts,
|
|
52
|
+
and its independent audit atomically. Pending correction blocks C1 handoff and dependency
|
|
53
|
+
transport until the corrected Plan can be authorized. Proof bindings retain each Step,
|
|
54
|
+
failure mode and evidence association; revised proof prose requires an independent audit
|
|
55
|
+
with an explicit rationale. Core does not determine whether natural-language proof claims
|
|
56
|
+
are semantically stronger.
|
|
57
|
+
|
|
58
|
+
External sealed-review CLI help specifies the complete envelope, including its nested
|
|
59
|
+
review. Lifecycle validation admits one bounded expired-credential recovery between a
|
|
60
|
+
review-input syntax refusal and retry, with unchanged sealed evidence and fresh sequential
|
|
61
|
+
status/next bindings; unrelated or unbound mutations remain invalid.
|
|
62
|
+
|
|
63
|
+
## beta.13.4 candidate: continuation after accepted corrective Plan
|
|
64
|
+
|
|
65
|
+
This correction is included in beta.13.5; beta.13.4 was not published separately.
|
|
66
|
+
|
|
67
|
+
The beta.13.3 first-conflict recovery stopped too early: after a replacement Plan
|
|
68
|
+
was accepted and authorized, navigation still applied the old Plan's conflict to
|
|
69
|
+
the now-planned Step. Release acceptance for this correction must exercise the
|
|
70
|
+
complete same-Task sequence through fresh Plan Risk Audit, execution authorization,
|
|
71
|
+
the existing Worker claim, actual Step execution, and another failed review.
|
|
72
|
+
Reaching `task plan-set` alone is not sufficient evidence.
|
|
73
|
+
|
|
74
|
+
An accepted semantic replacement must be distinguished from a Knowledge-only
|
|
75
|
+
rebind using verified Plan artifacts and audit/review bindings. Historical failures
|
|
76
|
+
and their global ordinals remain append-only. A missing or damaged artifact must
|
|
77
|
+
not silently acknowledge a conflict, and a context refresh must not reopen execution.
|
|
78
|
+
|
|
7
79
|
## beta.13.3 explicit Plan conflict recovery
|
|
8
80
|
|
|
9
81
|
A first independently recorded reviewer `route=replan` with a validated Plan conflict
|
package/package.json
CHANGED
|
@@ -92,6 +92,66 @@ active writer token when the C1 contract requires it. The recovery records only
|
|
|
92
92
|
`task run` merely to manufacture the second failure, and never invoke this recovery for a generic
|
|
93
93
|
test failure, a writable manifest, or unconfined changes.
|
|
94
94
|
|
|
95
|
+
When fresh `next` includes `preExecutionReplanOption.state=eligible`, an independent Plan auditor
|
|
96
|
+
may stop a `ready` Task before its next Step because the current implementation Plan is obstructed.
|
|
97
|
+
Use only `task preexecution-replan` with the exact advertised Task revision, Brief hash, Plan hash,
|
|
98
|
+
current Plan Risk Audit event hash, and HEAD. The audit file must be a genuine independent
|
|
99
|
+
`stop-escalate` replacement audit: its planner remains the original planner, its auditor is the
|
|
100
|
+
transition actor, and it retains current guarded categories, review requirements, failure modes,
|
|
101
|
+
evidence commands, and proof bindings while recording the obstruction. This transition requires a
|
|
102
|
+
clean checkout with no Step in progress, C1 posture, or writer lease. It appends immutable audit and
|
|
103
|
+
provenance records, supersedes only current execution authorization, preserves completed Step
|
|
104
|
+
authority and existing delegation scope, and does not require a new approval. After success, run
|
|
105
|
+
sequential `status` then `next`; Core must advertise ordinary `task plan-set`, not audited-remediation
|
|
106
|
+
topology. Submit a semantically changed Plan with the exact Task objective, requirements, and
|
|
107
|
+
acceptance, preserve completed Steps and prior safety boundaries, attach a fresh Plan Risk Audit,
|
|
108
|
+
then obtain fresh execution authorization. Never append an approved audit to the unchanged Plan,
|
|
109
|
+
rebind context around the marker, invent a failure/corrective cause, or invoke the command when the
|
|
110
|
+
option is absent or blocked.
|
|
111
|
+
|
|
112
|
+
For this route, Core treats each `(Step ID, failureMode, evidence)` tuple as the immutable proof
|
|
113
|
+
binding. It does not claim to understand whether revised `counterexample` or `expectedResult` prose
|
|
114
|
+
is semantically stronger. Changing that prose therefore requires an independent
|
|
115
|
+
`approved-with-rationale` audit, a changed substantive summary, and an explicit rationale; the
|
|
116
|
+
earlier audit remains immutable history for human review.
|
|
117
|
+
|
|
118
|
+
When the exact beta.13.6 package reports validated root-cause corrective-replan dirty
|
|
119
|
+
carryover, the retained work belongs to a previously failed execution of the same Task.
|
|
120
|
+
Use the fresh advertised `task run` only with the current writer credential and exact
|
|
121
|
+
Task/Step bindings. Core must verify the repeated mechanical cause, historical Plan,
|
|
122
|
+
replacement Plan and independent PRA, authorization, completed evidence, HEAD, dirty
|
|
123
|
+
paths and content hash. Every retained path must already be allowed by the new Step
|
|
124
|
+
and remain outside forbidden scope. A changed binding or blocked assessment is a hard
|
|
125
|
+
stop; never clean, stash, reset, manually commit, or edit state to make it eligible.
|
|
126
|
+
|
|
127
|
+
The beta.13.6 corrective-carryover update compatibility profile permits its exact
|
|
128
|
+
external runner to execute only the read-only
|
|
129
|
+
`update corrective-carryover-preflight --id <TASK-ID>` against a repository coherently
|
|
130
|
+
pinned to beta.13.5. This is an explicit compatibility inspection, not permission to
|
|
131
|
+
run ordinary transitions with an external or unpublished package. An active writer
|
|
132
|
+
lease blocks transport. Wait for natural expiry. The target compatibility preflight
|
|
133
|
+
may then return only an exact source-package stale-lease repair, after validating the
|
|
134
|
+
sole expired Task lease, its original claimant, Task/Plan/PRA/authorization/HEAD and
|
|
135
|
+
dirty-work bindings. This narrowly scoped preflight action is the authority for that
|
|
136
|
+
source-package repair; do not describe it as an action advertised by the old source
|
|
137
|
+
`next`. An active lease, another lease or any other blocker forbids the repair and
|
|
138
|
+
transport. Never force-release a live lease. Preserve the original C1 claimant and
|
|
139
|
+
hash-bound ownership event, log the preflight and exact repair, then run sequential
|
|
140
|
+
source `status` and `next` and repeat the target preflight.
|
|
141
|
+
|
|
142
|
+
After repair, require a fresh preflight with `eligible=true`, no blockers, and exact
|
|
143
|
+
Task revision, source HEAD, replacement Plan/PRA/authorization, dirty paths/hash and
|
|
144
|
+
original C1 ownership. Transport only the exact target dependency in `package.json`
|
|
145
|
+
and `package-lock.json`: one commit on the Milestone base in a separate worktree and
|
|
146
|
+
one at Task HEAD, leaving every product byte unchanged. Install the repository-local
|
|
147
|
+
target, then follow fresh navigation through the existing
|
|
148
|
+
`update dependency-provenance-recover` only when it advertises the matching carryover
|
|
149
|
+
binding. Use current bounded credential recovery for the original Worker, and obtain
|
|
150
|
+
fresh validated carryover before `task run`. Unknown history, wider commits, version
|
|
151
|
+
misalignment, changed product bytes, different ownership, pending operations or missing
|
|
152
|
+
bindings stop the update. This profile creates no scope or approval authority and does
|
|
153
|
+
not authorize editing the installed package or Workflow state files.
|
|
154
|
+
|
|
95
155
|
When fresh `next` advertises `task downstream-proof-recover`, the active proof Step has produced
|
|
96
156
|
uncommitted files inside its own `allowedWrites` and has also exposed required changes owned by one
|
|
97
157
|
or more completed transitive predecessor Steps. Do not invoke `task step-complete`: its scope is
|
|
@@ -586,7 +646,13 @@ When `next.strictStepReview.recommendedMode` is `external-sealed`, do not launch
|
|
|
586
646
|
reviewer from inside a Codex App sandbox. Run the advertised read-only `task step-review-packet`,
|
|
587
647
|
create a separate user-visible reviewer chat for that exact packet, and require one closed
|
|
588
648
|
`ReviewInput` JSON result bound to its reviewed commit. The reviewer must not modify repository or
|
|
589
|
-
Workflow state.
|
|
649
|
+
Workflow state. The `--file` passed to `task step-review-record` must be the full
|
|
650
|
+
`ExternalStrictStepReviewInput` envelope: top-level `protocol`, `packetHash`,
|
|
651
|
+
`repositorySealHash`, `reviewerThreadId`, and `reviewMode` (`ordinary` or `security`), plus the
|
|
652
|
+
nested `review` object containing `status`, `reviewer`, `summary`, and `findings`. Copy both hashes
|
|
653
|
+
and the mode from the packet; do not flatten `review`, and do not pass `--review-mode` to the record
|
|
654
|
+
command because it reads the mode from the JSON file. Run `task step-review-record --help` for a
|
|
655
|
+
complete minimal example. Then run only the advertised `task step-review-record` with the unchanged packet
|
|
590
656
|
and repository-seal hashes, the separate reviewer thread ID, the lifecycle actor from `next`, and
|
|
591
657
|
the active writer token when required. Never author the independent review in the Worker or
|
|
592
658
|
Delivery Coordinator chat, never alter the packet, and never treat an unverified local reviewer
|
|
@@ -597,7 +663,11 @@ When `next.strictTaskReview.recommendedMode` is `external-sealed`, apply the sam
|
|
|
597
663
|
the final submitted-Task review. Run the advertised read-only `task review-packet`, send the exact
|
|
598
664
|
packet to a separate user-visible Independent Reviewer chat, and accept only a closed `ReviewInput`
|
|
599
665
|
bound to the unchanged packet and repository-seal hashes. Record it only through the advertised
|
|
600
|
-
`task review-sealed-record
|
|
666
|
+
`task review-sealed-record`. Its `--file` must be the analogous full
|
|
667
|
+
`ExternalStrictTaskReviewInput` envelope using protocol
|
|
668
|
+
`codex-workflow-external-strict-task-review-v1`, the packet and repository-seal hashes,
|
|
669
|
+
`reviewerThreadId`, top-level `reviewMode`, and nested `review`; its `--help` contains a minimal
|
|
670
|
+
example. Use the lifecycle actor from `next` and the active writer token when
|
|
601
671
|
required. Do not call `task review-launch` from inside a Codex App sandbox, do not use the Worker or
|
|
602
672
|
Delivery Coordinator as reviewer, and discard the result if a fresh packet changes either hash.
|
|
603
673
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://codex-workflow.local/schemas/preexecution-replan-event.schema.json",
|
|
4
|
+
"title": "Codex Workflow V2 Pre-execution Replan Event",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"eventId", "taskId", "sourceTaskRevision", "resultTaskRevision", "briefHash",
|
|
9
|
+
"sourcePlanHash", "knowledgeMapRevision", "knowledgeMapHash",
|
|
10
|
+
"sourcePlanRiskAuditEventId", "sourcePlanRiskAuditEventHash",
|
|
11
|
+
"obstructionPlanRiskAuditEventId", "obstructionPlanRiskAuditEventHash",
|
|
12
|
+
"sourceExecutionAuthorizationHash", "sourceHeadCommit", "completedStepIds",
|
|
13
|
+
"completedStepsHash", "actor", "reason", "recordedAt", "previousEventHash", "eventHash"
|
|
14
|
+
],
|
|
15
|
+
"properties": {
|
|
16
|
+
"eventId": { "type": "string", "pattern": "^PER-[0-9A-HJKMNP-TV-Z]{26}$" },
|
|
17
|
+
"taskId": { "type": "string", "pattern": "^TASK-[0-9A-HJKMNP-TV-Z]{26}$" },
|
|
18
|
+
"sourceTaskRevision": { "type": "integer", "minimum": 1 },
|
|
19
|
+
"resultTaskRevision": { "type": "integer", "minimum": 2 },
|
|
20
|
+
"briefHash": { "$ref": "#/$defs/hash64" },
|
|
21
|
+
"sourcePlanHash": { "$ref": "#/$defs/hash64" },
|
|
22
|
+
"knowledgeMapRevision": { "type": "integer", "minimum": 1 },
|
|
23
|
+
"knowledgeMapHash": { "$ref": "#/$defs/hash64" },
|
|
24
|
+
"sourcePlanRiskAuditEventId": { "type": "string", "pattern": "^PRA-[0-9A-HJKMNP-TV-Z]{26}$" },
|
|
25
|
+
"sourcePlanRiskAuditEventHash": { "$ref": "#/$defs/hash64" },
|
|
26
|
+
"obstructionPlanRiskAuditEventId": { "type": "string", "pattern": "^PRA-[0-9A-HJKMNP-TV-Z]{26}$" },
|
|
27
|
+
"obstructionPlanRiskAuditEventHash": { "$ref": "#/$defs/hash64" },
|
|
28
|
+
"sourceExecutionAuthorizationHash": { "$ref": "#/$defs/hash64" },
|
|
29
|
+
"sourceHeadCommit": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
|
|
30
|
+
"completedStepIds": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"uniqueItems": true,
|
|
33
|
+
"items": { "type": "string", "pattern": "^STEP-[0-9]{3}(?:-[A-Z0-9-]+)?$" }
|
|
34
|
+
},
|
|
35
|
+
"completedStepsHash": { "$ref": "#/$defs/hash64" },
|
|
36
|
+
"actor": { "type": "string", "minLength": 1 },
|
|
37
|
+
"reason": { "type": "string", "minLength": 1, "maxLength": 2048 },
|
|
38
|
+
"recordedAt": { "type": "string", "format": "date-time" },
|
|
39
|
+
"previousEventHash": { "anyOf": [{ "$ref": "#/$defs/hash64" }, { "type": "null" }] },
|
|
40
|
+
"eventHash": { "$ref": "#/$defs/hash64" }
|
|
41
|
+
},
|
|
42
|
+
"$defs": {
|
|
43
|
+
"hash64": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
|
|
44
|
+
}
|
|
45
|
+
}
|
package/schemas/task.schema.json
CHANGED
|
@@ -215,6 +215,61 @@
|
|
|
215
215
|
}
|
|
216
216
|
},
|
|
217
217
|
"additionalProperties": false
|
|
218
|
+
},
|
|
219
|
+
"rootCauseReplan": {
|
|
220
|
+
"type": "object",
|
|
221
|
+
"required": [
|
|
222
|
+
"kind", "taskId", "sourceTaskRevision", "stepId", "sourcePlanHash",
|
|
223
|
+
"sourcePlanSemanticHash", "replacementPlanHash", "replacementPlanSemanticHash",
|
|
224
|
+
"sourceHeadCommit", "remediationEvents", "terminalRemediationEventId",
|
|
225
|
+
"terminalRemediationEventHash", "terminalExecutionTaskRevision",
|
|
226
|
+
"repeatedCauseFingerprint", "correctiveYieldEventId", "correctiveYieldEventHash",
|
|
227
|
+
"dirtyFiles", "dirtyWorktreeHash", "replacementPlanRiskAuditEventId",
|
|
228
|
+
"replacementPlanRiskAuditEventHash", "executionAuthorizationHash",
|
|
229
|
+
"executionAuthorizationHead", "completedStepsHash", "c1ClaimEventId",
|
|
230
|
+
"c1ClaimEventHash", "claimant", "compatibilityHash"
|
|
231
|
+
],
|
|
232
|
+
"properties": {
|
|
233
|
+
"kind": { "const": "root-cause-corrective-replan-dirty-carryover" },
|
|
234
|
+
"taskId": { "type": "string", "pattern": "^TASK-[0-9A-HJKMNP-TV-Z]{26}$" },
|
|
235
|
+
"sourceTaskRevision": { "type": "integer", "minimum": 1 },
|
|
236
|
+
"stepId": { "type": "string", "pattern": "^STEP-[A-Z0-9][A-Z0-9-]{2,63}$" },
|
|
237
|
+
"sourcePlanHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
238
|
+
"sourcePlanSemanticHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
239
|
+
"replacementPlanHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
240
|
+
"replacementPlanSemanticHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
241
|
+
"sourceHeadCommit": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
|
|
242
|
+
"remediationEvents": {
|
|
243
|
+
"type": "array", "minItems": 1,
|
|
244
|
+
"items": {
|
|
245
|
+
"type": "object", "required": ["eventId", "eventHash", "attemptOrdinal"],
|
|
246
|
+
"properties": {
|
|
247
|
+
"eventId": { "type": "string", "pattern": "^RME-[0-9A-HJKMNP-TV-Z]{26}$" },
|
|
248
|
+
"eventHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
249
|
+
"attemptOrdinal": { "type": "integer", "minimum": 1 }
|
|
250
|
+
},
|
|
251
|
+
"additionalProperties": false
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
"terminalRemediationEventId": { "type": "string", "pattern": "^RME-[0-9A-HJKMNP-TV-Z]{26}$" },
|
|
255
|
+
"terminalRemediationEventHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
256
|
+
"terminalExecutionTaskRevision": { "type": "integer", "minimum": 1 },
|
|
257
|
+
"repeatedCauseFingerprint": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
258
|
+
"correctiveYieldEventId": { "type": "string", "pattern": "^HOF-[a-f0-9]{64}$" },
|
|
259
|
+
"correctiveYieldEventHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
260
|
+
"dirtyFiles": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
|
|
261
|
+
"dirtyWorktreeHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
262
|
+
"replacementPlanRiskAuditEventId": { "type": "string", "pattern": "^PRA-[0-9A-HJKMNP-TV-Z]{26}$" },
|
|
263
|
+
"replacementPlanRiskAuditEventHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
264
|
+
"executionAuthorizationHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
265
|
+
"executionAuthorizationHead": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
|
|
266
|
+
"completedStepsHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
267
|
+
"c1ClaimEventId": { "type": "string", "pattern": "^HOF-[0-9A-HJKMNP-TV-Z]{26}$" },
|
|
268
|
+
"c1ClaimEventHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
269
|
+
"claimant": { "type": "string", "minLength": 1 },
|
|
270
|
+
"compatibilityHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
|
|
271
|
+
},
|
|
272
|
+
"additionalProperties": false
|
|
218
273
|
}
|
|
219
274
|
},
|
|
220
275
|
"additionalProperties": false
|