T-C — Planning engine daily mode: opportunities, travel provider, OR-Tools VRP model, result mapping #18
Labels
No labels
ready-for-agent
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Blocks
Depends on
#23 PH3.1 — Nightly run job and replay-run by id
patrick/Polaris
#25 PH3.3 — Refill: override mode, /recalculate serialised per draft chain, new_in_version marking
patrick/Polaris
Reference
patrick/Polaris#18
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
Row T-C in
docs/12-implementation-plan.md(branch, owned paths and doc section are defined there).What to build
Given a
PlanningSnapshot, the engine enumerates opportunities, builds the OR-Tools model from docs/05-planning-engine.md §4 (daily mode) with aTravelMatrixProvider(haversine implementation), and returns aPlanResultwith assignments and unassigned jobs with reasons. Pure module; replayable from a file.Acceptance criteria
polaris replay-run --fileproduces the result; aslowregression test is marked and skipped by defaultcoreandcontracts; docs/05 §2–§7 updatedBlocked by
Starting work on branch
feature/engine-daily-mode. Owned paths:backend/src/polaris/engine/**,backend/tests/unit/engine/**,backend/tests/fixtures/snapshots/**(additions only). Building daily-mode OR-Tools VRP model per docs/05-planning-engine.md §2–§7, on top of the merged #12 engine contracts.Done — PR #72 (#72), branch
feature/engine-daily-mode. All acceptance criteria ticked above. mypy --strict and ruff clean; 196 unit tests green (plus a--run-slowregression test against the medium fixture's real 120s daily budget). Note in the PR's Additional Context:cli/replay_run.py's stub wiring is a small follow-up now that both T-C and T-D have merged, left untouched here since it's outside this ticket's owned paths.