Q151: deleting a task first shows what goes with it, then waits for the result

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ZacharyZhang-NYandClaude Opus 5.5 committed 2026-10-09 01:21:31 -04:00
1 parent 809c67a54a
commit 18f1e1fcc3
13 files changed
+171 -5

No files matched your search

+3
View File
@@ -1,3 +1,4 @@
import type { TaskDeleteImpact } from "./domain";
import type { SpaceHistoryPage, ThreadHistory } from "./chat-domain";
import type { RunRequestRecord } from "./provider-runtime-domain";
import type { ApprovalDrift } from "./approval-pin";
@@ -202,6 +203,8 @@ export interface DesktopApi {
/** The page of a conversation before a loaded message, for history older than the snapshot holds. */
/** Blocks a task with a reason, or unblocks it with null. */
setTaskBlocked(input: SetTaskBlockedInput): Promise<DesktopResult<AppSnapshot>>;
/** What deleting a task would remove, keep and close. */
taskDeleteImpact(input: { orgId: string; taskId: string }): Promise<DesktopResult<TaskDeleteImpact>>;
chatSpaceHistory(input: { orgId: string; spaceId: string; beforeMessageId: string | null } & ({ limit: number } | { fromMessageId: string })): Promise<DesktopResult<SpaceHistoryPage>>;
revokeConnector(input: RevokeConnectorInput): Promise<DesktopResult<AppSnapshot>>;
search(input: SearchInput): Promise<DesktopResult<SearchResultRecord[]>>;
+16
View File
@@ -89,6 +89,22 @@ export type TaskHold =
| { reason: string; waitingOn: "provider"; resumesAt: string }
| { reason: string; waitingOn: "operator"; resumesAt: string | null };
/** What deleting a task removes, keeps and closes, and whether a running session stops it. */
export interface TaskDeleteImpact {
/** Sessions removed with the task, with their action journals. */
runs: number;
/** Sessions still running; the delete is refused while any is. */
running: number;
/** Subtasks kept, moved to the top level. */
subtasks: number;
/** Documents kept, no longer linked to the task. */
documents: number;
/** Open reviews of the task, closed by the delete. */
openReviews: number;
/** Approvals requested for the task that stay pending. */
pendingApprovals: number;
}
export interface TaskRecord {
id: string;
orgId: string;
+1
View File
@@ -84,6 +84,7 @@ export const IPC_CHANNELS = {
chatThreadHistory: "agentcompany:chat-thread-history",
chatSpaceHistory: "agentcompany:chat-space-history",
setTaskBlocked: "agentcompany:set-task-blocked",
taskDeleteImpact: "agentcompany:task-delete-impact",
revokeConnector: "agentcompany:revoke-connector",
search: "agentcompany:search",
rendererEvent: "agentcompany:renderer-event",