mirror of
https://github.com/tiennm99/ccs.git
synced 2026-07-17 06:17:09 +00:00
docs(spawn): document claudecode env sanitization behavior
- note delegation compatibility with Claude nested-session guard - document CLAUDECODE sanitization invariant in code standards Refs #588
This commit is contained in:
@@ -193,6 +193,8 @@ Detailed guide: [`docs/cursor-integration.md`](./docs/cursor-integration.md)
|
||||
|
||||
Run multiple terminals with different providers:
|
||||
|
||||
> Delegation compatibility: when CCS spawns child Claude sessions, it strips the `CLAUDECODE` guard variable to avoid nested-session blocking in Claude Code v2.1.39+.
|
||||
|
||||
```bash
|
||||
# Terminal 1: Planning (Claude Pro)
|
||||
ccs work "design the authentication system"
|
||||
@@ -283,6 +285,8 @@ export CCS_CLAUDE_PATH="/path/to/claude" # Unix
|
||||
$env:CCS_CLAUDE_PATH = "D:\Tools\Claude\claude.exe" # Windows
|
||||
```
|
||||
|
||||
CCS sanitizes child Claude spawn environments by stripping `CLAUDECODE` (case-insensitive) to prevent nested-session guard failures during delegation. `CCS_CLAUDE_PATH` is still respected after this sanitization step.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
@@ -429,6 +429,15 @@ if (needsShell) {
|
||||
|
||||
This pattern is used in both `ClaudeAdapter` and `DroidAdapter` to ensure cross-platform consistency.
|
||||
|
||||
For all Claude child-process launches (delegation, adapters, proxies, helper spawners), sanitize env before spawn:
|
||||
|
||||
```typescript
|
||||
const cleanEnv = stripClaudeCodeEnv(mergedEnv); // case-insensitive remove of CLAUDECODE
|
||||
spawn(binaryPath, args, { env: cleanEnv, stdio: 'inherit' });
|
||||
```
|
||||
|
||||
This prevents Claude Code nested-session guard failures when CCS runs inside parent Claude sessions.
|
||||
|
||||
---
|
||||
|
||||
## React Component Standards (UI)
|
||||
|
||||
Reference in New Issue
Block a user