diff --git a/web/storyforge-web-v4/assets/app.js b/web/storyforge-web-v4/assets/app.js index e1e887b..926d6c0 100644 --- a/web/storyforge-web-v4/assets/app.js +++ b/web/storyforge-web-v4/assets/app.js @@ -1140,6 +1140,28 @@ function renderOneLinerRunsHtml() { ` : ""}
+
+ 当前运行 + ${escapeHtml(runStatusLabel)} + ${escapeHtml(currentRun.platform_scope === "all_platforms" ? "全平台" : "单平台")} + ${escapeHtml(recommendedAction?.label || "继续这个任务")} +
+
+
+ 当前运行 + ${escapeHtml(runStatusLabel)} +
+

${escapeHtml(currentRun.summary || currentRun.status_summary || "主 Agent 会先给你一张确认卡,再继续执行。")}

+
+ ${currentRun.run_status === "needs_confirmation" ? ` + 确认执行 + 取消本轮 + ` : ""} + ${canRetryCurrentRun ? `重新执行` : ""} + ${hasResultPayload ? `查看结果` : ""} + ${recommendedAction?.action ? `${escapeHtml(recommendedAction.label || "继续这个任务")}` : ""} +
+

${escapeHtml(currentRun.title || currentRun.plan?.goal || "主 Agent 任务")}

diff --git a/web/storyforge-web-v4/tests/workbench-pages.test.mjs b/web/storyforge-web-v4/tests/workbench-pages.test.mjs index c11f53d..7c14183 100644 --- a/web/storyforge-web-v4/tests/workbench-pages.test.mjs +++ b/web/storyforge-web-v4/tests/workbench-pages.test.mjs @@ -594,6 +594,14 @@ test("oneliner runtime shows grouped run health summary above the current run ca assert.match(runtime, /safeArray\(runs\)\.filter\(\(item\) => item\.run_status === "needs_confirmation"\)\.length/); }); +test("oneliner runtime exposes a compact mobile task strip for the current run", () => { + const runtime = extractBetween(APP, "function renderOneLinerRunsHtml()", "function renderOneLinerMessagesHtml()"); + assert.match(runtime, /mobile-only compact-summary-row/); + assert.match(runtime, /mobile-only mobile-flow-focus-card/); + assert.match(runtime, /当前运行/); + assert.match(runtime, /继续这个任务/); +}); + test("opening a main agent run result keeps that run selected in the floating runtime", () => { const resultAction = extractBetween(APP, "function openCurrentOneLinerRunResultAction(runId = \"\")", "function openConfirmOneLinerRunAction(runId = \"\")"); assert.match(resultAction, /appState\.selectedOnelinerRunId = currentRun\.id/);