From 968d5715dd2c1d90b728100f87ed8ba4756086b0 Mon Sep 17 00:00:00 2001 From: kris Date: Sun, 5 Apr 2026 03:35:54 +0800 Subject: [PATCH] chore: clarify integration guidance --- CHANGELOG.md | 5 +++++ web/storyforge-web-v4/assets/app.js | 8 +++++++- web/storyforge-web-v4/tests/workbench-pages.test.mjs | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc0151c..22e11c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -353,3 +353,8 @@ - `创建 Agent / 编辑 Agent` 里的系统提示词占位改成“可先留空,后面随时补充”,减少半成品感。 - `作品与成片`、Agent 执行项默认说明里的“再补”字眼也一起收掉,统一成当前可直接推进的表达。 - 前端回归新增了这批文案断言,避免旧的占位口径再回流到主工作台。 + +### 依赖健康缺配置入口补齐 + +- 依赖健康卡片在“未配置地址”时,管理员可以直接点 `去管理员配置台` 继续配置。 +- 探测地址缺失文案改成“等待配置探测地址”,不再让人误以为系统异常。 diff --git a/web/storyforge-web-v4/assets/app.js b/web/storyforge-web-v4/assets/app.js index 5aaeba6..416a5a0 100644 --- a/web/storyforge-web-v4/assets/app.js +++ b/web/storyforge-web-v4/assets/app.js @@ -3772,6 +3772,12 @@ function getIntegrationCards() { ? `当前通过 fnOS NAS 隧道访问 ${detail.baseUrl || detail.url || "cutvideo"}` : `当前直连 ${detail.baseUrl || detail.url || "cutvideo"}`; } + if (detail.available && !detail.configured && isSuperAdmin()) { + actions = [ + actions, + `去管理员配置台` + ].filter(Boolean).join(""); + } return { key, meta: { @@ -4964,7 +4970,7 @@ function renderIntegrationOverviewPanel(options = {}) {
${escapeHtml(item.note)}
${item.extra ? `
${escapeHtml(item.extra)}
` : ""} -
${escapeHtml(item.key === "live_recorder" ? "仅通过当前租户的后端代理访问" : (item.key === "cutvideo" ? `${getCutvideoIntegrationUrlLabel(item.detail)}:${item.detail.url || item.detail.baseUrl || "未提供探测地址"}` : (item.detail.url || item.detail.baseUrl || "未提供探测地址")))}
+
${escapeHtml(item.key === "live_recorder" ? "仅通过当前租户的后端代理访问" : (item.key === "cutvideo" ? `${getCutvideoIntegrationUrlLabel(item.detail)}:${item.detail.url || item.detail.baseUrl || "等待配置探测地址"}` : (item.detail.url || item.detail.baseUrl || "等待配置探测地址")))}
${item.actions ? `
${item.actions}
` : ""} `).join("")} diff --git a/web/storyforge-web-v4/tests/workbench-pages.test.mjs b/web/storyforge-web-v4/tests/workbench-pages.test.mjs index 5106faf..fd5ba78 100644 --- a/web/storyforge-web-v4/tests/workbench-pages.test.mjs +++ b/web/storyforge-web-v4/tests/workbench-pages.test.mjs @@ -396,6 +396,7 @@ test("workbench copy uses direct live language instead of future-placeholder wor assert.match(APP, /把完成任务写成一条可追踪复盘,可按项目累计/); assert.match(APP, /先绑定执行 Agent,再完善任务目标和方法论/); assert.match(APP, /先看真实作品,再继续整理文档与成片/); + assert.match(APP, /等待配置探测地址/); }); test("discovery and production screens expose mobile focus cards with next-step actions", () => {