This commit is contained in:
Nathan Flurry 2026-03-14 23:47:43 -07:00 committed by GitHub
parent 99abb9d42e
commit 57a07f6a0a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 206 additions and 113 deletions

View file

@ -671,7 +671,7 @@ export const Sidebar = memo(function Sidebar({
const isRunning = task.sessions.some((s) => s.status === "running");
const isProvisioning =
!isPullRequestItem &&
(String(task.status).startsWith("init_") ||
((String(task.status).startsWith("init_") && task.status !== "init_complete") ||
task.status === "new" ||
task.sessions.some((s) => s.status === "pending_provision" || s.status === "pending_session_create"));
const hasUnread = task.sessions.some((s) => s.unread);
@ -810,11 +810,7 @@ export const Sidebar = memo(function Sidebar({
if (item.type === "task-drop-zone") {
const { repository, taskCount } = item;
const isDropTarget =
drag?.type === "task" &&
drag.repositoryId === repository.id &&
drag.overIdx === taskCount &&
drag.fromIdx !== taskCount;
const isDropTarget = drag?.type === "task" && drag.repositoryId === repository.id && drag.overIdx === taskCount && drag.fromIdx !== taskCount;
return (
<div
key={item.key}
@ -851,8 +847,7 @@ export const Sidebar = memo(function Sidebar({
}
if (item.type === "repository-drop-zone") {
const isDropTarget =
drag?.type === "repository" && drag.overIdx === item.repositoryCount && drag.fromIdx !== item.repositoryCount;
const isDropTarget = drag?.type === "repository" && drag.overIdx === item.repositoryCount && drag.fromIdx !== item.repositoryCount;
return (
<div
key={item.key}

View file

@ -34,10 +34,13 @@ describe("describeTaskState", () => {
});
describe("isProvisioningTaskStatus", () => {
it("treats all init states as provisioning", () => {
it("treats in-progress init states as provisioning", () => {
expect(isProvisioningTaskStatus("init_bootstrap_db")).toBe(true);
expect(isProvisioningTaskStatus("init_ensure_name")).toBe(true);
expect(isProvisioningTaskStatus("init_complete")).toBe(true);
});
it("does not treat init_complete as provisioning (task is ready)", () => {
expect(isProvisioningTaskStatus("init_complete")).toBe(false);
});
it("does not treat steady-state or terminal states as provisioning", () => {

View file

@ -10,12 +10,7 @@ export interface TaskStateDescriptor {
export function isProvisioningTaskStatus(status: TaskDisplayStatus | null | undefined): boolean {
return (
status === "new" ||
status === "init_bootstrap_db" ||
status === "init_enqueue_provision" ||
status === "init_ensure_name" ||
status === "init_assert_name" ||
status === "init_complete"
status === "new" || status === "init_bootstrap_db" || status === "init_enqueue_provision" || status === "init_ensure_name" || status === "init_assert_name"
);
}