feat: refocus remaining admin governance flows
Some checks failed
StoryForge CI / Baseline checks (push) Has been cancelled
StoryForge CI / Backend tests (push) Has been cancelled
StoryForge CI / Web tests (push) Has been cancelled

This commit is contained in:
kris
2026-04-04 10:50:11 +08:00
parent e910d976f8
commit 6f1e56daca
3 changed files with 14 additions and 0 deletions

View File

@@ -305,3 +305,9 @@
- 用户全局策略、用户平台策略在保存和历史回滚成功后,会自动回到 `我的策略` 对应 tab不再只停留在成功提示里。 - 用户全局策略、用户平台策略在保存和历史回滚成功后,会自动回到 `我的策略` 对应 tab不再只停留在成功提示里。
- 管理员覆盖策略在保存和历史回滚成功后,会自动回到 `管理员配置台 -> 覆盖与审计`,方便连续治理和审计查看。 - 管理员覆盖策略在保存和历史回滚成功后,会自动回到 `管理员配置台 -> 覆盖与审计`,方便连续治理和审计查看。
- 前端回归新增了这三条治理回跳断言,避免后续又退回成“改完策略后自己重新找页面”。 - 前端回归新增了这三条治理回跳断言,避免后续又退回成“改完策略后自己重新找页面”。
### 管理员治理剩余回跳补齐
- 管理员在切换“覆盖目标”后,会自动回到 `管理员配置台 -> 覆盖与审计`,直接进入当前目标的审计区。
- 系统主 Agent 历史回滚、系统平台策略历史回滚完成后,会自动回到 `管理员配置台 -> Agent 治理`,方便连续调整系统默认策略。
- 前端回归新增了这三条管理员治理落点断言,锁住“改完就能继续治理”的交互。

View File

@@ -9411,6 +9411,7 @@ async function openAdminOverrideTargetAction() {
await loadAgentControlSurfaces(getOneLinerProjectId()); await loadAgentControlSurfaces(getOneLinerProjectId());
rememberAction("管理员覆盖目标已更新", `当前目标已切换到 ${formatAdminGovernanceTargetLabel(appState.adminOverrideTarget)}`, "green"); rememberAction("管理员覆盖目标已更新", `当前目标已切换到 ${formatAdminGovernanceTargetLabel(appState.adminOverrideTarget)}`, "green");
renderAll(); renderAll();
focusAdminGovernanceAuditWorkspace("admin-override-audit-anchor");
} }
}); });
} }
@@ -9534,6 +9535,7 @@ async function openSystemMainPolicyHistoryAction(preferredVersionId = "") {
await loadAgentControlSurfaces(getOneLinerProjectId()); await loadAgentControlSurfaces(getOneLinerProjectId());
rememberAction("系统主 Agent 已回滚", `已回滚到版本 ${saved.current_version?.version_no || "所选版本"}`, "green", saved); rememberAction("系统主 Agent 已回滚", `已回滚到版本 ${saved.current_version?.version_no || "所选版本"}`, "green", saved);
renderAll(); renderAll();
focusAdminGovernanceAgentsWorkspace("admin-governance-anchor");
} }
}); });
} }
@@ -9572,6 +9574,7 @@ async function openSystemPlatformPolicyHistoryAction(platform, preferredVersionI
await loadAgentControlSurfaces(getOneLinerProjectId()); await loadAgentControlSurfaces(getOneLinerProjectId());
rememberAction(`${platformLabel(normalizedPlatform)} 系统平台策略已回滚`, `已回滚到版本 ${saved.current_version?.version_no || "所选版本"}`, "green", saved); rememberAction(`${platformLabel(normalizedPlatform)} 系统平台策略已回滚`, `已回滚到版本 ${saved.current_version?.version_no || "所选版本"}`, "green", saved);
renderAll(); renderAll();
focusAdminGovernanceAgentsWorkspace("admin-governance-anchor");
} }
}); });
} }

