refactor: enhance AI Agent publishing process to ensure form is saved before publishing

This commit is contained in:
mlogclub
2026-07-27 23:40:58 +08:00
parent b11b6084cb
commit fd36b68571
2 changed files with 25 additions and 3 deletions
@@ -40,3 +40,21 @@ test("AI Agent config uses one Agent Loop without a runtime mode selector", () =
assert.doesNotMatch(configWorkbenchSource, /管理工作流/)
assert.match(configWorkbenchSource, /写操作(需确认)/)
})
test("publishing an AI Agent saves the current form before publishing", () => {
const publishFunction = configWorkbenchSource.match(
/async function publishAgent\(\) \{([\s\S]*?)\n \}/,
)?.[1]
assert.ok(publishFunction)
assert.match(publishFunction, /const payload = buildPayload\(\)/)
const saveIndex = publishFunction.indexOf(
"await updateAIAgent({ id: agent.id, ...payload })",
)
const publishIndex = publishFunction.indexOf("await publishAIAgent(agent.id)")
assert.ok(saveIndex >= 0)
assert.ok(publishIndex > saveIndex)
assert.match(publishFunction, /Agent 配置已保存并发布/)
})
@@ -412,12 +412,14 @@ export function AIAgentConfigWorkbench({
if (!validateForm()) return
setSaving(true)
try {
const payload = buildPayload()
await updateAIAgent({ id: agent.id, ...payload })
await publishAIAgent(agent.id)
await loadData()
toast.success("Agent 发布")
toast.success("Agent 配置已保存并发布")
onAgentSaved?.()
} catch (error) {
toast.error(error instanceof Error ? error.message : "发布 Agent 失败")
toast.error(error instanceof Error ? error.message : "保存并发布 Agent 失败")
} finally {
setSaving(false)
}
@@ -825,7 +827,9 @@ export function AIAgentConfigWorkbench({
agentPublished ? "bg-emerald-500" : "bg-amber-500",
)}
/>
<span>{agentPublished ? "当前配置已发布" : "保存配置后再发布 Agent"}</span>
<span>
{agentPublished ? "Agent 已发布;再次发布会保存当前配置" : "发布时会先保存当前配置"}
</span>
</div>
<div className="flex items-center gap-2">
<Button type="button" variant="outline" onClick={onCancel}>