fix(background-agent): pass query directory to session.get in 4 call-sites (#2937)

resolveSubagentSpawnContext and related lookups called client.session.get
without the query.directory parameter, causing project-scoped sessions
to 404 under newer OpenCode SDK versions. Threaded directory through
SpawnerContext/BackgroundManager so all four call-sites pass it.

🤖 Generated with OhMyOpenCode assistance
https://github.com/code-yeongyu/oh-my-opencode
This commit is contained in:
YeonGyu-Kim
2026-04-12 02:30:01 +09:00
parent d8b9bf1aad
commit 3bfa3bd608
9 changed files with 192 additions and 22 deletions
+4 -2
View File
@@ -103,6 +103,7 @@ export type SessionStatusMap = Record<string, { type: string }>
export async function checkAndInterruptStaleTasks(args: {
tasks: Iterable<BackgroundTask>
client: OpencodeClient
directory?: string
config: BackgroundTaskConfig | undefined
concurrencyManager: ConcurrencyManager
notifyParentSession: (task: BackgroundTask) => Promise<void>
@@ -112,6 +113,7 @@ export async function checkAndInterruptStaleTasks(args: {
const {
tasks,
client,
directory,
config,
concurrencyManager,
notifyParentSession,
@@ -151,7 +153,7 @@ export async function checkAndInterruptStaleTasks(args: {
const effectiveTimeout = sessionGone ? sessionGoneTimeoutMs : messageStalenessMs
if (runtime <= effectiveTimeout) continue
if (sessionGone && await verifySessionExists(client, sessionID)) {
if (sessionGone && await verifySessionExists(client, sessionID, directory)) {
task.consecutiveMissedPolls = 0
continue
}
@@ -189,7 +191,7 @@ export async function checkAndInterruptStaleTasks(args: {
if (timeSinceLastUpdate <= effectiveStaleTimeout) continue
if (task.status !== "running") continue
if (sessionGone && await verifySessionExists(client, sessionID)) {
if (sessionGone && await verifySessionExists(client, sessionID, directory)) {
task.consecutiveMissedPolls = 0
continue
}