From 6bee1a12aa6d64dc240a7bbde396f90082243270 Mon Sep 17 00:00:00 2001 From: Croissant Le Doux Date: Thu, 9 Jul 2026 01:23:56 -0400 Subject: [PATCH] test: point the live milestone assertion at P5 after the backlog reconcile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closed the 15 genuinely-shipped issues on the dogfood repo (scheduler, Monte Carlo, calibration, lifecycle, model router, query_project, capture_work, record_directive, etc.) so the board reflects reality: 10 open / 24 done. P2 dropped off Runway once all its work shipped (a milestone with no open scope isn't runway — correct), so the live spec now drills into P5 (which still has open scope) instead of P2. No code change — this only updates the live assertion to match the reconciled backlog. Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/desktop/e2e/live-backlog.spec.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/desktop/e2e/live-backlog.spec.ts b/apps/desktop/e2e/live-backlog.spec.ts index 4362ea2..4e5e728 100644 --- a/apps/desktop/e2e/live-backlog.spec.ts +++ b/apps/desktop/e2e/live-backlog.spec.ts @@ -42,16 +42,17 @@ test.describe('live backlog', () => { win.getByText(/cold-start priors · \d+\/20 closed issues estimated|calibrated on \d+ closed/), ).toBeVisible() // Real per-milestone forecasts — these milestone names come from gitea, not the - // fixture (which lists Beta / Pilot-ready / v1.0). - await expect(win.getByText(/P2 — Scheduler/)).toBeVisible() + // fixture (which lists Beta / Pilot-ready / v1.0). Only milestones with open + // scope appear (P2 dropped off once all its work shipped — correct). + await expect(win.getByText(/P5 — Dogfood/)).toBeVisible() // Real capacity config from pm-state (christian/stephen), not the fixture (Stephen/Ana K.) await expect(win.getByText('christian', { exact: true })).toBeVisible() await expect(win.getByText(/pd\/day/).first()).toBeVisible() await win.screenshot({ path: join(here, '.artifacts', 'screens', 'live-runway.png'), fullPage: true, animations: 'disabled' }) // Milestone drill-in — clicking a real milestone opens its real detail - await win.getByText(/P2 — Scheduler/).click() - await expect(win.getByRole('heading', { name: 'P2 — Scheduler + Monte Carlo' })).toBeVisible() + await win.getByText(/P5 — Dogfood/).click() + await expect(win.getByRole('heading', { name: 'P5 — Dogfood + polish' })).toBeVisible() await expect(win.getByText(/\d+ issues · est \d+d/)).toBeVisible() await win.screenshot({ path: join(here, '.artifacts', 'screens', 'live-milestone.png'), fullPage: true, animations: 'disabled' }) await rail.getByRole('button', { name: 'Runway' }).click()