fix(tasks): scope shared run updates by session

This commit is contained in:
Vincent Koc
2026-04-01 03:40:50 +09:00
parent 8fa5ac5a96
commit 338d313043
9 changed files with 485 additions and 371 deletions

View File

@@ -7,14 +7,13 @@ import {
markTaskTerminalByRunId,
recordTaskProgressByRunId,
setTaskRunDeliveryStatusByRunId,
} from "./runtime-internal.js";
} from "./task-registry.js";
import type {
TaskDeliveryState,
TaskDeliveryStatus,
TaskNotifyPolicy,
TaskRecord,
TaskRuntime,
TaskScopeKind,
TaskStatus,
TaskTerminalOutcome,
} from "./task-registry.types.js";
@@ -22,8 +21,7 @@ import type {
export function createQueuedTaskRun(params: {
runtime: TaskRuntime;
sourceId?: string;
ownerKey: string;
scopeKind: TaskScopeKind;
requesterSessionKey: string;
requesterOrigin?: TaskDeliveryState["requesterOrigin"];
childSessionKey?: string;
parentTaskId?: string;
@@ -44,8 +42,7 @@ export function createQueuedTaskRun(params: {
export function createRunningTaskRun(params: {
runtime: TaskRuntime;
sourceId?: string;
ownerKey: string;
scopeKind: TaskScopeKind;
requesterSessionKey: string;
requesterOrigin?: TaskDeliveryState["requesterOrigin"];
childSessionKey?: string;
parentTaskId?: string;
@@ -68,6 +65,8 @@ export function createRunningTaskRun(params: {
export function startTaskRunByRunId(params: {
runId: string;
runtime?: TaskRuntime;
sessionKey?: string;
startedAt?: number;
lastEventAt?: number;
progressSummary?: string | null;
@@ -78,6 +77,8 @@ export function startTaskRunByRunId(params: {
export function recordTaskRunProgressByRunId(params: {
runId: string;
runtime?: TaskRuntime;
sessionKey?: string;
lastEventAt?: number;
progressSummary?: string | null;
eventSummary?: string | null;
@@ -87,6 +88,8 @@ export function recordTaskRunProgressByRunId(params: {
export function completeTaskRunByRunId(params: {
runId: string;
runtime?: TaskRuntime;
sessionKey?: string;
endedAt: number;
lastEventAt?: number;
progressSummary?: string | null;
@@ -95,6 +98,8 @@ export function completeTaskRunByRunId(params: {
}) {
return markTaskTerminalByRunId({
runId: params.runId,
runtime: params.runtime,
sessionKey: params.sessionKey,
status: "succeeded",
endedAt: params.endedAt,
lastEventAt: params.lastEventAt,
@@ -106,6 +111,8 @@ export function completeTaskRunByRunId(params: {
export function failTaskRunByRunId(params: {
runId: string;
runtime?: TaskRuntime;
sessionKey?: string;
status?: Extract<TaskStatus, "failed" | "timed_out" | "cancelled">;
endedAt: number;
lastEventAt?: number;
@@ -115,6 +122,8 @@ export function failTaskRunByRunId(params: {
}) {
return markTaskTerminalByRunId({
runId: params.runId,
runtime: params.runtime,
sessionKey: params.sessionKey,
status: params.status ?? "failed",
endedAt: params.endedAt,
lastEventAt: params.lastEventAt,
@@ -136,6 +145,8 @@ export function markTaskRunLostById(params: {
export function setDetachedTaskDeliveryStatusByRunId(params: {
runId: string;
runtime?: TaskRuntime;
sessionKey?: string;
deliveryStatus: TaskDeliveryStatus;
}) {
return setTaskRunDeliveryStatusByRunId(params);