Root cause: PluginHookAgentContext in before_model_resolve only has agentId, sessionKey, sessionId, workspaceDir, messageProvider. senderId, channelId, input are NOT available in this hook phase. The plugin was reading ctx.senderId (undefined) -> inHumanList=false for ALL Discord sessions -> shouldUseNoReply=true -> all silenced. Fix: use event.prompt which contains the full user message including the 'Conversation info (untrusted metadata)' JSON block, and extract sender_id from there. Same fix applied to before_prompt_build.
19 KiB
19 KiB