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:
parent
436656058f
commit
d9859fff81
@ -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,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user