From 8b30590665c9ad1ba1dd848220a8aad230768186 Mon Sep 17 00:00:00 2001 From: Hannes Rudolph Date: Wed, 26 Nov 2025 14:26:23 -0700 Subject: [PATCH] fix: remove 'as any' type casts in retention feature - Import and use RetentionSetting type instead of 'as any' in extension.ts - Use proper type narrowing for metadata parsing instead of 'as any' --- src/extension.ts | 4 ++-- src/utils/task-history-retention.ts | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index e058378f3e..b37db5123a 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -44,7 +44,7 @@ import { } from "./activate" import { initializeI18n } from "./i18n" import { flushModels, initializeModelCacheRefresh, refreshModels } from "./api/providers/fetchers/modelCache" -import { purgeOldTasks } from "./utils/task-history-retention" +import { purgeOldTasks, RetentionSetting } from "./utils/task-history-retention" /** * Built using https://github.com/microsoft/vscode-webview-ui-toolkit @@ -175,7 +175,7 @@ export async function activate(context: vscode.ExtensionContext) { outputChannel.appendLine(`[Retention] Startup purge: setting=${retention}`) const result = await purgeOldTasks( - retention as any, + retention as RetentionSetting, contextProxy.globalStorageUri.fsPath, (m) => { outputChannel.appendLine(m) diff --git a/src/utils/task-history-retention.ts b/src/utils/task-history-retention.ts index 3c9723dfa1..0d64976e31 100644 --- a/src/utils/task-history-retention.ts +++ b/src/utils/task-history-retention.ts @@ -153,8 +153,10 @@ export async function purgeOldTasks( // First try to get a timestamp from task_metadata.json (if present) try { const raw = await fs.readFile(metadataPath, "utf8") - const meta = JSON.parse(raw) - const maybeTs = Number((meta as any)?.ts) + const meta: unknown = JSON.parse(raw) + const maybeTs = Number( + typeof meta === "object" && meta !== null && "ts" in meta ? (meta as { ts: unknown }).ts : undefined, + ) if (Number.isFinite(maybeTs)) { ts = maybeTs }