Commit Graph
15 Commits
Author SHA1 Message Date
ReTeamSpeak c4113373c8 feat: replace Tauri with iced for native cross-platform GUI
- Create iced-app crate with pure Rust GUI using iced 0.13
- Implement server list, connect form, channel/user panels, messaging
- Implement ServerQuery panel for direct server queries
- Add VoiceEngine in tsaudio for decode/buffer/playback pipeline
- Update CI to build iced binary (no frontend build step needed)
- Remove Tauri dependency from workspace
- 69 tests passing across all crates
2026-05-12 20:35:24 +09:00
ReTeamSpeak c878d74a6a feat: add voice packet handling to session
- Add VoiceData event to SessionEvent (codec, packet_id, audio_data, is_whisper)
- Session detects Voice/VoiceWhisper packets and emits VoiceData events
- Add shared_secret() and key_cache_mut() accessors to Client
- Voice packets bypass command processing for lower latency
- 67 tests passing across all crates
2026-05-12 20:15:56 +09:00
ReTeamSpeak 25af2cb295 feat: implement voice packet parsing, Opus codec, jitter buffer, and cpal playback
Voice packet parsing (tscore/protocol/voice.rs):
- VoicePacket and WhisperPacket types with parse/serialize
- Codec type, sample rate, channel count detection
- Tests for roundtrip and error cases

Opus codec (tsaudio/codec.rs):
- Real Opus encoder/decoder with opus crate (behind feature gate)
- 48kHz mono/stereo support
- Encode/decode with proper error handling

Jitter buffer (tsaudio/buffer.rs):
- Sequence number based reordering
- Adaptive output timing (20ms intervals)
- Packet loss handling with fallback to oldest frame
- Tests for basic and reorder scenarios

cpal playback (tsaudio/playback.rs):
- Default output device detection
- f32 and i16 sample format support
- Ring buffer for smooth playback
- Device listing

