diff --git a/platform_web/pages/ServerDetailPage.test.tsx b/platform_web/pages/ServerDetailPage.test.tsx index e2c1b74..c9018e3 100644 --- a/platform_web/pages/ServerDetailPage.test.tsx +++ b/platform_web/pages/ServerDetailPage.test.tsx @@ -98,6 +98,8 @@ describe("ServerDetailPage config write approval", () => { expect(serverDetailPageSource).not.toContain("entry.editable"); expect(serverDetailPageSource).not.toContain("entry.downloadable"); expect(serverDetailPageSource).not.toContain("当前目录暂无缓存结果;点击刷新目录读取实时文件。"); + expect(serverDetailPageSource).not.toContain("独立通道"); + expect(serverDetailPageSource).not.toContain("目录已更新"); }); it("keeps run distribution and client-manager workflows out of server detail tabs", () => { diff --git a/platform_web/pages/ServerDetailPage.tsx b/platform_web/pages/ServerDetailPage.tsx index cf6df0f..cf457fe 100644 --- a/platform_web/pages/ServerDetailPage.tsx +++ b/platform_web/pages/ServerDetailPage.tsx @@ -596,7 +596,7 @@ function ServerFilesSection({ instance, session, operations }: ServerFilesSectio try { const response = await platformApiClient.listServerFiles(instance.id, { directoryKey, path: relativePath || undefined, query: searchQuery || undefined, recursive }); setList({ status: "ready", data: response }); - if (options.silent && response.state === "ready") setPanelResult({ status: "succeeded", label: `目录已更新:${response.entries.length} 项` }); + if (options.silent && response.state === "ready") setPanelResult(null); if (options.silent && response.state === "pending") setPanelResult({ status: "pending", label: serverFileListPendingLabel(response) }); if (options.silent && response.state === "failed") setPanelResult({ status: "failed", label: response.reason ?? "目录刷新失败" }); } catch (error) { @@ -616,7 +616,8 @@ function ServerFilesSection({ instance, session, operations }: ServerFilesSectio const response = await platformApiClient.refreshServerFiles(instance.id, { directoryKey, path: relativePath || undefined, query: searchQuery || undefined, recursive, idempotencyKey: serverFileIdempotency("list", instance.id, directoryKey) }); setList({ status: "ready", data: response }); if (operationId) operations.succeed(operationId, `目录刷新任务 ${response.job?.id ?? "已派发"}`, response.job); - setPanelResult({ status: serverFileListResultStatus(response), label: serverFileListResultLabel(response) }); + if (response.state === "ready") setPanelResult(null); + else setPanelResult({ status: serverFileListResultStatus(response), label: serverFileListResultLabel(response) }); } catch (error) { const reason = error instanceof Error ? error.message : "目录刷新失败"; if (operationId) operations.fail(operationId, reason, operationId); @@ -761,14 +762,13 @@ function ServerFilesSection({ instance, session, operations }: ServerFilesSectio

服务器文件

- 独立通道 {workspace.data.transfer.channel} · 内联编辑 {formatBytes(workspace.data.transfer.maxInlineEditBytes)}
-
- - {activeDirectory?.label ?? (directoryKey || "服务器根目录")} - {relativePath.split("/").filter(Boolean).map((part) => {part})} -
-
1 && "server-file-toolbar-has-tabs")}> +
+
+ + {activeDirectory?.label ?? (directoryKey || "服务器根目录")} + {relativePath.split("/").filter(Boolean).map((part) => {part})} +
{workspace.data.directories.length > 1 &&
{workspace.data.directories.map((directory) => (