Commit Graph

41 Commits

Author SHA1 Message Date
0348ef5d8e Switch to ExpressTurn TURN server for testing
Using Google STUN servers and ExpressTurn relay server to test with the bug fix.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 13:33:38 +01:00
1ac1121793 Fix ICE candidate handling by using addEventListener
Changed from overwriting onicecandidate handlers (which broke the 'this' context) to using addEventListener. This ensures the connection manager's handlers can properly send ICE candidates without context issues.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 13:31:21 +01:00
caedff590f Switch to Metered TURN servers for testing
Temporarily using Metered.ca TURN servers to test WebRTC connectivity while diagnosing issues with custom TURN server relay ports.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 13:18:42 +01:00
d922329437 Add API-level ICE candidate exchange logging
Added logging to track when ICE candidates are sent to and received from the signaling server to help diagnose connection exchange issues.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 12:39:45 +01:00
4c58dee371 Add detailed ICE connection debugging
Added comprehensive logging for ICE gathering state, connection state, and candidate gathering to help diagnose connection issues. Properly chains event handlers to avoid breaking existing connection logic.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 12:34:51 +01:00
e4868c085b Fix DNS lookup errors by using IP address for STUN/TURN servers
Changed from domain names (stun.ronde.vu/turn.ronde.vu) to IP address (57.129.61.67) to resolve browser DNS lookup failures (error 701).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 12:31:07 +01:00
9a424b6015 Add both UDP and TCP transports for TURN server
Updated TURN server configuration to include both UDP and TCP transports for better compatibility and connection reliability.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 12:27:11 +01:00
79030adb09 Update TURN server configuration to use UDP transport
Added ?transport=udp parameter to TURN server URL for improved connectivity.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 12:20:06 +01:00
1f1502940b Update TURN server credentials for ronde.vu 2025-11-14 22:37:10 +01:00
348a732178 Switch to custom STUN/TURN servers at ronde.vu 2025-11-14 22:31:15 +01:00
9e761546e7 Fix TURN server URL - add turn: prefix 2025-11-14 21:22:25 +01:00
f9fb74de53 Switch to Google STUN + expressturn.com TURN server 2025-11-14 21:20:31 +01:00
e5e28c8264 Update metered.ca credentials and ICE server configuration 2025-11-14 21:12:30 +01:00
4021a02f6d Add TURN servers back using a.relay.metered.ca endpoint 2025-11-14 21:09:11 +01:00
73f04bc078 Restore Google STUN servers only (metered.ca DNS lookup failing) 2025-11-14 21:07:37 +01:00
257d8f264a Remove Google STUN servers, use only metered.ca ICE servers 2025-11-14 21:01:28 +01:00
83df6aeee3 Add Google STUN servers for reliability
Added Google STUN servers alongside metered.ca for maximum
reliability. Google STUN always works and ensures basic NAT
traversal even if TURN servers fail.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 20:44:06 +01:00
c3045778eb Use metered.ca ICE servers with all transport options
- metered.ca STUN server
- TURN on port 80 (UDP and TCP)
- TURN on port 443 (UDP)
- TURNS on port 443 (TCP/TLS)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 20:37:33 +01:00
dc856b7abf Fix: Restore Google STUN servers
The connection was failing because Google STUN servers were removed.
Restored to the working configuration with Google STUN + metered.ca TURN.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 20:27:40 +01:00
ed8709c6f6 Update ICE servers to metered.ca with full transport options
- Removed Google STUN servers
- Added metered.ca STUN server
- Added TCP transport for TURN servers
- Added TURNS (secure) on port 443

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 20:23:14 +01:00
b27ab02552 Add metered.ca TURN server on port 80
Added additional TURN server endpoint for better connectivity.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 20:11:45 +01:00
2dc4c711e3 Update ICE servers to use metered.ca TURN
Switched to single metered.ca TURN server on port 443.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 20:00:28 +01:00
b8637ed8ad Update ICE servers to use expressturn.com
Switched from metered.ca to expressturn.com TURN server
to avoid 701 host lookup errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 19:57:09 +01:00
94b2849971 Fix: Add cleanup on component unmount
- Close all connections when component unmounts
- Prevents polling timers from running after unmount
- Better resource cleanup

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 19:48:23 +01:00
65f4aaffe0 Fix authentication check and credential validation
- Add authentication check before allowing peer discovery
- Validate stored credentials have required fields (peerId, secret)
- Remove invalid/corrupted credentials from localStorage
- Show clear error message when trying to discover without auth

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 19:05:44 +01:00
e1c8c25ea8 Add TURN servers back for restrictive NAT support
- Re-add metered.ca TURN servers on ports 80 and 443
- Keep Google STUN servers for NAT detection
- Enables connections through restrictive firewalls

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 19:01:59 +01:00
600d6308b9 Update API URL to api.ronde.vu and simplify ICE config
- Change API URL from rondevu.xtrdev.workers.dev to api.ronde.vu
- Remove TURN servers, use only Google STUN (eliminate errors)
- Update README with correct API URL

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 18:54:51 +01:00
adc363fed0 Simplify TURN server configuration
- Remove duplicate TURN entries to avoid "5+ servers" warning
- Keep only essential STUN and TURN servers
- Use standard ports (80 and 443)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 18:39:30 +01:00
d677f36eeb Add connection manager, toast notifications, and TURN server
- Replace manual RTCPeerConnection handling with RondevuConnection class
- Add react-hot-toast for better UX (replace browser alerts)
- Add TURN server configuration (relay1.expressturn.com:3480)
- Update README to reflect current demo structure
- Link local client library for latest features

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 18:30:18 +01:00
eaf474a984 Simplify demo: remove topics UI, ID-only connections
- Remove topic selection and peer discovery UI
- Remove MethodSelector and TopicsList components
- Simplify ConnectionForm to just take a connection ID
- Update to use @xtr-dev/rondevu-client@0.3.2
- Demo version: 0.3.2

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-12 23:18:05 +01:00
1bbce9295d Add topics list with pagination and update to api.ronde.vu
Features:
- Added TopicsList component with pagination support
- Shows active topics with peer counts
- Pagination controls (Previous/Next)
- Refresh button to reload topics
- Modal UI with proper styling
- Floating "View Topics" button on main screens

