From 302b02922d358bbb0e525208f380e27343c5db57 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 4 Feb 2026 13:21:40 +0000 Subject: [PATCH 1/2] chore(release): 7.34.1-dev.8 [skip ci] --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 05e1daa3..0c1c4b11 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kaitranntt/ccs", - "version": "7.34.1-dev.7", + "version": "7.34.1-dev.8", "description": "Claude Code Switch - Instant profile switching between Claude Sonnet 4.5 and GLM 4.6", "keywords": [ "cli", From 39f77bd9efffd97fb76fbb7bb550bfe25c58e6a7 Mon Sep 17 00:00:00 2001 From: kaitranntt Date: Wed, 4 Feb 2026 10:25:50 -0500 Subject: [PATCH 2/2] fix(cliproxy): use os.homedir() for cross-platform path expansion Replace process.env.HOME with os.homedir() when expanding custom settings paths. On Windows, process.env.HOME is undefined, causing tilde expansion to produce invalid Unix-style paths like '/.ccs/variant.settings.json'. Closes #445 --- src/cliproxy/cliproxy-executor.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/cliproxy/cliproxy-executor.ts b/src/cliproxy/cliproxy-executor.ts index 0d640a8e..a9e0cc73 100644 --- a/src/cliproxy/cliproxy-executor.ts +++ b/src/cliproxy/cliproxy-executor.ts @@ -14,6 +14,7 @@ import { spawn, ChildProcess } from 'child_process'; import * as net from 'net'; +import * as os from 'os'; import { ProgressIndicator } from '../utils/progress-indicator'; import { ok, fail, info, warn } from '../utils/ui'; import { escapeShellArg } from '../utils/shell-executor'; @@ -925,9 +926,7 @@ export async function execClaudeWithCLIProxy( upstreamBaseUrl: postSanitizationBaseUrl, verbose, defaultEffort: 'medium', - traceFilePath: traceEnabled - ? `${process.env.HOME || process.cwd()}/.ccs/codex-reasoning-proxy.log` - : '', + traceFilePath: traceEnabled ? `${os.homedir()}/.ccs/codex-reasoning-proxy.log` : '', modelMap: { defaultModel: envVars.ANTHROPIC_MODEL, opusModel: envVars.ANTHROPIC_DEFAULT_OPUS_MODEL, @@ -1028,7 +1027,7 @@ export async function execClaudeWithCLIProxy( // Get profile settings path for hooks (WebSearch, etc.) // Use custom settings path for CLIProxy variants, otherwise use default provider path const settingsPath = cfg.customSettingsPath - ? cfg.customSettingsPath.replace(/^~/, process.env.HOME || '') + ? cfg.customSettingsPath.replace(/^~/, os.homedir()) : getProviderSettingsPath(provider); let claude: ChildProcess;