fix(rules): inject end-marker prompt for every non-no-reply discord turn

This commit is contained in:
2026-02-26 01:47:27 +00:00
parent ca96779159
commit 46ea43b3fe
2 changed files with 10 additions and 12 deletions

View File

@@ -21,6 +21,7 @@ export type ChannelPolicy = {
export type Decision = {
shouldUseNoReply: boolean;
shouldInjectEndMarkerPrompt: boolean;
reason: string;
};
@@ -64,12 +65,12 @@ export function evaluateDecision(params: {
const { config } = params;
if (config.enabled === false) {
return { shouldUseNoReply: false, reason: "disabled" };
return { shouldUseNoReply: false, shouldInjectEndMarkerPrompt: false, reason: "disabled" };
}
const channel = (params.channel || "").toLowerCase();
if (config.discordOnly !== false && channel !== "discord") {
return { shouldUseNoReply: false, reason: "non_discord" };
return { shouldUseNoReply: false, shouldInjectEndMarkerPrompt: false, reason: "non_discord" };
}
const policy = resolvePolicy(config, params.channelId, params.channelPolicies);
@@ -87,20 +88,20 @@ export function evaluateDecision(params: {
if (mode === "human-list") {
if (inHumanList) {
return { shouldUseNoReply: false, reason: "human_list_sender" };
return { shouldUseNoReply: false, shouldInjectEndMarkerPrompt: true, reason: "human_list_sender" };
}
if (hasEnd) {
return { shouldUseNoReply: false, reason: `end_symbol:${lastChar}` };
return { shouldUseNoReply: false, shouldInjectEndMarkerPrompt: true, reason: `end_symbol:${lastChar}` };
}
return { shouldUseNoReply: true, reason: "rule_match_no_end_symbol" };
return { shouldUseNoReply: true, shouldInjectEndMarkerPrompt: false, reason: "rule_match_no_end_symbol" };
}
// agent-list mode: listed senders require end symbol; others bypass requirement.
if (!inAgentList) {
return { shouldUseNoReply: false, reason: "non_agent_list_sender" };
return { shouldUseNoReply: false, shouldInjectEndMarkerPrompt: true, reason: "non_agent_list_sender" };
}
if (hasEnd) {
return { shouldUseNoReply: false, reason: `end_symbol:${lastChar}` };
return { shouldUseNoReply: false, shouldInjectEndMarkerPrompt: true, reason: `end_symbol:${lastChar}` };
}
return { shouldUseNoReply: true, reason: "agent_list_missing_end_symbol" };
return { shouldUseNoReply: true, shouldInjectEndMarkerPrompt: false, reason: "agent_list_missing_end_symbol" };
}