fix: use ACP protocol stopReason for proper agent completion detection
Replace unreliable 2-second timeout heuristic with proper protocol-based completion detection using PromptResponse.stopReason from ACP SDK. Changes: - Capture and handle PromptResponse.stopReason in sendPrompt() - Set agent status based on stop reason: end_turn → completed, refusal → failed, cancelled → ready - Remove 2-second timeout completion heuristic (was causing drift) - Update SessionStateMessageSchema to match AgentInfo null types This ensures agent completion is detected via the protocol spec, not manual polling/timing. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This commit is contained in:
co-authored by
Claude
Happy
parent
d883436395
commit
cba8780bca
@@ -166,14 +166,14 @@ export const SessionStateMessageSchema = z.object({
|
||||
status: z.string(),
|
||||
createdAt: z.date(),
|
||||
type: z.literal("claude"),
|
||||
sessionId: z.string().optional(),
|
||||
error: z.string().optional(),
|
||||
currentModeId: z.string().optional(),
|
||||
sessionId: z.string().nullable(),
|
||||
error: z.string().nullable(),
|
||||
currentModeId: z.string().nullable(),
|
||||
availableModes: z.array(z.object({
|
||||
id: z.string(),
|
||||
name: z.string(),
|
||||
description: z.string().nullable().optional(),
|
||||
})).optional(),
|
||||
})).nullable(),
|
||||
})
|
||||
),
|
||||
commands: z.array(
|
||||
|
||||
Reference in New Issue
Block a user