Issue #3612171: Booking the same day twice leaves the visitor stuck: the calendar collides with their own hold and shows it as full

Fixes the re-entrancy of the calendar Book (full report in the issue).

  • Book now reuses the session order and holds only the shortfall per target, so re-submitting a held pick resumes the order instead of colliding with the visitor own hold. The calendar never releases or moves a booking; whether a further booking is allowed is left to the resource constraint policies.
  • The visitor own held places are published in a small client-read cookie so the calendar shows them as theirs (not full) and lets them resume. The globally cached availability feed and the calendar page are never personalized server-side, so the high-traffic path is unchanged.

Kernel tests cover the resume-without-colliding, the additive-without-releasing behavior, and the cookie projection with its mutation-gated write.

Merge request reports

Loading