feat(atlas): update boulder continuation injector with lineage support
Update continuation injector to work with new lineage detection.
Refine idle event handling for proper subagent session tracking
and agent mismatch detection.
🤖 Generated with assistance of OhMyOpenCode
This commit is contained in:
@@ -9,6 +9,8 @@ import { BOULDER_CONTINUATION_PROMPT } from "./system-reminder-templates"
|
||||
import { resolveRecentPromptContextForSession } from "./recent-model-resolver"
|
||||
import type { SessionState } from "./types"
|
||||
|
||||
export type BoulderContinuationResult = "injected" | "skipped_background_tasks" | "skipped_agent_unavailable" | "failed"
|
||||
|
||||
export async function injectBoulderContinuation(input: {
|
||||
ctx: PluginInput
|
||||
sessionID: string
|
||||
@@ -21,7 +23,7 @@ export async function injectBoulderContinuation(input: {
|
||||
preferredTaskTitle?: string
|
||||
backgroundManager?: BackgroundManager
|
||||
sessionState: SessionState
|
||||
}): Promise<void> {
|
||||
}): Promise<BoulderContinuationResult> {
|
||||
const {
|
||||
ctx,
|
||||
sessionID,
|
||||
@@ -42,7 +44,7 @@ export async function injectBoulderContinuation(input: {
|
||||
|
||||
if (hasRunningBgTasks) {
|
||||
log(`[${HOOK_NAME}] Skipped injection: background tasks running`, { sessionID })
|
||||
return
|
||||
return "skipped_background_tasks"
|
||||
}
|
||||
|
||||
const worktreeContext = worktreePath ? `\n\n[Worktree: ${worktreePath}]` : ""
|
||||
@@ -61,7 +63,7 @@ export async function injectBoulderContinuation(input: {
|
||||
sessionID,
|
||||
agent: continuationAgent ?? agent ?? "unknown",
|
||||
})
|
||||
return
|
||||
return "skipped_agent_unavailable"
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -83,6 +85,7 @@ export async function injectBoulderContinuation(input: {
|
||||
|
||||
sessionState.promptFailureCount = 0
|
||||
log(`[${HOOK_NAME}] Boulder continuation injected`, { sessionID })
|
||||
return "injected"
|
||||
} catch (err) {
|
||||
sessionState.promptFailureCount += 1
|
||||
sessionState.lastFailureAt = Date.now()
|
||||
@@ -91,5 +94,6 @@ export async function injectBoulderContinuation(input: {
|
||||
error: String(err),
|
||||
promptFailureCount: sessionState.promptFailureCount,
|
||||
})
|
||||
return "failed"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user