Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
81aa5f7
feat(review): add ResultIncidentClass extraction-failure type
MataM15 Jul 20, 2026
e034192
feat(review): validate --class fail-closed before incident preservation
MataM15 Jul 20, 2026
333a9b0
feat(review): persist incident class durably in preserved artifact
MataM15 Jul 20, 2026
b933056
feat(review): split conflated empty/nested-envelope reviewer throw
MataM15 Jul 20, 2026
846e48a
test(review): pin split empty/nested-envelope reviewer messages
MataM15 Jul 20, 2026
2038250
test(review): cover duplicate and interrupted incident-recovery scena…
MataM15 Jul 20, 2026
d79afcb
fix(review): resolve class-suffixed incident artifacts in dispose-result
MataM15 Jul 20, 2026
f8abcde
feat(review): add durable pre-launch reviewer-result acquisition
MataM15 Jul 20, 2026
557162d
feat(review): require acquisition binding on capture, preserve, and d…
MataM15 Jul 20, 2026
fcc5641
feat(review): acquire before launch in the review-result plugin
MataM15 Jul 20, 2026
2bbcb23
fix(review): require --acquisition upfront on capture-result
MataM15 Jul 21, 2026
9f9e2d8
test(review): acquire the slot before exercising empty/nested payload…
MataM15 Jul 21, 2026
362c272
fix(review): recover acquire-result ID after a broken stdout handoff
MataM15 Jul 21, 2026
8337a48
chore: merge main into pr-1550
Alan-TheGentleman Jul 21, 2026
6f3cb68
feat(review): harden provider artifact lifecycle
Alan-TheGentleman Jul 21, 2026
bd34d8c
fix(review): close provider artifact validation gaps
Alan-TheGentleman Jul 21, 2026
1f9af71
fix(review): parse repository path references safely
Alan-TheGentleman Jul 22, 2026
bfdffbc
chore: merge main into pr-1550
Alan-TheGentleman Jul 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,290 @@
{
"schema": "gentle-ai.review-integration.capabilities/v1.3",
"contract": "gentle-ai.review-integration/v1",
"protocol": {
"major": 1,
"minor": 3
},
"package": {
"name": "gentle-ai",
"version": "2.1.7-test",
"release_channel": "prerelease"
},
"build": {
"id": "sha256:444a9f0608eb22c4697fd2092f3afcfab040c0918343e7e04087730fd33fd5e1",
"go_version": "go1.25.10",
"module_version": "v2.1.7",
"vcs": "git",
"vcs_revision": "0123456789abcdef0123456789abcdef01234567",
"vcs_time": "2026-07-15T18:00:00Z",
"vcs_modified": "false"
},
"executable": {
"sha256": "sha256:dcc846103b16d365eaeeb9d7f289c23fc4f2897f23def1cb3fe7f05557b64705",
"evidence": "self-reported",
"verification": "compare-with-published-manifest"
},
"operations": [
"review.bind_sdd",
"review.capabilities",
"review.finalize",
"review.start",
"review.status",
"review.validate"
],
"gates": [
"post-apply",
"pre-commit",
"pre-push",
"pre-pr",
"release"
],
"projections": [
"staged",
"workspace"
],
"schemas": [
"gentle-ai.review-admitted-result/v1",
"gentle-ai.review-artifact-subject/v1",
"gentle-ai.review-authority-status/v1",
"gentle-ai.review-gate-request/v1",
"gentle-ai.review-integration.capabilities/v1.3",
"gentle-ai.review-integration.failure/v1",
"gentle-ai.review-integration.operation/v1",
"gentle-ai.review-integration.projection/v1",
"gentle-ai.review-integration.start/v2",
"gentle-ai.review-integration.status/v2",
"gentle-ai.review-receipt/v1",
"gentle-ai.review-receipt/v2",
"gentle-ai.review-result-artifact/v2",
"gentle-ai.review-targeted-validation-request/v1",
"https://gentle-ai.dev/schema/review/refuter/v1",
"https://gentle-ai.dev/schema/review/reviewer/v1",
"https://gentle-ai.dev/schema/review/validator/v1"
],
"features": {
"mandatory": [
{
"name": "compact_v2_authority",
"supported": true,
"requires": []
},
{
"name": "exact_receipt_replay",
"supported": true,
"requires": [
"compact_v2_authority"
]
},
{
"name": "five_delivery_gates",
"supported": true,
"requires": [
"compact_v2_authority"
]
},
{
"name": "immutable_snapshot",
"supported": true,
"requires": []
},
{
"name": "legacy_v1_target_scoped_read_only",
"supported": true,
"requires": [
"target_scoped_status"
]
},
{
"name": "repository_independent_capabilities",
"supported": true,
"requires": []
},
{
"name": "restart_safe_projection",
"supported": true,
"requires": [
"target_scoped_status"
]
},
{
"name": "sdd_receipt_binding",
"supported": true,
"requires": [
"compact_v2_authority"
]
},
{
"name": "target_scoped_status",
"supported": true,
"requires": [
"repository_independent_capabilities"
]
},
{
"name": "uniform_failure_envelope",
"supported": true,
"requires": [
"repository_independent_capabilities"
]
}
],
"optional": [
{
"name": "base_ref_workspace_overlay",
"supported": true,
"requires": [
"immutable_snapshot",
"restart_safe_projection"
]
},
{
"name": "bounded_process_waits",
"supported": true,
"requires": [
"uniform_failure_envelope"
]
},
{
"name": "exact_gate_receipt_discovery",
"supported": true,
"requires": [
"five_delivery_gates"
]
},
{
"name": "native_frozen_candidate_context",
"supported": true,
"requires": [
"immutable_snapshot"
]
},
{
"name": "native_low_risk_verification",
"supported": true,
"requires": [
"compact_v2_authority"
]
},
{
"name": "native_next_transition",
"supported": true,
"requires": [
"target_scoped_status"
]
},
{
"name": "opaque_repository_context",
"supported": true,
"requires": [
"compact_v2_authority",
"native_next_transition"
]
},
{
"name": "provider_artifact_admission",
"supported": true,
"requires": [
"compact_v2_authority",
"native_frozen_candidate_context",
"opaque_repository_context"
]
},
{
"name": "provider_targeted_validation_request",
"supported": true,
"requires": [
"compact_v2_authority",
"native_next_transition"
]
},
{
"name": "recovered_correction_evidence",
"supported": true,
"requires": [
"compact_v2_authority",
"provider_targeted_validation_request"
]
},
{
"name": "risk_reasons",
"supported": true,
"requires": [
"repository_independent_capabilities"
]
},
{
"name": "scope_change_diagnostics",
"supported": true,
"requires": [
"uniform_failure_envelope"
]
},
{
"name": "validating_result_reopen",
"supported": true,
"requires": [
"compact_v2_authority",
"provider_artifact_admission"
]
}
]
},
"bootstrap": {
"command": "gentle-ai review status --cwd \u003crepo\u003e --contract gentle-ai.review-integration/v1 --next-transition",
"target_selector_variants": [
{
"target_type": "staged",
"arguments": [
"--projection",
"staged"
]
},
{
"target_type": "base_ref",
"arguments": [
"--base-ref",
"\u003cref\u003e"
]
},
{
"target_type": "workspace_overlay_base_ref",
"arguments": [
"--workspace-overlay",
"--base-ref",
"\u003cref\u003e"
]
},
{
"target_type": "workspace_overlay_base_tree",
"arguments": [
"--workspace-overlay",
"--base-tree",
"\u003ctree\u003e"
]
}
],
"required_feature": "native_next_transition",
"unsupported_outcome": "unsupported-capability",
"parent_only": true
},
"compatibility": {
"minimum_protocol_major": 1,
"maximum_protocol_major": 1,
"additive_minor_policy": "optional-fields-only",
"unknown_mandatory": "reject",
"unknown_optional": "ignore",
"modes": [
"compact-v2",
"legacy-v1"
],
"legacy_window": {
"mode": "legacy-v1",
"state": "active",
"read_only": true,
"deprecation_started": true,
"removal": "not-scheduled",
"minimum_compatibility_releases": 1
}
}
}
97 changes: 97 additions & 0 deletions contracts/review-integration/v1/fixtures/start-v2.fixture.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
{
"schema": "gentle-ai.review-integration.start/v2",
"contract": "gentle-ai.review-integration/v1",
"operation": "review.start",
"action": "created",
"lenses_required": true,
"lineage_id": "review-start-fixture",
"state": "reviewing",
"risk_level": "high",
"selected_lenses": [
"review-risk",
"review-resilience",
"review-readability",
"review-reliability"
],
"projection": "workspace",
"changed_files": 1,
"changed_lines": 1,
"correction_budget": 1,
"risk_reasons": [
{
"code": "shell_source",
"signal": "shell_process",
"path": "scripts/deploy.sh"
}
],
"artifact_subjects": [
{
"schema": "gentle-ai.review-artifact-subject/v1",
"subject_hash": "sha256:38a55988f6b3ae6f520690d52fd29255f425a4048b0f8694de3a80c5daf265cd",
"lineage_id": "review-start-fixture",
"authority_revision": "sha256:3411d049f39e891b50adfc76473199b473927d10245a227a3bc967eae0caf68c",
"target_identity": "sha256:136dc6556e3bac8c2e7f7af7cc5ec361f449e383a997638128729059fefa06a5",
"candidate_diff_sha256": "sha256:c18ffcaf6f41a8cd5f3399a10355eb8de3e5eb561cb65cb551ea93bdf4df921b",
"changed_path_manifest_sha256": "sha256:049219ea30e21c409608ea8527e65bcc6774d764363031a6cf0cb05e35c734ef",
"lens": "review-risk",
"selected_order": 0
},
{
"schema": "gentle-ai.review-artifact-subject/v1",
"subject_hash": "sha256:06d86f981a8c0b16c2179696d467c8157580214ad72c952adee423fe596d2c21",
"lineage_id": "review-start-fixture",
"authority_revision": "sha256:3411d049f39e891b50adfc76473199b473927d10245a227a3bc967eae0caf68c",
"target_identity": "sha256:136dc6556e3bac8c2e7f7af7cc5ec361f449e383a997638128729059fefa06a5",
"candidate_diff_sha256": "sha256:c18ffcaf6f41a8cd5f3399a10355eb8de3e5eb561cb65cb551ea93bdf4df921b",
"changed_path_manifest_sha256": "sha256:049219ea30e21c409608ea8527e65bcc6774d764363031a6cf0cb05e35c734ef",
"lens": "review-resilience",
"selected_order": 1
},
{
"schema": "gentle-ai.review-artifact-subject/v1",
"subject_hash": "sha256:beacbf1eed52620ef7686087f8944cbc2304d71abf13281267efe9e4de20fb1e",
"lineage_id": "review-start-fixture",
"authority_revision": "sha256:3411d049f39e891b50adfc76473199b473927d10245a227a3bc967eae0caf68c",
"target_identity": "sha256:136dc6556e3bac8c2e7f7af7cc5ec361f449e383a997638128729059fefa06a5",
"candidate_diff_sha256": "sha256:c18ffcaf6f41a8cd5f3399a10355eb8de3e5eb561cb65cb551ea93bdf4df921b",
"changed_path_manifest_sha256": "sha256:049219ea30e21c409608ea8527e65bcc6774d764363031a6cf0cb05e35c734ef",
"lens": "review-readability",
"selected_order": 2
},
{
"schema": "gentle-ai.review-artifact-subject/v1",
"subject_hash": "sha256:61a10b133e3f7a8ccad1d0f1d58989df75d2330ad530690137de625bfd10eec8",
"lineage_id": "review-start-fixture",
"authority_revision": "sha256:3411d049f39e891b50adfc76473199b473927d10245a227a3bc967eae0caf68c",
"target_identity": "sha256:136dc6556e3bac8c2e7f7af7cc5ec361f449e383a997638128729059fefa06a5",
"candidate_diff_sha256": "sha256:c18ffcaf6f41a8cd5f3399a10355eb8de3e5eb561cb65cb551ea93bdf4df921b",
"changed_path_manifest_sha256": "sha256:049219ea30e21c409608ea8527e65bcc6774d764363031a6cf0cb05e35c734ef",
"lens": "review-reliability",
"selected_order": 3
}
],
"candidate_diff": {
"encoding": "base64",
"data": "ZGlmZiAtLWdpdCBhL3NjcmlwdHMvZGVwbG95LnNoIGIvc2NyaXB0cy9kZXBsb3kuc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjhiM2FjMTI4ZmJiZWFmZmY0OWEzMjYxMDVmOGVhYzg1YzZjNzdhMQotLS0gL2Rldi9udWxsCisrKyBiL3NjcmlwdHMvZGVwbG95LnNoCkBAIC0wLDAgKzEgQEAKK2VjaG8gZGVwbG95Cg==",
"sha256": "sha256:c18ffcaf6f41a8cd5f3399a10355eb8de3e5eb561cb65cb551ea93bdf4df921b",
"byte_size": 226
},
"changed_path_manifest": [
{
"path": "scripts/deploy.sh",
"status": "A",
"old_mode": "000000",
"new_mode": "100644",
"deleted": false,
"type_changed": false,
"mode_only": false,
"intended_untracked": true
}
],
"repository_context": {
"capability": "review.opaque_repository_context",
"handle": "rctx1_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"revision": "sha256:3411d049f39e891b50adfc76473199b473927d10245a227a3bc967eae0caf68c",
"target_identity": "sha256:136dc6556e3bac8c2e7f7af7cc5ec361f449e383a997638128729059fefa06a5"
}
}
Loading
Loading