fix(memory-claudemem): pass last_assistant_message to summarize hook

The summarize hook needs the last assistant message to generate proper
session summaries. Extract it from agent_end event.messages array.
This commit is contained in:
Alex Newman 2026-01-28 23:31:08 -05:00
parent 436656058f
commit d9859fff81

View File

@ -329,12 +329,33 @@ export default function (api: ClawdbotPluginApi) {
}); });
// agent_end → hook claude-code summarize (generate session summary) // agent_end → hook claude-code summarize (generate session summary)
api.on("agent_end", async (_event, ctx) => { api.on("agent_end", async (event, ctx) => {
const contentSessionId = getContentSessionId(ctx.sessionKey); const contentSessionId = getContentSessionId(ctx.sessionKey);
// Extract the last assistant message from the conversation
let lastAssistantMessage = "";
if (Array.isArray(event.messages)) {
for (let i = event.messages.length - 1; i >= 0; i--) {
const msg = event.messages[i] as any;
if (msg?.role === "assistant") {
// Handle different content formats
if (typeof msg.content === "string") {
lastAssistantMessage = msg.content;
} else if (Array.isArray(msg.content)) {
const textParts = msg.content
.filter((c: any) => c.type === "text" && c.text)
.map((c: any) => c.text);
lastAssistantMessage = textParts.join("\n");
}
break;
}
}
}
// Fire-and-forget summary generation // Fire-and-forget summary generation
callHookFireAndForget("summarize", { callHookFireAndForget("summarize", {
session_id: contentSessionId, session_id: contentSessionId,
last_assistant_message: lastAssistantMessage,
cwd: hookCwd, cwd: hookCwd,
}); });
}); });