Skip to content

feat(listReservations): lock in expires_*/finalized_* window passthrough (0.2.4)#79

Merged
amavashev merged 1 commit into
mainfrom
feat/list-reservations-expires-finalized-filters
May 22, 2026
Merged

feat(listReservations): lock in expires_*/finalized_* window passthrough (0.2.4)#79
amavashev merged 1 commit into
mainfrom
feat/list-reservations-expires-finalized-filters

Conversation

@amavashev
Copy link
Copy Markdown
Collaborator

Summary

Client-side companion to cycles-protocol-v0.yaml revision 2026-05-22 and cycles-server#163. Closes the Spring Boot starter side of runcycles/cycles-server#162. Same shape as v0.2.3.

What this PR does

  • Adds a regression test on DefaultCyclesClient.listReservations (DefaultCyclesClientTest$ListReservations.shouldForwardExpiresAndFinalizedWindows) confirming the four new ISO-8601 window params land on the wire. The existing Map<String, String> signature already accepts them.
  • Bumps to 0.2.4 via .mvn/maven.config (propagates to both starter + demo poms).
  • Updates AUDIT.md and CHANGELOG.md.

No production code change.

Wire-format note

Spring's WebClient leaves colons unencoded in the query component (RFC 3986 §3.4-valid), so the emitted path is e.g. expires_from=2026-05-22T00:00:00Z — same convention as v0.2.3 for from/to.

Verification

  • mvn -B verify --file cycles-client-java-spring/pom.xml: 434 tests pass.
  • JaCoCo coverage gate met (≥95%).

Test plan

  • CI green
  • (After merge) optional smoke against v0.1.25.21 cycles-server

…ugh (0.2.4)

Client-side companion to cycles-protocol-v0.yaml revision 2026-05-22
(runcycles/cycles-protocol#98) and runcycles/cycles-server#163.
Closes the Spring Boot starter side of issue #162. Follow-up to
v0.2.3 with the same shape, just four more params.

The existing `DefaultCyclesClient.listReservations(Map<String, String>)`
signature already forwards arbitrary keys to the URL query string,
so the four new ISO 8601 date-time params (expires_from /
expires_to / finalized_from / finalized_to) work over the wire
today without a code change. This commit adds a regression test
on DefaultCyclesClientTest$ListReservations that pins all four
params on the wire under their spec-mandated names.

Spring's WebClient leaves colons unencoded in the query component
(RFC 3986 §3.4-valid), so the wire form is
expires_from=2026-05-22T00:00:00Z — same shape as v0.2.3 for
from/to.

No protocol or wire-format change; servers older than v0.1.25.21
silently ignore the new params per the additive-parameter guarantee.
434 tests pass; JaCoCo coverage gate met.

Bumped to 0.2.4 via the single .mvn/maven.config source of truth
(propagates to both cycles-client-java-spring and
cycles-demo-client-java-spring poms in lockstep — drift-protection
from the CI-friendly versions refactor).
@amavashev amavashev merged commit f84e0e1 into main May 22, 2026
6 checks passed
@amavashev amavashev deleted the feat/list-reservations-expires-finalized-filters branch May 22, 2026 12:49
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