You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`contract_version`| string | MUST be `"2"`. Producers MUST emit it. |
184
+
|`contract_version`| string | MUST be `"3"`. Producers MUST emit it. |
174
185
|`status`| string enum |`success`\|`failure`\|`partial`\|`needs_input`. See [3.3](#33-status). |
175
186
|`branch`| string \| null | Branch the runtime pushed. `null` when no branch was created. The adapter only opens a PR when `branch` is set **and**`commits` is non-empty. |
176
187
|`commits`| array |`{ "sha": string, "message": string }`. MAY be empty. |
@@ -181,9 +192,9 @@ the file MAY be absent.
181
192
|`exit_reason`| string enum \| null |`null` on success; otherwise the terminal cause. See [3.4](#34-exit_reason). |
182
193
183
194
> **Drift note (supersedes `COVEN-GITHUB.md`):** the prose result envelope listed
184
-
> an `events` array. Progress/event streaming is **not** part of the v2 result
195
+
> an `events` array. Progress/event streaming is **not** part of the v3 result
185
196
> envelope — it is deferred to M2 and will travel over a separate channel. The
186
-
> v2 envelope carries terminal task state only. Producers MUST NOT rely on
197
+
> v3 envelope carries terminal task state only. Producers MUST NOT rely on
187
198
> `events` being read.
188
199
189
200
### 3.2 `review`
@@ -202,7 +213,7 @@ the intended code. It is required on every result. Non-review tasks MUST set
202
213
|`tests_run`| array | Commands run while reviewing, with `passed`, `failed`, `not_run`, or `unknown` status. |
203
214
|`no_findings_reason`| string \| null | File-backed explanation for a clean review. MAY be `null` for degraded/partial output when `evidence_status` and `limitations` explain why a substantive clean-review conclusion was not possible. |
204
215
|`limitations`| string[]| Evidence gaps, skipped checks, or other caveats. |
205
-
|`memory`| object | Memory audit report: `domains_loaded` (hosted memory domains eligible for this review, e.g. `default-branch`; empty for local runs) and `entries` (every loaded memory entry with its stable `id`, effective `trust` label after hosted caps/floors, optional `visibility`, and load `scope`). Lets the consumer audit which memory inputs could have influenced findings and cross-check `memory_refs` citations. |
216
+
|`memory`| object | Memory audit report: `domains_loaded` (hosted memory domains eligible for this review, e.g. `default-branch`; empty for local runs) and `entries` (every loaded memory entry with its stable `id`, effective `trust` label after hosted caps/floors, optional `visibility`, load `scope`, structured file-level provenance fields such as `source`, `source_ref`, `source_repo`, `source_commit`, `session_id`, and `created_by`, plus compact per-entry `provenance` strings found in durable memory content). Lets the consumer audit which memory inputs could have influenced findings and cross-check `memory_refs` citations. |
206
217
207
218
Each finding carries `severity`, `file`, optional `line`, `title`, `body`, and
208
219
optional `recommendation`. Valid severities are `info`, `low`, `medium`, `high`,
@@ -259,7 +270,7 @@ A process **killed by signal**, or one that **times out** (the adapter enforces
259
270
260
271
## 5. Security invariants
261
272
262
-
These are non-negotiable for v2:
273
+
These are non-negotiable for v3:
263
274
264
275
1. The session brief is **tokenless**. Serializing a brief MUST NOT produce an
265
276
`auth` field, a `"token"` field, or a credential-bearing `clone_url`
@@ -284,11 +295,16 @@ The contract is versioned by the single `contract_version` string, which tracks
284
295
the version.
285
296
- A change that adds a **required** field, removes a field, renames a field,
286
297
changes a type, or changes exit-code/status semantics is **breaking** and MUST
287
-
bump `contract_version` to `"2"`, update both schemas and fixtures, and ship a
288
-
migration note here.
298
+
bump `contract_version` to the next major version, update both schemas and
299
+
fixtures, and ship a migration note here.
289
300
- Consumers MUST reject a payload whose major version they do not implement,
290
301
rather than silently mis-parsing it.
291
302
303
+
Migration note for v3: `review.memory.entries[]` now includes structured
304
+
file-level provenance fields and compact per-entry provenance strings alongside
305
+
memory ids and effective trust labels. Consumers that validate result envelopes
306
+
must accept the new required nullable provenance fields and `provenance` arrays.
0 commit comments