fix(keyword-detector): skip keyword detection for background task sessions
Skip all keyword detection for background task sessions to prevent mode injection (e.g., [analyze-mode], [search-mode]) which incorrectly triggers Prometheus planner restrictions on Sisyphus sessions. This aligns with the existing pattern used in: - sisyphus-orchestrator (line 504) - todo-continuation-enforcer (line 303) - session-notification (line 278) Closes #713
This commit is contained in:
@@ -2,7 +2,7 @@ import type { PluginInput } from "@opencode-ai/plugin"
|
||||
import { detectKeywordsWithType, extractPromptText, removeCodeBlocks } from "./detector"
|
||||
import { log } from "../../shared"
|
||||
import { isSystemDirective } from "../../shared/system-directive"
|
||||
import { getMainSessionID, getSessionAgent } from "../../features/claude-code-session-state"
|
||||
import { getMainSessionID, getSessionAgent, subagentSessions } from "../../features/claude-code-session-state"
|
||||
import type { ContextCollector } from "../../features/context-injector"
|
||||
|
||||
export * from "./detector"
|
||||
@@ -37,6 +37,13 @@ export function createKeywordDetectorHook(ctx: PluginInput, collector?: ContextC
|
||||
return
|
||||
}
|
||||
|
||||
// Skip keyword detection for background task sessions to prevent mode injection
|
||||
// (e.g., [analyze-mode]) which incorrectly triggers Prometheus restrictions
|
||||
const isBackgroundTaskSession = subagentSessions.has(input.sessionID)
|
||||
if (isBackgroundTaskSession) {
|
||||
return
|
||||
}
|
||||
|
||||
const mainSessionID = getMainSessionID()
|
||||
const isNonMainSession = mainSessionID && input.sessionID !== mainSessionID
|
||||
|
||||
|
||||
Reference in New Issue
Block a user