From 62cab94f95a992eab0f4b574a808742b5df75f9a Mon Sep 17 00:00:00 2001 From: PR Batch Tester Date: Wed, 28 Oct 2026 20:56:50 +0000 Subject: [PATCH 1/4] fix(web): scheduled task editor shows the destination thread The editor kept a task's thread binding but never showed it, so a bound task looked like it would start a new thread each run. Show a read-only Destination field: a bound task links to its thread (title, or its id when the thread isn't loaded) and says runs continue that conversation; an unbound task says each run starts a new thread. Fixes #26641 Co-Authored-By: Claude Opus 5.5 --- .../settings/ScheduledTasksSettings.tsx | 42 ++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/apps/web/src/components/settings/ScheduledTasksSettings.tsx b/apps/web/src/components/settings/ScheduledTasksSettings.tsx index e027438a6abdb..9c0ccf76fa7bf 100644 --- a/apps/web/src/components/settings/ScheduledTasksSettings.tsx +++ b/apps/web/src/components/settings/ScheduledTasksSettings.tsx @@ -59,7 +59,9 @@ import { useEnvironmentHttpBaseUrl, type EnvironmentPresentation, } from "../../state/environments"; -import { useProjects } from "../../state/entities"; +import { useProjects, useThreadShell } from "../../state/entities"; +import { scopeThreadRef } from "@t3tools/client-runtime/environment"; +import { buildThreadRouteParams } from "../../threadRoutes"; import { environmentAtomList, environmentIdsKey } from "../../state/environmentAtomList"; import { formatEnvironmentQueryError, useEnvironmentQuery } from "../../state/query"; import { EMPTY_SERVER_PROVIDERS, serverEnvironment } from "../../state/server"; @@ -1108,6 +1110,39 @@ function ScheduledTaskEditorDialog({ ); } +function ScheduledTaskDestination({ + environmentId, + threadId, +}: { + readonly environmentId: EnvironmentId; + readonly threadId: ThreadId | null; +}) { + const ref = threadId === null ? null : scopeThreadRef(environmentId, threadId); + const thread = useThreadShell(ref); + return ( + + {ref === null ? ( +

+ Each run starts a new thread with the workspace and model below. +

+ ) : ( +
+ + {thread?.title.trim() || `Thread ${ref.threadId}`} + +

+ Each run continues this conversation, in its workspace and with its current model. +

+
+ )} +
+ ); +} + function ScheduledTaskEditorForm({ initialEnvironmentId, task, @@ -1384,6 +1419,11 @@ function ScheduledTaskEditorForm({ /> + +