Skip to content

fix(evidence): correct cycles_evidence_url join + state cycles_evidence non-attestation (v0.1.25.2)#106

Merged
amavashev merged 1 commit into
mainfrom
fix/evidence-ref-url-and-mirror-exclusion
Jun 12, 2026
Merged

fix(evidence): correct cycles_evidence_url join + state cycles_evidence non-attestation (v0.1.25.2)#106
amavashev merged 1 commit into
mainfrom
fix/evidence-ref-url-and-mirror-exclusion

Conversation

@amavashev

Copy link
Copy Markdown
Contributor

Summary

Addresses two review findings on the merged v0.1.25.1 (cycles_evidence on the reserve response).

Finding 1 (High) — cycles_evidence non-attestation now explicit

ReservationCreateResponseMirror (drafts/cycles-evidence-v0.1.yaml) already keeps additionalProperties: false and omits cycles_evidence, but the omission wasn't stated, leaving the hash input ambiguous (include it → self-referential id; exclude it → not stated normatively).

Now explicit, in two places:

  • On the CyclesEvidenceRef / cycles_evidence field: it is transport metadata, NOT attested; evidence_id is computed over the pre-evidence-ref response; servers MUST compute evidence_id before stamping the ref; the ref MUST NOT appear in the attested payload.
  • On the mirror: a "DELIBERATE OMISSION" note explaining additionalProperties: false forbids it precisely to keep the content hash non-self-referential.

Finding 2 (Medium) — cycles_evidence_url double /v1

server_id is the canonical base including /v1 (https://cycles.example.com/v1). The old doc {server_id}/v1/evidence/{id} produced …/v1/v1/evidence/…. Corrected to {server_id}/evidence/{evidence_id} with a normative note.

Validation

  • validate_changelogs.py: OK. Spectral: 0 errors. merged/ regenerated.
  • v0.1.25.1 → v0.1.25.2 (fourth-segment revision).

Companion impl fix

The cycles-server EvidenceEmitter.evidenceUrl() had the same double-/v1 bug (its test even asserted it); fixed in the cycles-server evidence-id PR to match this {server_id}/evidence/{id} form.

…ce non-attestation

Addresses two review findings on v0.1.25.1:

- High: ReservationCreateResponseMirror (drafts/cycles-evidence-v0.1.yaml) keeps
  additionalProperties:false and omits cycles_evidence, but the omission was not
  stated normatively, leaving the hash input ambiguous. Now explicit: cycles_evidence
  is transport metadata, NOT attested; evidence_id is computed over the pre-evidence-ref
  response; servers MUST compute it before stamping the ref. Documented on the field
  and the mirror.

- Medium: cycles_evidence_url was documented as {server_id}/v1/evidence/{evidence_id},
  but server_id already includes the /v1 base, yielding a double /v1. Corrected to
  {server_id}/evidence/{evidence_id} with a normative note.

v0.1.25.1 -> v0.1.25.2; changelog prepended; merged regenerated; changelogs validated;
spectral 0 errors.
@amavashev amavashev merged commit 939c461 into main Jun 12, 2026
5 checks passed
@amavashev amavashev deleted the fix/evidence-ref-url-and-mirror-exclusion branch June 12, 2026 17:45
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