feat: complete catalog fleet management workflow

This commit is contained in:
Codex
2026-08-31 15:58:43 +02:00
parent 866aee4249
commit 9c697dc062
56 changed files with 6692 additions and 611 deletions
@@ -172,7 +172,7 @@ test("stops queued or running work without hiding earlier results or events", as
);
renderDrawer();
const drawer = await screen.findByRole("complementary", { name: "Description generation" });
const drawer = await screen.findByRole("dialog", { name: "Description generation" });
expect(await within(drawer).findByText("First description remains saved")).toBeVisible();
await user.click(within(drawer).getByRole("button", { name: "Stop" }));
@@ -243,7 +243,7 @@ test("reopens a terminal run from newest-first persisted history", async () => {
name: /Completed.*selected tables/i,
}));
const drawer = screen.getByRole("complementary", { name: "Description generation" });
const drawer = screen.getByRole("dialog", { name: "Description generation" });
expect(await within(drawer).findByRole("heading", { name: "Completed" })).toBeVisible();
expect(within(drawer).getByText("3", { selector: "[data-count='generated']" })).toBeVisible();
});
@@ -269,7 +269,7 @@ test("offers Unlock only for an apparently stale active run and explains the int
);
renderDrawer({ initialRun: staleRun });
const drawer = await screen.findByRole("complementary", { name: "Description generation" });
const drawer = await screen.findByRole("dialog", { name: "Description generation" });
expect(within(drawer).getByText(
"Unlock interrupts apparently stale work and marks the run interrupted. A live worker will prevent it.",
)).toBeVisible();
@@ -286,7 +286,7 @@ test("does not offer Unlock while an active run still appears current", async ()
);
renderDrawer();
const drawer = await screen.findByRole("complementary", { name: "Description generation" });
const drawer = await screen.findByRole("dialog", { name: "Description generation" });
expect(within(drawer).queryByRole("button", { name: "Unlock stale run" })).not.toBeInTheDocument();
});
@@ -307,7 +307,7 @@ test("explains when Unlock is refused because a live worker still exists", async
);
renderDrawer({ initialRun: staleRun });
const drawer = await screen.findByRole("complementary", { name: "Description generation" });
const drawer = await screen.findByRole("dialog", { name: "Description generation" });
await user.click(within(drawer).getByRole("button", { name: "Unlock stale run" }));
expect(await screen.findByText(