From 254e97da74bc2c50454efa9c7592d498175f96c5 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Tue, 30 Jun 2026 14:58:07 -0700 Subject: [PATCH] FN-7306: rename task-detail Chat tab to Activity Renames the existing task-detail activity surface while preserving the stable chat tab id. - Move the Activity tab to the first task-detail position and make it the default for every task state. - Keep `chat` as the compatibility tab id for modal callers, plugin APIs, and deep links. - Update task-detail tests and add a patch changeset for the published CLI package. Files changed: .changeset/fn-7306-task-detail-activity-tab.md | 7 +++ .../dashboard/app/components/TaskDetailModal.tsx | 35 ++++++------- .../TaskDetailModal.attachments-and-tabs.test.tsx | 57 +++++++++++----------- .../TaskDetailModal.definition-actions.test.tsx | 24 ++++----- ...TaskDetailModal.github-tracking-header.test.tsx | 2 +- .../TaskDetailModal.github-tracking-stale.test.tsx | 2 +- ...lModal.inline-editing-and-integrations.test.tsx | 4 +- ...skDetailModal.models-progress-workflow.test.tsx | 2 +- .../__tests__/TaskDetailModal.rendering.test.tsx | 4 +- ...etailModal.responsive-and-dependencies.test.tsx | 6 +-- .../__tests__/TaskDetailModal.summary-tab.test.tsx | 33 ++++++++----- .../components/__tests__/TaskDetailModal.test.tsx | 4 +- packages/dashboard/app/hooks/useModalManager.ts | 4 ++ packages/dashboard/app/plugins/types.ts | 7 ++- 14 files changed, 107 insertions(+), 84 deletions(-) Fusion-Task-Id: FN-7306 Fusion-Task-Lineage: c905134c-de74-4c46-9c5a-d3fbc8200093 Co-authored-by: Fusion (runfusion.ai) --- .../fn-7306-task-detail-activity-tab.md | 7 +++ .../app/components/TaskDetailModal.tsx | 35 ++++++------ ...kDetailModal.attachments-and-tabs.test.tsx | 57 +++++++++---------- ...askDetailModal.definition-actions.test.tsx | 24 ++++---- ...etailModal.github-tracking-header.test.tsx | 2 +- ...DetailModal.github-tracking-stale.test.tsx | 2 +- ...l.inline-editing-and-integrations.test.tsx | 4 +- ...ailModal.models-progress-workflow.test.tsx | 2 +- .../TaskDetailModal.rendering.test.tsx | 4 +- ...Modal.responsive-and-dependencies.test.tsx | 6 +- .../TaskDetailModal.summary-tab.test.tsx | 33 +++++++---- .../__tests__/TaskDetailModal.test.tsx | 4 +- .../dashboard/app/hooks/useModalManager.ts | 4 ++ packages/dashboard/app/plugins/types.ts | 7 ++- 14 files changed, 107 insertions(+), 84 deletions(-) create mode 100644 .changeset/fn-7306-task-detail-activity-tab.md diff --git a/.changeset/fn-7306-task-detail-activity-tab.md b/.changeset/fn-7306-task-detail-activity-tab.md new file mode 100644 index 0000000000..2bce5a6195 --- /dev/null +++ b/.changeset/fn-7306-task-detail-activity-tab.md @@ -0,0 +1,7 @@ +--- +"@runfusion/fusion": patch +--- + +summary: Rename the task-detail Chat tab to Activity and make it first. +category: feature +dev: Keeps the internal `chat` tab id compatible for existing deep links and plugin callers. diff --git a/packages/dashboard/app/components/TaskDetailModal.tsx b/packages/dashboard/app/components/TaskDetailModal.tsx index 64aa27a64c..efc219e77d 100644 --- a/packages/dashboard/app/components/TaskDetailModal.tsx +++ b/packages/dashboard/app/components/TaskDetailModal.tsx @@ -194,20 +194,20 @@ function formatDurationCompact(ageMs: number): string { type TabId = "summary" | "definition" | "chat" | "logs" | "changes" | "review" | "pr" | "comments" | "model" | "workflow" | "documents" | "stats" | "routing" | "retries" | "terminal" | `plugin-${string}`; /* -FNXC:TaskDetailSummaryTab 2026-06-27-00:00: -Done tasks land on Summary instead of Chat so completed work opens on the completion overview. Chat stays the implicit default for every other column, and explicit tab requests continue to win for done tasks. +FNXC:TaskDetailActivityTab 2026-06-30-00:00: +The existing task activity/steering surface keeps the stable internal `chat` tab id for deep-link/plugin compatibility, but its top-level user-facing label is Activity. Activity is the implicit default for every task column, including done tasks; Summary remains explicitly available for completed work until a later subtask adds the separate planner-model Chat surface. -FNXC:TaskDetailSummaryTab 2026-06-27-00:00: -Only an omitted initial tab is the implicit default. Preserve explicit `initialTab="chat"` requests from plugins and task-detail entrypoints so done tasks can still deep-link directly to Chat. +FNXC:TaskDetailActivityTab 2026-06-30-00:00: +Only an omitted initial tab is the implicit default. Preserve explicit `initialTab="chat"` requests from plugins and task-detail entrypoints so existing links continue to open the renamed Activity surface. */ -function resolveDefaultTab(initialTab: TabId | undefined, column: ColumnId): TabId { +function resolveDefaultTab(initialTab: TabId | undefined, _column: ColumnId): TabId { if (initialTab === "retries") { return "definition"; } if (initialTab) { return initialTab; } - return column === "done" ? "summary" : "chat"; + return "chat"; } // Lazy-load the terminal so xterm + addons stay out of the main bundle (U11). @@ -501,8 +501,8 @@ export function TaskDetailContent({ autoMergeEnabled: autoMergeEnabledProp, onOpenWorkflowEditor, /** - * FNXC:TaskDetailTabs 2026-06-17-00:00: - * FN-6532 makes Chat the default task-detail view when no caller supplies an explicit initial tab. + * FNXC:TaskDetailActivityTab 2026-06-30-00:00: + * The Activity tab is still addressed as `chat` internally so existing callers and deep links do not break while the label/order changes ahead of the future planner Chat tab. */ initialTab, mobileHeaderMode = "close", @@ -3136,12 +3136,15 @@ export function TaskDetailContent({ <>
{/* - FNXC:TaskDetailTabs 2026-06-17-00:00: - FN-6532 requires Chat to be the first task-detail tab while preserving every explicit tab entrypoint. - - FNXC:TaskDetailSummaryTab 2026-06-27-00:00: - Done tasks expose Summary as the first tab because the implicit Chat default resolves there for completed work; non-done tasks keep Chat first and never render an empty Summary shell. + FNXC:TaskDetailActivityTab 2026-06-30-00:00: + The existing task activity/steering surface is now labelled Activity and always renders first. Keep the `chat` tab id because a later subtask will add the separate planner-model Chat surface; this rename must not break existing `initialTab="chat"` callers. */} + {task.column === "done" && (