You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Claudia fails to continue conversations after the first prompt because it does not properly handle Claude CLI's session ID management. This affects all platforms (Windows, macOS, Linux).
Root Cause
Claude CLI returns a new session ID with every response, but Claudia only stores the initial session ID and never updates it. This causes all subsequent prompts to fail with "No conversation found with session ID" error.
When using --output-format json (the correct format), Claude CLI operates in a sequential request-response mode. Without proper session ID management, it's impossible to maintain conversation context between prompts. Each Claude CLI invocation is stateless - the ONLY way to maintain conversation continuity is through the session ID returned in each response. This makes proper session ID handling absolutely critical for any multi-turn conversation.
Steps to Reproduce
Start a new Claude Code session in Claudia
Send first prompt (e.g., "Hello") - works correctly
Send second prompt (e.g., "What did I just say?") - fails with session not found error
Expected Behavior
Claudia should:
Extract the new session ID from each Claude CLI response
Use the latest session ID for the next --resume command
Successfully continue the conversation
Actual Behavior
Claudia stores only the first session ID in claudeSessionId state
Uses the outdated session ID for all subsequent prompts
Claude CLI returns "No conversation found" error
Technical Details
Problem in ClaudeCodeSession.tsx:
// Line ~314: Only updates if claudeSessionId is nullif(!claudeSessionId){setClaudeSessionId(message.session_id);}// Line ~384: Uses outdated session IDawaitapi.resumeClaudeCode(projectPath,effectiveSession.id,prompt,model);
Claude CLI behavior with --output-format json:
# First prompt
$ claude -p "Hello" --output-format json
# Returns JSON with: {"session_id": "abc-123", ...}# Second prompt MUST use the NEW session ID from previous response
$ claude --resume abc-123 -p "Next question" --output-format json
# Returns JSON with: {"session_id": "def-456", ...} # NEW session ID!# Third prompt MUST use def-456, not abc-123
$ claude --resume def-456 -p "Another question" --output-format json
# Returns JSON with: {"session_id": "ghi-789", ...} # Again, NEW session ID!
Additional Issues Found
Incorrect output format option:
Currently uses: --output-format stream-json
Should be: --output-format json
Note: stream-json is not a valid option for Claude CLI
The current implementation fundamentally breaks the core functionality of Claudia. Since Claude CLI in JSON mode operates as discrete invocations, the session ID is the only mechanism for maintaining conversation state. Without updating the session ID after each response, Claudia cannot:
Continue conversations beyond the first prompt
Maintain context between messages
Provide the interactive experience it promises
This is not a minor bug - it's a fundamental flaw that makes the application unusable for its primary purpose.
Proposed Solution
Always update claudeSessionId with the latest value:
// Remove the conditionsetClaudeSessionId(message.session_id);
Bug Description
Claudia fails to continue conversations after the first prompt because it does not properly handle Claude CLI's session ID management. This affects all platforms (Windows, macOS, Linux).
Root Cause
Claude CLI returns a new session ID with every response, but Claudia only stores the initial session ID and never updates it. This causes all subsequent prompts to fail with "No conversation found with session ID" error.
Critical Issue: Sequential Mode Conversation Continuity
When using
--output-format json(the correct format), Claude CLI operates in a sequential request-response mode. Without proper session ID management, it's impossible to maintain conversation context between prompts. Each Claude CLI invocation is stateless - the ONLY way to maintain conversation continuity is through the session ID returned in each response. This makes proper session ID handling absolutely critical for any multi-turn conversation.Steps to Reproduce
Expected Behavior
Claudia should:
--resumecommandActual Behavior
claudeSessionIdstateTechnical Details
Problem in
ClaudeCodeSession.tsx:Claude CLI behavior with
--output-format json:Additional Issues Found
Incorrect output format option:
--output-format stream-json--output-format jsonstream-jsonis not a valid option for Claude CLIWindows/WSL issues: No proper WSL support for Windows users (related to Windows Support for Claudia - Community Fix Available 4.2 FINAL #78)
Why This Is Critical
The current implementation fundamentally breaks the core functionality of Claudia. Since Claude CLI in JSON mode operates as discrete invocations, the session ID is the only mechanism for maintaining conversation state. Without updating the session ID after each response, Claudia cannot:
This is not a minor bug - it's a fundamental flaw that makes the application unusable for its primary purpose.
Proposed Solution
claudeSessionIdwith the latest value:stream-jsontojsonEnvironment
Related Issues