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
Browse filesBrowse the repository at this point in the historyBrowse files
authored
feat(hosted): close the hosted review hardening gaps from the #119 track (#134)
Scope validation, provenance, sync lifecycle, conflict gating, and
citation enforcement follow-ups to the hosted review stack landed in
PR #132.
- Validate hosted scope components everywhere a hosted namespace is
derived (memory paths, transcripts, team sync, settings sync); empty
components fail closed instead of collapsing tenant/repo isolation.
- Verify caller-claimed local project ids against the identity derived
from the origin remote; a missing or unparseable remote fails closed.
- Persist source/session provenance on durable auto-extracted memories
and floor hosted trust for entries that carry no provenance.
- Report loaded memory domains and per-entry trust/visibility/scope in
ReviewResult and the v2 result envelope (schema, example, and docs).
- Propagate deletion/redaction tombstones through team-memory sync;
never resurrect locally deleted or tombstoned files on pull.
- Block keys with unresolved pull conflicts from sync until the
persisted conflict record is resolved; exercise the RemoteOnly path.
- Inject loaded memory ids into the live /review prompt and validate
the returned citations against the loaded set.
closes#98closes#99closes#103closes#104closes#106closes#107closes#109closes#110closes#111closes#112closes#119
Co-authored-by: Timothy Wayne Gregg <5861166+romgenie@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy file name to clipboardExpand all lines: docs/headless-contract.md
+13-1Lines changed: 13 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -149,7 +149,18 @@ the file MAY be absent.
149
149
"findings": [],
150
150
"tests_run": [],
151
151
"no_findings_reason": "Reviewed the supplied PR file and found no blocking issues.",
152
-
"limitations": []
152
+
"limitations": [],
153
+
"memory": {
154
+
"domains_loaded": ["default-branch"],
155
+
"entries": [
156
+
{
157
+
"id": "mem_review_policy",
158
+
"trust": "maintainer-approved",
159
+
"visibility": "public_review",
160
+
"scope": "managed"
161
+
}
162
+
]
163
+
}
153
164
},
154
165
"exit_reason": null
155
166
}
@@ -191,6 +202,7 @@ the intended code. It is required on every result. Non-review tasks MUST set
191
202
|`tests_run`| array | Commands run while reviewing, with `passed`, `failed`, `not_run`, or `unknown` status. |
192
203
|`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. |
193
204
|`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. |
194
206
195
207
Each finding carries `severity`, `file`, optional `line`, `title`, `body`, and
196
208
optional `recommendation`. Valid severities are `info`, `low`, `medium`, `high`,
0 commit comments