AudioFrame enhanced with sequence and codec fields.
2026-05-12 20:08:23 +09:00
ReTeamSpeak d34f5dd952 refactor: handle_data now returns HandleResult with parsed events
- Add CommandEvent enum (InitServer, ChannelList, ClientList, TextMessage, etc.)
- Add HandleResult struct with responses and events
- handle_data returns HandleResult instead of Vec<Vec<u8>>
- Session uses HandleResult for real event emission
- Update socket.rs and tests for new return type
2026-05-12 19:53:22 +09:00
ReTeamSpeak ace2f5deed feat: add session event polling, channel/client list, and text messages
- Add SessionEvent enum with Connected, ChannelList, ClientList, ServerInfo, TextMessage, ClientEntered, ClientLeft, ClientMoved
- Add poll_events, request_channel_list, request_client_list Tauri commands
- Session now parses initserver, channellist, clientlist, notify* commands and emits events
- Frontend polls events every 500ms when connected
- Frontend displays server info, channel list, client list, and text messages
2026-05-12 19:25:02 +09:00
ReTeamSpeak 7a767e9d2e fix: add Tauri template icons for Windows/macOS/Linux builds 2026-05-12 19:12:39 +09:00
ReTeamSpeak a1410b541b ci: revert FORCE_JAVASCRIPT_ACTIONS_TO_NODE24, let v4 actions run on Node.js 20 2026-05-12 18:58:34 +09:00
ReTeamSpeak 364b24bf19 ci: opt into Node.js 24 and fix checkout in opencode workflow 2026-05-12 18:47:36 +09:00
ReTeamSpeak 460ce6bb66 ci: restore full GitHub Actions workflow with v4 actions and multi-OS matrix 2026-05-12 18:43:24 +09:00
ReTeamSpeak 820449001a fix(ci): simplify workflow to Ubuntu-only runners for Gitea Actions
CI/CD / Test (push) Successful in 3m42s
CI/CD / Build Frontend (push) Successful in 13s
CI/CD / Build Desktop (Linux) (push) Successful in 5m9s
CI/CD / Release (push) Has been skipped
2026-05-12 17:51:23 +09:00
ReTeamSpeak 4d8cf99b52 fix(ci): downgrade all actions to v3 for Gitea Actions compatibility
CI/CD / Test (ubuntu-latest) (push) Successful in 4m24s
CI/CD / Build Frontend (push) Successful in 36s
CI/CD / Test (macos-latest) (push) Has been cancelled
CI/CD / Test (windows-latest) (push) Has been cancelled
CI/CD / Build Desktop (linux) (push) Has been cancelled
CI/CD / Build Desktop (macos) (push) Has been cancelled
CI/CD / Build Desktop (windows) (push) Has been cancelled
CI/CD / Release (push) Has been cancelled
2026-05-12 17:45:20 +09:00
ReTeamSpeak 5cbe5783d4 fix(ci): downgrade artifact actions to v3 for Gitea Actions compatibility
CI/CD / Test (ubuntu-latest) (push) Successful in 1m37s
CI/CD / Build Frontend (push) Successful in 20s
CI/CD / Test (windows-latest) (push) Has been cancelled
CI/CD / Build Desktop (linux) (push) Has been cancelled
CI/CD / Build Desktop (macos) (push) Has been cancelled
CI/CD / Build Desktop (windows) (push) Has been cancelled
CI/CD / Test (macos-latest) (push) Has been cancelled
CI/CD / Release (push) Has been cancelled
2026-05-12 17:41:01 +09:00
ReTeamSpeak 3e7cee4893 fix: resolve clippy warnings across all crates
CI/CD / Test (ubuntu-latest) (push) Successful in 1m40s
CI/CD / Build Frontend (push) Failing after 12s
CI/CD / Test (macos-latest) (push) Has been cancelled
CI/CD / Test (windows-latest) (push) Has been cancelled
CI/CD / Build Desktop (linux) (push) Has been cancelled
CI/CD / Build Desktop (macos) (push) Has been cancelled
CI/CD / Build Desktop (windows) (push) Has been cancelled
CI/CD / Release (push) Has been cancelled
- Remove inherent to_string() methods shadowing Display (Command, CommandArgument)
- Fix empty line after doc comment in shared/types.rs
- Use sort_by_key with Reverse instead of sort_by in config.rs
- Remove redundant closures in client.rs
- Fix borrow patterns in ephemeral.rs and keys.rs
- Use abs_diff in resend.rs
- Fix needless Ok/? in tsdb/config.rs
- Allow too_many_arguments for create_message in tsdb/message.rs
- Allow dead_code on placeholder tsaudio structs
2026-05-12 17:35:28 +09:00
ReTeamSpeak 2b3ae9ae15 feat: implement TS3 protocol layer, session management, and ServerQuery client
CI/CD / Test (ubuntu-latest) (push) Successful in 2m3s
CI/CD / Build Frontend (push) Failing after 11s
CI/CD / Test (macos-latest) (push) Has been cancelled
CI/CD / Test (windows-latest) (push) Has been cancelled
CI/CD / Build Desktop (linux) (push) Has been cancelled
CI/CD / Build Desktop (macos) (push) Has been cancelled
CI/CD / Build Desktop (windows) (push) Has been cancelled
CI/CD / Release (push) Has been cancelled
- Add real X25519 ECDH key exchange for initivexpand2 bootstrap
- Add P-256 identity key generation with TeamSpeak tomcrypt format
- Add session event loop with tokio::select! for packet/command handling
- Add ServerQuery TCP client with typed parsing (channels, clients, permissions)
- Add Tauri commands: connect (session-based), join_channel, send_message, disconnect
- Add frontend ServerQuery snapshot panel
- Fix CI: Node 22, rustup setup, npm install, workspace checks
- Add mock UDP handshake tests through initserver
- 54 tests passing across shared, tscore, tsaudio, tsdb
2026-05-12 17:24:02 +09:00
ReTeamSpeak ea08823c97 Initial commit: ReTeamSpeak cross-platform TeamSpeak client
CI/CD / Build Frontend (push) Failing after 11s
CI/CD / Test (macos-latest) (push) Has been cancelled
CI/CD / Test (windows-latest) (push) Has been cancelled
CI/CD / Build Desktop (linux) (push) Has been cancelled
CI/CD / Build Desktop (macos) (push) Has been cancelled
CI/CD / Build Desktop (windows) (push) Has been cancelled
CI/CD / Release (push) Has been cancelled
CI/CD / Test (ubuntu-latest) (push) Failing after 2s
- tscore: Protocol implementation (packets, crypto, connection handshake)
- tsaudio: Audio engine (capture, playback, codec, VAD, jitter buffer)
- tsdb: SQLite database (identities, bookmarks, messages, settings)
- shared: Core types and events
- tauri-app: Tauri v2 desktop application with React frontend
- docs: SRS, SAD, SDD documentation
- CI/CD: GitHub Actions workflow
- 32 unit tests passing
2026-05-12 14:41:54 +09:00