A React Native app for the ultimate thinking partner.

feat: make reasoning blocks expanded by default

Reasoning blocks are now automatically expanded when messages load,
making the agent's thought process immediately visible without
requiring users to click to expand.

Changes:
- Add useEffect that watches messages array
- Filter messages with reasoning content
- Automatically add their IDs to expandedReasoning Set
- Users can still collapse reasoning blocks manually if desired
- Collapsed state is preserved until messages reload

This improves transparency by showing reasoning by default while
still allowing users to collapse blocks they don't want to see.

+15
+15
App.tsx
··· 1292 1292 const [expandedCompaction, setExpandedCompaction] = useState<Set<string>>(new Set()); 1293 1293 const [expandedToolReturns, setExpandedToolReturns] = useState<Set<string>>(new Set()); 1294 1294 1295 + // Auto-expand reasoning blocks by default 1296 + useEffect(() => { 1297 + const reasoningMessageIds = messages 1298 + .filter(msg => msg.reasoning && msg.reasoning.trim().length > 0) 1299 + .map(msg => msg.id); 1300 + 1301 + if (reasoningMessageIds.length > 0) { 1302 + setExpandedReasoning(prev => { 1303 + const next = new Set(prev); 1304 + reasoningMessageIds.forEach(id => next.add(id)); 1305 + return next; 1306 + }); 1307 + } 1308 + }, [messages]); 1309 + 1295 1310 // Animate sidebar 1296 1311 useEffect(() => { 1297 1312 Animated.timing(sidebarAnimRef, {