From 0848ba01930162429e3f563d8209acbe87e3c4ce Mon Sep 17 00:00:00 2001 From: Yggdrasil Date: Wed, 14 Oct 2026 02:38:26 -0400 Subject: [PATCH] fix(api): GET /milestones + /maintenance-pools load the relations the UI renders MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both list() were bare find() — no relations, so the frontend's adaptMilestone/adaptMaintenancePool got empty rows (no repository, sponsor, escrow, issues). Resolves #591 --- src/maintenance-pool/maintenance-pool.service.ts | 6 +++++- src/milestones/milestones.service.ts | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/maintenance-pool/maintenance-pool.service.ts b/src/maintenance-pool/maintenance-pool.service.ts index 13415a62..86ac588b 100644 --- a/src/maintenance-pool/maintenance-pool.service.ts +++ b/src/maintenance-pool/maintenance-pool.service.ts @@ -196,6 +196,10 @@ export class MaintenancePoolService { } async list(): Promise { - return this.poolRepo.find(); + // Load repository/sponsor/escrow — the frontend's adaptMaintenancePool + // needs them; a bare find() returned rows with no relations (#591). + return this.poolRepo.find({ + relations: ['repository', 'createdBy', 'escrow'], + }); } } diff --git a/src/milestones/milestones.service.ts b/src/milestones/milestones.service.ts index c2b7ee8b..fe21ca75 100644 --- a/src/milestones/milestones.service.ts +++ b/src/milestones/milestones.service.ts @@ -214,7 +214,12 @@ export class MilestonesService { } async list(): Promise { - return this.milestoneRepo.find(); + // Load the relations the frontend's adaptMilestone renders — repository + // (org/repo display), sponsor, escrow (fund status), issues (the linked + // issues). A bare find() returned empty rows (#591). + return this.milestoneRepo.find({ + relations: ['repository', 'sponsor', 'escrow', 'issues'], + }); } allocateBudget(id: string) {