summaryrefslogtreecommitdiffhomepage
path: root/packages/core
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-05-29 18:45:45 +0900
committerAdam Malczewski <[email protected]>2026-05-29 18:45:45 +0900
commitdcbc51e22dcd3d7b5a01d6c3b7b0285efa49bca4 (patch)
tree72e1a635662ed20deaee1f0b01408a5954445b26 /packages/core
parent5b3e1ac64681e233f35e1b4d2230d9988667c37e (diff)
downloaddispatch-dcbc51e22dcd3d7b5a01d6c3b7b0285efa49bca4.tar.gz
dispatch-dcbc51e22dcd3d7b5a01d6c3b7b0285efa49bca4.zip
feat: stop generation button with abort signal plumbing
- Add POST /chat/stop endpoint on API - Thread abortSignal from agent-manager through Agent.run() to streamText - Thread abortSignal option through the Agent.run() signature - Emit status:idle on stopTab() so frontend WS gets the update - Add stopGeneration() store method on frontend tabStore - Add stop button in ChatInput (btn-sm lg:btn-xs for mobile tap target) - Add tests for /chat/stop endpoint - Refactor processMessage to pass abortSignal to agent.run
Diffstat (limited to 'packages/core')
-rw-r--r--packages/core/src/agent/agent.ts6
1 files changed, 5 insertions, 1 deletions
diff --git a/packages/core/src/agent/agent.ts b/packages/core/src/agent/agent.ts
index 4eace0c..82b98df 100644
--- a/packages/core/src/agent/agent.ts
+++ b/packages/core/src/agent/agent.ts
@@ -673,7 +673,10 @@ export class Agent {
async *run(
userMessage: string,
- options?: { reasoningEffort?: "none" | "low" | "medium" | "high" | "max" },
+ options?: {
+ reasoningEffort?: "none" | "low" | "medium" | "high" | "max";
+ abortSignal?: AbortSignal;
+ },
): AsyncGenerator<AgentEvent> {
this.status = "running";
yield { type: "status", status: "running" };
@@ -779,6 +782,7 @@ export class Agent {
model,
messages: coreMessages,
tools,
+ abortSignal: options?.abortSignal,
};
// Encourage tool use on Anthropic. Without an explicit