From e0f955694dc0813047a66d2f62f004eab9e7ff11 Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Sun, 12 Apr 2026 17:33:11 +0800 Subject: [PATCH] refactor(framework): wrap module execution in Result and report failures via exception handler --- .../partner/framework/agent/interaction/AgentRuntime.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/framework/agent/interaction/AgentRuntime.kt b/Partner-Framework/src/main/java/work/slhaf/partner/framework/agent/interaction/AgentRuntime.kt index aaee6022..17456588 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/framework/agent/interaction/AgentRuntime.kt +++ b/Partner-Framework/src/main/java/work/slhaf/partner/framework/agent/interaction/AgentRuntime.kt @@ -7,11 +7,13 @@ import kotlinx.coroutines.channels.Channel import work.slhaf.partner.framework.agent.config.Config import work.slhaf.partner.framework.agent.config.ConfigRegistration import work.slhaf.partner.framework.agent.config.Configurable +import work.slhaf.partner.framework.agent.exception.ExceptionReporterHandler import work.slhaf.partner.framework.agent.factory.component.abstracts.AbstractAgentModule import work.slhaf.partner.framework.agent.factory.context.AgentContext import work.slhaf.partner.framework.agent.factory.context.ModuleContextData import work.slhaf.partner.framework.agent.interaction.data.InteractionEvent import work.slhaf.partner.framework.agent.interaction.flow.RunningFlowContext +import work.slhaf.partner.framework.agent.support.Result import java.nio.file.Path object AgentRuntime : Configurable, ConfigRegistration { @@ -103,7 +105,8 @@ object AgentRuntime : Configurable, ConfigRegistration { if (runningFlowContext.skippedModules.contains(module.moduleName)) { return@async } - module.execute(runningFlowContext) + Result.runCatching { module.execute(runningFlowContext) } + .onFailure { ExceptionReporterHandler.report(it) } } } jobs.awaitAll()