Changes:
- Updated API URL from rondevu.xtrdev.workers.dev to api.ronde.vu
- Added TopicsList component with pagination UI
- Added modal overlay and styles
- Integrated topics modal into main App

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-12 22:20:37 +01:00
6538b5a18f Update demo to use integrated RondevuAPI
- Removed separate RondevuClient instantiation
- Updated to use rdv.api for all API calls (getVersion, listTopics, listSessions)
- Updated README example to show integrated API usage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-12 21:52:20 +01:00
4f136eb3cb Add version display in footer
- Add version state tracking for demo and server versions
- Create loadVersions() function to fetch server version via API
- Update footer to display both demo version and server version
- Update vite.config.js to inject git commit hash as VITE_VERSION

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 11:35:05 +01:00
b42fc95c61 Change connection ID generation to exclude ambiguous characters
- Replace hex-based generation with a new random alphanumeric system
- Generated IDs exclude visually similar characters (e.g., 'o', '0', 'I', 'l')
2025-11-08 11:09:20 +01:00
85faa4ac90 Change connection ID to 6-digit hex string
Generate random 6-digit hex IDs (e.g., A3F2C1) instead of
timestamp-based IDs (e.g., conn-1762596287521) for cleaner,
more user-friendly connection codes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 11:05:51 +01:00
1d7123641d Fix create/join buttons not advancing to next step
Added step advancement logic when selecting create/join action
2025-11-07 22:29:04 +01:00
9f9068e7c7 Refactor app into components and add file upload progress
Components created:
- Header: App header with GitHub links
- ActionSelector: Step 1 - Choose create/join/scan
- MethodSelector: Step 2 - Choose connection method
- ConnectionForm: Step 3 - Enter connection details
- ChatView: Step 4 - Connected chat interface
- Message: Individual message display (text/file)
- QRScanner: QR code scanning component
- QRCodeDisplay: QR code display component
- FileUploadProgress: Progress bar for file uploads

Features:
- Clean component separation with props
- File upload progress bar with percentage
- Cancel upload functionality
- Disabled file button during upload
- Visual progress indicator with gradient
- All logic remains in App.jsx for state management
2025-11-07 22:26:19 +01:00
8e9edb6d79 Fix QR code display and camera selection
- Show QR code while waiting for peer to join (step 3)
- Use connection ID variable directly instead of state
- Prefer back/environment camera for QR scanning
- Add camera selection logging for debugging
2025-11-07 22:15:49 +01:00
5219b79bb5 Add file sharing and QR code features
- Add file sharing with chunked transfer over data channel
- Display file messages with download button
- Add QR code generation for connection sharing
- Add QR scanner for easy connection joining
- Update UI with file button and scan option
- Add responsive CSS styling for new features
2025-11-07 22:12:12 +01:00
6446f21924 Add View source link to demo repository 2025-11-07 21:52:23 +01:00
ae16c58ee2 Initial commit: Modern step-based UI for Rondevu demo
- Step-based flow: Choose action → Choose method → Enter details → Chat
- Modern design with clean header and footer
- GitHub links with icons to client and server repos
- Footer link to ronde.vu
- Three connection methods: Topic, Peer ID, Connection ID
- Real WebRTC peer-to-peer chat
- Mobile-responsive design
- Collapsible activity log

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 21:40:19 +01:00