further improvements

This commit is contained in:
Alexis Purslane
2025-12-01 11:35:03 -05:00
parent aa0c31fa1e
commit c9c1f69b82
6 changed files with 35 additions and 5 deletions

View File

@@ -37,6 +37,7 @@ export interface Preferences {
toolOutputExpansion: ExpansionPreference
diagnosticsExpansion: ExpansionPreference
showUsageMetrics: boolean
autoCleanupBlankSessions?: boolean
}
export interface OpenCodeBinary {
@@ -64,6 +65,7 @@ const defaultPreferences: Preferences = {
toolOutputExpansion: "expanded",
diagnosticsExpansion: "expanded",
showUsageMetrics: true,
autoCleanupBlankSessions: true,
}
function deepEqual(a: unknown, b: unknown): boolean {
@@ -98,6 +100,7 @@ function normalizePreferences(pref?: Partial<Preferences> & { agentModelSelectio
toolOutputExpansion: sanitized.toolOutputExpansion ?? defaultPreferences.toolOutputExpansion,
diagnosticsExpansion: sanitized.diagnosticsExpansion ?? defaultPreferences.diagnosticsExpansion,
showUsageMetrics: sanitized.showUsageMetrics ?? defaultPreferences.showUsageMetrics,
autoCleanupBlankSessions: sanitized.autoCleanupBlankSessions ?? defaultPreferences.autoCleanupBlankSessions,
}
}
@@ -285,6 +288,11 @@ function toggleUsageMetrics(): void {
updatePreferences({ showUsageMetrics: !preferences().showUsageMetrics })
}
function toggleAutoCleanupBlankSessions(): void {
console.log("toggle auto cleanup")
updatePreferences({ autoCleanupBlankSessions: !preferences().autoCleanupBlankSessions })
}
function addRecentFolder(path: string): void {
updateConfig((draft) => {
draft.recentFolders = buildRecentFolderList(path, draft.recentFolders)
@@ -386,6 +394,7 @@ interface ConfigContextValue {
updateConfig: typeof updateConfig
toggleShowThinkingBlocks: typeof toggleShowThinkingBlocks
toggleUsageMetrics: typeof toggleUsageMetrics
toggleAutoCleanupBlankSessions: typeof toggleAutoCleanupBlankSessions
setDiffViewMode: typeof setDiffViewMode
setToolOutputExpansion: typeof setToolOutputExpansion
setDiagnosticsExpansion: typeof setDiagnosticsExpansion
@@ -418,6 +427,7 @@ const configContextValue: ConfigContextValue = {
updateConfig,
toggleShowThinkingBlocks,
toggleUsageMetrics,
toggleAutoCleanupBlankSessions,
setDiffViewMode,
setToolOutputExpansion,
setDiagnosticsExpansion,
@@ -473,6 +483,7 @@ export {
updateConfig,
updatePreferences,
toggleShowThinkingBlocks,
toggleAutoCleanupBlankSessions,
toggleUsageMetrics,
recentFolders,
addRecentFolder,

View File

@@ -2,7 +2,7 @@ import type { Session } from "../types/session"
import type { Message } from "../types/message"
import { instances, refreshPermissionsForSession } from "./instances"
import { setAgentModelPreference } from "./preferences"
import { preferences, setAgentModelPreference } from "./preferences"
import { setSessionCompactionState } from "./session-compaction"
import {
activeSessionId,
@@ -231,7 +231,9 @@ async function createSession(instanceId: string, agent?: string): Promise<Sessio
return next
})
await cleanupBlankSessions(instanceId, session.id)
if (preferences().autoCleanupBlankSessions) {
await cleanupBlankSessions(instanceId, session.id)
}
return session
} catch (error) {