Commit Graph

31 Commits (bd9bf2bcee71ce85be9a99fa4f7c33d3f03cc054)

Author SHA1 Message Date
zijiren233 5012b1062d
feat: refresh project onboarding and presentation 2 months ago
zijiren233 913e0e7fb0
feat: expand media providers and playback lifecycle 2 months ago
zijiren233 863044cf6f
feat: bump makefile 3 months ago
zijiren233 c3f0afe665
fix: ci lint 4 months ago
zijiren233 b1bd9079c9
fix: ci lint 4 months ago
zijiren233 7e39ee5225
fix: ci lint 5 months ago
zijiren233 ce4eefc504
fix: ci lint 5 months ago
zijiren233 b0e19f1249
fix: ci lint 5 months ago
zijiren233 7e8bfb54fb
fix: ci lint 5 months ago
zijiren233 870d286f52
fix: ci lint 5 months ago
zijiren233 439b85ea1b
fix: ci lint 5 months ago
zijiren233 f180066c7e
fix: ci lint 5 months ago
zijiren233 c644f9abc2
fix: ci lint 5 months ago
zijiren233 fe8bf50715
fix: ci lint 5 months ago
zijiren233 d9f8040625
fix: ci lint 5 months ago
zijiren233 1be8640639
fix: ci lint 5 months ago
zijiren233 07ae5d76e2
fix: ci lint 5 months ago
zijiren233 ad53c8fabe
fix: ci lint 5 months ago
zijiren233 4be26cc9a3
fix: ci lint 6 months ago
zijiren233 e0c34b330d
feat: more test 6 months ago
zijiren233 f6e7232155
feat: more test 6 months ago
zijiren233 1e05cc48d1
feat: more test 6 months ago
zijiren233 110a031fd3
chore: infra 7 months ago
zijiren233 337f766a05
fix(cache): address P3 cache issues (C-P3-1, C-P3-2, C-P3-3)
- C-P3-1: Update README to mark Redis Streams cache invalidation as completed
- C-P3-2: Document bloom filter organic warm-up strategy in services.rs
- C-P3-3: Replace nanosecond timestamp pseudo-random TTL jitter with rand::rng()

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
7 months ago
zijiren233 529efaf3b6
fix(webrtc): implement P0 fixes for SFU functionality
## P0 Fixes Completed

1. **Update README to reflect actual implementation status**
   - synctv-sfu/README.md: Detailed cluster limitations, implemented features, and known issues
   - README.md: Updated WebRTC SFU status description

2. **Add config validation to block incomplete modes**
   - Block SFU/Hybrid modes in cluster environments (cluster_secret non-empty)
   - Add 4 unit tests to validate config validation logic
   - Tests: test_validate_webrtc_{sfu,hybrid,p2p,signaling_only}_mode_*_cluster

3. **Implement SFU session timeout and cleanup mechanism**
   - Add 5-minute idle timeout (configurable via with_timeout)
   - Background task scans for expired sessions every 60 seconds
   - Update activity timestamps on handle_offer, add_ice_candidate, handle_migration_answer
   - Automatic cleanup of idle sessions with proper peer/room cleanup

4. **Fix STUN server configuration**
   - Add startup warning when enable_builtin_stun=true but stun_external_addr empty
   - Guide users to set stun_external_addr in NAT/K8s environments

## Tests
- All synctv-sfu tests pass (36 tests)
- All config validation tests pass (4 new tests)
- Fixed test_mode_switch_with_hysteresis to expect Migrating state

## Cluster Limitation Documentation
SFU mode explicitly blocked in multi-node deployments because:
- WebSocket connections distributed across nodes
- SFU rooms are not replicated via Redis
- P2P peer migrations fail when peers on different nodes
- No cross-node media forwarding support

Workarounds documented in synctv-sfu/README.md

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
7 months ago
zijiren233 a9c9e08225
chore: infra 7 months ago
zijiren233 5bd5970acd
chore: infra 7 months ago
zijiren233 97144bedef
chore: infra 7 months ago
zijiren233 968e69f89b
chore: infra 7 months ago
zijiren233 023a84dce3
chore: infra 7 months ago
zijiren233 9279d4006e
feat: init rs server 8 months ago