Keep finished terminals visible as attention
This commit is contained in:
@@ -5,6 +5,7 @@ import { Terminal } from "lucide-react-native";
|
||||
import { Text, View } from "react-native";
|
||||
import invariant from "tiny-invariant";
|
||||
import type { ListTerminalsResponse } from "@getpaseo/protocol/messages";
|
||||
import { deriveTerminalActivityStatusBucket } from "@getpaseo/protocol/terminal-activity";
|
||||
import { TerminalPane } from "@/components/terminal-pane";
|
||||
import { usePaneContext, usePaneFocus } from "@/panels/pane-context";
|
||||
import type { PanelDescriptor, PanelRegistration } from "@/panels/panel-registry";
|
||||
@@ -13,7 +14,6 @@ import { buildTerminalsQueryKey } from "@/screens/workspace/terminals/state";
|
||||
import { usePanelStore } from "@/stores/panel-store";
|
||||
import { useSessionStore } from "@/stores/session-store";
|
||||
import { useWorkspaceDirectory, useWorkspaceFields } from "@/stores/session-store-hooks";
|
||||
import { terminalActivityToStatusBucket } from "@/utils/terminal-activity-bucket";
|
||||
|
||||
type ListTerminalsPayload = ListTerminalsResponse["payload"];
|
||||
|
||||
@@ -70,7 +70,7 @@ function useTerminalPanelDescriptor(
|
||||
subtitle: t("workspace.tabs.fallback.terminal"),
|
||||
titleState: "ready",
|
||||
icon: Terminal,
|
||||
statusBucket: terminalActivityToStatusBucket(terminal?.activity?.state),
|
||||
statusBucket: deriveTerminalActivityStatusBucket(terminal?.activity),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { terminalActivityToStatusBucket } from "./terminal-activity-bucket";
|
||||
|
||||
describe("terminalActivityToStatusBucket", () => {
|
||||
it("maps working to running", () => {
|
||||
expect(terminalActivityToStatusBucket("working")).toBe("running");
|
||||
});
|
||||
|
||||
it("maps idle to null", () => {
|
||||
expect(terminalActivityToStatusBucket("idle")).toBeNull();
|
||||
});
|
||||
|
||||
it("maps null to null", () => {
|
||||
expect(terminalActivityToStatusBucket(null)).toBeNull();
|
||||
});
|
||||
|
||||
it("maps undefined to null", () => {
|
||||
expect(terminalActivityToStatusBucket(undefined)).toBeNull();
|
||||
});
|
||||
});
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { TerminalActivityState } from "@getpaseo/protocol/terminal-activity";
|
||||
import type { SidebarStateBucket } from "@/utils/sidebar-agent-state";
|
||||
|
||||
export function terminalActivityToStatusBucket(
|
||||
state: TerminalActivityState | null | undefined,
|
||||
): SidebarStateBucket | null {
|
||||
if (state === "working") return "running";
|
||||
if (state === "attention") return "needs_input";
|
||||
return null;
|
||||
}
|
||||
Reference in New Issue
Block a user