View File

@@ -709,6 +709,8 @@ test("admin governance actions apply local permission and empty-directory guards
const targetPicker = extractBetween(APP, "async function openAdminOverrideTargetAction()", "function openAdminOverridePolicyAction()"); const targetPicker = extractBetween(APP, "async function openAdminOverrideTargetAction()", "function openAdminOverridePolicyAction()");
const systemMain = extractBetween(APP, "function openSystemMainPolicyAction()", "function openSystemPlatformPolicyAction(platform)"); const systemMain = extractBetween(APP, "function openSystemMainPolicyAction()", "function openSystemPlatformPolicyAction(platform)");
const systemPlatform = extractBetween(APP, "function openSystemPlatformPolicyAction(platform)", "async function openAdminOverrideTargetAction()"); const systemPlatform = extractBetween(APP, "function openSystemPlatformPolicyAction(platform)", "async function openAdminOverrideTargetAction()");
const systemMainHistory = extractBetween(APP, "async function openSystemMainPolicyHistoryAction(preferredVersionId = \"\")", "async function openSystemPlatformPolicyHistoryAction(platform, preferredVersionId = \"\")");
const systemPlatformHistory = extractBetween(APP, "async function openSystemPlatformPolicyHistoryAction(platform, preferredVersionId = \"\")", "function reopenPlatformAgentDetailSoon(platform)");
const actionRegistry = extractBetween(APP, "function openActionRegistryEditAction(actionKey)", "function openTenantQuotaAction()"); const actionRegistry = extractBetween(APP, "function openActionRegistryEditAction(actionKey)", "function openTenantQuotaAction()");
assert.match(helpers, /function ensureAdminGovernanceAccess\(\)/); assert.match(helpers, /function ensureAdminGovernanceAccess\(\)/);
@@ -717,10 +719,13 @@ test("admin governance actions apply local permission and empty-directory guards
assert.match(adminFocusHelper, /setScreen\("admin-workbench"\)/); assert.match(adminFocusHelper, /setScreen\("admin-workbench"\)/);
assert.match(adminFocusHelper, /scrollIntoView/); assert.match(adminFocusHelper, /scrollIntoView/);
assert.match(targetPicker, /hideSubmit:\s*!directoryItems\.length/); assert.match(targetPicker, /hideSubmit:\s*!directoryItems\.length/);
assert.match(targetPicker, /focusAdminGovernanceAuditWorkspace\("admin-override-audit-anchor"\)/);
assert.match(systemMain, /if \(!ensureAdminGovernanceAccess\(\)\) return;/); assert.match(systemMain, /if \(!ensureAdminGovernanceAccess\(\)\) return;/);
assert.match(systemPlatform, /if \(!ensureAdminGovernanceAccess\(\)\) return;/); assert.match(systemPlatform, /if \(!ensureAdminGovernanceAccess\(\)\) return;/);
assert.match(systemMain, /focusAdminGovernanceAgentsWorkspace\("admin-governance-anchor"\)/); assert.match(systemMain, /focusAdminGovernanceAgentsWorkspace\("admin-governance-anchor"\)/);
assert.match(systemPlatform, /focusAdminGovernanceAgentsWorkspace\("admin-governance-anchor"\)/); assert.match(systemPlatform, /focusAdminGovernanceAgentsWorkspace\("admin-governance-anchor"\)/);
assert.match(systemMainHistory, /focusAdminGovernanceAgentsWorkspace\("admin-governance-anchor"\)/);
assert.match(systemPlatformHistory, /focusAdminGovernanceAgentsWorkspace\("admin-governance-anchor"\)/);
assert.match(actionRegistry, /focusAdminGovernanceAgentsWorkspace\("admin-action-registry-anchor"\)/); assert.match(actionRegistry, /focusAdminGovernanceAgentsWorkspace\("admin-action-registry-anchor"\)/);
}); });