Files
1jehuang--jcode/scripts/debug_socket_test.sh
1jehuang f5743008ef Unify standalone and client TUI code
- Add TuiState trait for shared UI rendering interface
- Add run_remote() method to App for client mode
- Create RemoteConnection in backend.rs for server communication
- Add debug socket event broadcasting for state comparison
- Fix standalone ToolUseStart to update status and streaming_tool_calls
- Fix standalone ToolResult to update display immediately (not batched)
- Deprecate ClientApp (use App::new_for_remote().run_remote() instead)
- Add debug_socket_test.sh script for testing

Both standalone and client now use the same App struct and UI code,
just with different backends (local vs remote server).
2026-01-14 17:11:58 -08:00

49 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# Test script to capture and analyze debug socket events
# Usage: ./scripts/debug_socket_test.sh [capture|compare]
DEBUG_SOCKET="${XDG_RUNTIME_DIR:-/tmp}/jcode-debug.sock"
CAPTURE_FILE="/tmp/jcode_debug_capture.jsonl"
case "${1:-capture}" in
capture)
echo "Connecting to debug socket: $DEBUG_SOCKET"
echo "Saving events to: $CAPTURE_FILE"
echo "Press Ctrl+C to stop"
echo "---"
nc -U "$DEBUG_SOCKET" | tee "$CAPTURE_FILE" | jq -c '.'
;;
snapshot)
echo "Getting state snapshot from debug socket..."
# Connect and get just the first message (snapshot)
timeout 1 nc -U "$DEBUG_SOCKET" | head -1 | jq '.'
;;
watch)
echo "Watching debug socket events (pretty print)..."
nc -U "$DEBUG_SOCKET" | jq '.'
;;
analyze)
if [ -f "$CAPTURE_FILE" ]; then
echo "Analyzing captured events..."
echo ""
echo "Event types:"
jq -r '.type' "$CAPTURE_FILE" | sort | uniq -c | sort -rn
echo ""
echo "Total events: $(wc -l < "$CAPTURE_FILE")"
else
echo "No capture file found. Run 'capture' first."
fi
;;
*)
echo "Usage: $0 [capture|snapshot|watch|analyze]"
echo " capture - Capture events to file and display"
echo " snapshot - Get initial state snapshot"
echo " watch - Watch events in real-time (pretty)"
echo " analyze - Analyze captured events"
;;
esac