fix: PowerShell env var cleanup on Ctrl+C/crash - #8
Open
hobostay wants to merge 1 commit into
Open
Conversation
The regular launch mode set env vars and cleaned them up after `claude` exits, but if the user presses Ctrl+C or the process crashes, cleanup is skipped and the env vars (including the API key in ANTHROPIC_AUTH_TOKEN) leak into the parent shell session. Wrap in try/finally to match the pattern already used by the remote mode. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
g-roliveira
added a commit
to g-roliveira/deepclaude
that referenced
this pull request
Aug 6, 2026
…parity Summary of fixes and features applied from aattaran/deepclaude issues and PRs, plus original improvements: Model coverage (Issue aattaran#39): - Add claude-fable-5, claude-opus-5, claude-sonnet-5 to MODEL_REMAP - Tier-based _default fallback (fable/opus/sonnet/haiku) so new Claude models degrade predictably instead of silently routing to the wrong backend - Warning log when model is forwarded unmapped Proxy resilience (PR aattaran#18): - proxyRes error handler — upstream TCP reset mid-response no longer crashes the entire proxy process - proxyReq error after headers-sent: destroy response instead of injecting JSON into the SSE stream (which corrupted the parser) Thinking-block continuity (PR aattaran#24): - Drop top-level thinking/context_management on non-Anthropic routes instead of stripping all thinking blocks from history - Fixes DeepSeek 400: "content[].thinking must be passed back" Proxy in normal mode (PR aattaran#9): - Default launch now starts the proxy; cost tracking and live /switch work in all sessions, not just --remote - Use ANTHROPIC_API_KEY instead of ANTHROPIC_AUTH_TOKEN so subscription OAuth tokens are handled correctly Body size limit (PR aattaran#7): - 50 MB cap on /v1/messages request body, returns 413 Forward unknown args to claude (Issue aattaran#25): - Bash: -- separator support for explicit passthrough - PowerShell: ValueFromRemainingArguments captures unknown flags PowerShell parity (PR aattaran#5, aattaran#8): - --switch/-s parameter with backend name normalization - try/finally ensures proxy cleanup on Ctrl+C/crash Model [1m] suffix: - All model names include [1m] token window hint so Claude Code doesn't assume 200k context and auto-compact prematurely Project documentation: - CLAUDE.md with architecture overview, proxy routing, SSE normalization, model remapping, and development conventions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
try/finallyto ensure env var cleanup always runsProblem
The remote mode already used
try/finallyfor env cleanup, but the regular launch mode did not. If the user presses Ctrl+C orclaudecrashes, the cleanup code after& claude @Argsis skipped. This leaks sensitive env vars into the parent shell session, includingANTHROPIC_AUTH_TOKENwhich contains the API key.Test plan
deepclaude.ps1 -b ds, then Ctrl+C → env vars should be cleaned up🤖 Generated with Claude Code