PH3.3 — Refill: override mode, /recalculate serialised per draft chain, new_in_version marking #25

Open
opened 2026-09-11 09:02:13 +00:00 by bart · 0 comments
Collaborator

Parent

Row PH3.3 in docs/12-implementation-plan.md (branch, owned paths and doc section are defined there).

What to build

After triage a planner presses Recalculate: the engine reruns only affected crew-days with accepted assignments pinned, rejected ones excluded and pending ones soft-locked; refilled assignments are marked ★ (new_in_version) in the child version. Concurrent recalculates on the same draft chain are serialised.

Acceptance criteria

  • Override-mode engine test: pinned assignments unchanged, rejected job never reassigned to the same crew-day, gaps refilled on the small fixture
  • /recalculate creates a child version with new_in_version set on refills
  • Two concurrent recalculates on one chain: the second waits or is rejected with a documented 409 code
  • S06 scenario integration test passes

Blocked by

  • #20 — Plan orchestration: snapshot builder, result writer, solver_run/plan_version lifecycle, publish/supersede
  • #18 — Planning engine daily mode: opportunities, travel provider, OR-Tools VRP model, result mapping
  • #24 — Triage: accept, reject, accept-all, pin and rejection locks, E_UNTRIAGED, I_GAP_UNFILLED, I_REJECTED_ELSEWHERE
## Parent Row **PH3.3** in `docs/12-implementation-plan.md` (branch, owned paths and doc section are defined there). ## What to build After triage a planner presses Recalculate: the engine reruns only affected crew-days with accepted assignments pinned, rejected ones excluded and pending ones soft-locked; refilled assignments are marked ★ (`new_in_version`) in the child version. Concurrent recalculates on the same draft chain are serialised. ## Acceptance criteria - [ ] Override-mode engine test: pinned assignments unchanged, rejected job never reassigned to the same crew-day, gaps refilled on the small fixture - [ ] `/recalculate` creates a child version with `new_in_version` set on refills - [ ] Two concurrent recalculates on one chain: the second waits or is rejected with a documented 409 code - [ ] S06 scenario integration test passes ## Blocked by - #20 — Plan orchestration: snapshot builder, result writer, solver_run/plan_version lifecycle, publish/supersede - #18 — Planning engine daily mode: opportunities, travel provider, OR-Tools VRP model, result mapping - #24 — Triage: accept, reject, accept-all, pin and rejection locks, E_UNTRIAGED, I_GAP_UNFILLED, I_REJECTED_ELSEWHERE
Sign in to join this conversation.
No labels
ready-for-agent
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
patrick/Polaris#25
No description provided.