A React Native app for the ultimate thinking partner.

fix: keep reasoning visible throughout streaming lifecycle

Fixed issue where reasoning block disappeared when assistant message
started streaming, then reappeared after stream completion.

Root cause:
- Reasoning display was conditional on !currentStream.assistantMessage
- When assistant message started, entire reasoning block disappeared
- This made reasoning flash in and out during streaming

Solution:
- Separate status indicator logic from content display
- Status '(co is thinking)' only shows when reasoning but no other content
- Reasoning content always visible once it starts streaming
- Persists through tool calls and assistant message phases

Now the streaming flow is:
1. Reasoning starts: '(co is thinking)' + reasoning content
2. Tool calls appear: reasoning content + tool calls
3. Assistant message: reasoning + tool calls + '(co is saying)' + message
4. After completion: everything shows as finalized

The reasoning content never disappears once it starts streaming.

+9 -7
+9 -7
App.tsx
··· 2160 2160 <Animated.View style={[styles.assistantFullWidthContainer, { minHeight: spacerHeightAnim, opacity: statusFadeAnim }]}> 2161 2161 {/* Streaming Block - show all current stream content */} 2162 2162 2163 - {/* Show thinking indicator and reasoning while reasoning is streaming */} 2163 + {/* Show thinking indicator while reasoning is streaming (no other content yet) */} 2164 2164 {currentStream.reasoning && !currentStream.assistantMessage && currentStream.toolCalls.length === 0 && ( 2165 - <> 2166 - <LiveStatusIndicator status="thinking" /> 2167 - <View style={styles.reasoningStreamingContainer}> 2168 - <Text style={styles.reasoningStreamingText}>{currentStream.reasoning}</Text> 2169 - </View> 2170 - </> 2165 + <LiveStatusIndicator status="thinking" /> 2166 + )} 2167 + 2168 + {/* Show reasoning content if we have it (always visible once it starts) */} 2169 + {currentStream.reasoning && ( 2170 + <View style={styles.reasoningStreamingContainer}> 2171 + <Text style={styles.reasoningStreamingText}>{currentStream.reasoning}</Text> 2172 + </View> 2171 2173 )} 2172 2174 2173 2175 {/* Show tool calls if we have any */}