From a2845a321e6fee65aa3996068c2dc3f1317b9d74 Mon Sep 17 00:00:00 2001 From: kumarabhirup Date: Sat, 21 Feb 2026 11:11:47 -0800 Subject: [PATCH] fix: type JSON.parse results to avoid Object.values unknown entries --- apps/web/app/api/chat/subagent-stream/route.ts | 4 ++-- apps/web/lib/subagent-runs.ts | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/web/app/api/chat/subagent-stream/route.ts b/apps/web/app/api/chat/subagent-stream/route.ts index 75a93999587..a682a17acbd 100644 --- a/apps/web/app/api/chat/subagent-stream/route.ts +++ b/apps/web/app/api/chat/subagent-stream/route.ts @@ -20,9 +20,9 @@ function ensureRegistered(sessionKey: string): boolean { if (!existsSync(registryPath)) {return false;} try { - const raw = JSON.parse(readFileSync(registryPath, "utf-8")); + const raw = JSON.parse(readFileSync(registryPath, "utf-8")) as { runs?: Record> }; const runs = raw?.runs; - if (!runs || typeof runs !== "object") {return false;} + if (!runs) {return false;} for (const entry of Object.values(runs)) { if (entry.childSessionKey === sessionKey) { diff --git a/apps/web/lib/subagent-runs.ts b/apps/web/lib/subagent-runs.ts index 8d226cc85d8..abcd3e65d20 100644 --- a/apps/web/lib/subagent-runs.ts +++ b/apps/web/lib/subagent-runs.ts @@ -184,9 +184,9 @@ function readDiskStatus(sessionKey: string): "running" | "completed" | "error" { const registryPath = join(resolveOpenClawStateDir(), "subagents", "runs.json"); if (!existsSync(registryPath)) {return "running";} try { - const raw = JSON.parse(readFileSync(registryPath, "utf-8")); + const raw = JSON.parse(readFileSync(registryPath, "utf-8")) as { runs?: Record> }; const runs = raw?.runs; - if (!runs || typeof runs !== "object") {return "running";} + if (!runs) {return "running";} for (const entry of Object.values(runs)) { if (entry.childSessionKey === sessionKey) { if (typeof entry.endedAt !== "number") {return "running";} @@ -477,9 +477,9 @@ export function ensureRegisteredFromDisk( if (!existsSync(registryPath)) {return false;} try { - const raw = JSON.parse(readFileSync(registryPath, "utf-8")); + const raw = JSON.parse(readFileSync(registryPath, "utf-8")) as { runs?: Record> }; const runs = raw?.runs; - if (!runs || typeof runs !== "object") {return false;} + if (!runs) {return false;} for (const entry of Object.values(runs)) { if (entry.childSessionKey === sessionKey) {