Files
HarborForge.Cli/internal/commands
hzhang fdf1ba1b17 fix(milestone): use nested /projects/{project}/milestones routes + datetime due
Two contract bugs broke `hf milestone *` against the backend:

- The backend mounts milestones at prefix /projects/{project_id}/milestones
  (nested), but the CLI used flat /milestones, /milestones/<code>, etc. →
  every milestone create/get/update/delete/progress/list 404'd. Switch to
  the nested routes: list/create take --project; get/update/delete/progress
  derive the project from the milestone code (PFIXTU:00001 → PFIXTU) via a
  new milestoneProject() helper. list now requires --project.
- due_date is a REQUIRED datetime on the backend, but --due <yyyy-mm-dd>
  was sent date-only → 422 datetime_parsing. Anchor a bare date to
  start-of-day (toMilestoneDateTime), same as the worklog logged_date fix.

Verified on sim: milestone create/list/get/progress all succeed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 12:56:58 +01:00
..