refactor: decouple permission state from attention signal

This commit is contained in:
Mohamed Boudra
2026-02-23 15:47:08 +07:00
parent 89a117e1c1
commit f3ebe0545f
18 changed files with 276 additions and 28 deletions
@@ -0,0 +1,37 @@
import { describe, expect, it } from "vitest";
import { deriveSidebarStateBucket } from "./sidebar-agent-state";
describe("deriveSidebarStateBucket", () => {
it("prioritizes pending permissions as needs_input", () => {
expect(
deriveSidebarStateBucket({
status: "idle",
pendingPermissionCount: 1,
requiresAttention: false,
attentionReason: null,
})
).toBe("needs_input");
});
it("keeps legacy permission attention in needs_input", () => {
expect(
deriveSidebarStateBucket({
status: "idle",
pendingPermissionCount: 0,
requiresAttention: true,
attentionReason: "permission",
})
).toBe("needs_input");
});
it("treats unread finished agents as attention", () => {
expect(
deriveSidebarStateBucket({
status: "idle",
pendingPermissionCount: 0,
requiresAttention: true,
attentionReason: "finished",
})
).toBe("attention");
});
});