Skip to content

feat(decide): surface cycles_evidence on the decide response (v0.1.25.4) - #108

Merged
amavashev merged 1 commit into
mainfrom
feat/evidence-ref-on-decide
Jun 13, 2026
Merged

feat(decide): surface cycles_evidence on the decide response (v0.1.25.4)#108
amavashev merged 1 commit into
mainfrom
feat/evidence-ref-on-decide

Conversation

@amavashev

Copy link
Copy Markdown
Contributor

Summary

Completes the lifecycle binding loop — adds optional cycles_evidence (CyclesEvidenceRef) to DecisionResponse. The decide artifact attests a pre-execution decision (ALLOW / ALLOW_WITH_CAPS / DENY); no reservation is created.

  • Already normative in drafts/cycles-evidence-v0.1.yaml: DecidePayload = {request, response}, golden fixtures 01-decide-allow / 09-decide-risk-points-allow.
  • Forbidden/validation failures on /v1/decide remain error-artifact territory (fixture 12-decide-live-forbidden is artifact_type: error).
  • Added the DecisionResponseMirror non-attestation note (consistent with reserve/commit/release mirrors).

Validation

info.version 0.1.25.3 → 0.1.25.4; changelog prepended; merged/ regenerated; spec-index runtime_base editorial → 0.1.25.4 (semantic_base stays 0.1.25); validate_changelogs.py OK; spectral 0 errors.

Follow-on

cycles-server: emit decide evidence idempotently (mirrors the dry-run reserve pattern — non-persisting, keyed by idempotency_key). The error artifact is a separate slice with a design fork (whether ErrorResponse surfaces cycles_evidence).

Not auto-merging — for your review.

Completes the lifecycle binding loop (decide/reserve/commit/release): adds the
optional cycles_evidence field (CyclesEvidenceRef) to DecisionResponse. The decide
artifact attests a pre-execution decision (ALLOW/ALLOW_WITH_CAPS/DENY); it's already
modelled in drafts/cycles-evidence-v0.1.yaml (DecidePayload = {request, response}, no
reservation created) with golden fixtures 01-decide-allow / 09-decide-risk-points-allow.
Forbidden/validation failures on /v1/decide remain error-artifact territory. Added the
DecisionResponseMirror non-attestation note (consistent with the other mirrors).

v0.1.25.3 -> v0.1.25.4; changelog prepended; merged regenerated; spec-index runtime_base
editorial -> 0.1.25.4 (semantic_base stays 0.1.25); changelogs valid; spectral 0 errors.
@amavashev
amavashev merged commit abea4d3 into main Jun 13, 2026
5 checks passed
@amavashev
amavashev deleted the feat/evidence-ref-on-decide branch June 13, 2026 14:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant