Skip to content

B6 — e2e: solver respects volunteer time-off - #211

Merged
tomqwu merged 1 commit into
mainfrom
overnight-B6-availability-solver
May 19, 2026
Merged

tomqwu merged 1 commit into
mainfrom
overnight-B6-availability-solver

Conversation

@tomqwu

@tomqwu tomqwu commented May 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • The greedy solver already excludes anyone whose time-off / vacation covers an event date (api/core/solver/heuristics.py:188), and that has unit coverage — but there was no end-to-end enforcement through the real web → solve → publish path.
  • Adds a committed e2e regression guard: a volunteer books time-off over the only event's date; the admin solves and publishes; the volunteer is left unassigned (role stays open rather than the volunteer being double-booked).
  • No production change — this converts an existing correctness property into a durable, CI-gated guarantee (the marathon's core objective).

Test plan

  • Committed e2e tests/e2e/test_availability_solver.py
  • Local: full tests/e2e/ 5 passed; black --check api tests + ruff check api tests clean
  • CI: lint/type/test + blocking e2e lane green

Closes #210 · part of #196 (Phase B).

🤖 Generated with Claude Code

The greedy solver already skips people whose time-off / vacation
covers an event date (api/core/solver/heuristics.py), with unit
coverage — but this correctness property had no end-to-end
enforcement. Adds a committed e2e: a volunteer books time-off over the
only event's date, the admin solves and publishes, and that volunteer
is left unassigned (role stays open, not double-booked).

Closes #210

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@tomqwu tomqwu added this to the Overnight — e2e workflows milestone May 19, 2026
@tomqwu
tomqwu merged commit fdb7f19 into main May 19, 2026
5 checks passed
@tomqwu
tomqwu deleted the overnight-B6-availability-solver branch May 19, 2026 16:51
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.

B6 — availability respected by solver (timeoff blocks assignment)

1 participant