Commit Graph

407 Commits

Author SHA1 Message Date
ospab 07511debbd CI/CD: release version v0.1.60 2026-05-17 03:32:12 +03:00
ospab 31f3fff187 fix: GUI, JNI SDK, and TUN handler audit fixes
ostp-gui:
- GUI-01: Config parsing now strips JSONC comments via json_comments
  crate, matching CLI behavior. Previously failed on any commented config.
- GUI-02: stop_tunnel now properly aborts the JoinHandle with a 2s
  timeout instead of silently dropping it.

ostp-jni (Android SDK):
- JNI-01: Replaced all .unwrap() calls in JNI functions with safe
  null_mut fallback. JNI functions must never panic.
- JNI-02: Added missing exclusions, multiplex, debug fields to
  Kotlin SDK Config.toNativeJson(). Without these, serde deserialization
  on the native side could fail or use wrong defaults.
- JNI-03: Replaced shutdown_background() with shutdown_timeout(3s)
  to allow proper task cleanup and port unbinding.
- JNI-04: Updated Kotlin log string matchers to match professionalized
  messages (Connection established, TUN tunnel established, etc.)

TUN handlers:
- TUN-01: Windows TUN cleanup guard now resets DNS via netsh. Previously
  the custom DNS server remained configured after disconnect, causing
  complete DNS resolution failure.
- Unified all remaining [ostp-client] log prefixes to [ostp] across
  wintun_handler.rs, linux_handler.rs, and proxy.rs.
2026-05-17 03:31:48 +03:00
ospab 8eb3fc72cb polish: professionalize all user-facing log output and UX
- Unified log prefix to [ostp] across all modules (was [OSTP Core],
  [ostp-server], [ostp-client], [client], [bridge])
- Removed informal/casual phrasing from all user-visible messages
- Startup messages are clean and concise (mode, server, status)
- Error messages are actionable without being alarming
- Essential server logs (client connect/disconnect) always visible
- Essential client logs (connection status, errors) always visible
- TUN tunnel messages consistent across Windows and Linux
- Removed noisy eprintln from UDP reader hot path
- Status format: [ostp] Status: Connected (rtt=12.3ms)
2026-05-17 03:26:15 +03:00
ospab 7424ccc0ff fix: resolve critical ARQ bugs causing Speedtest tunnel drops + docs overhaul
Critical fixes (6):
- protocol.rs: in_flight_count() now counts only retransmittable Data frames,
  not Ack/Nack control frames — eliminates false backpressure under load
- protocol.rs: NACK is now rate-limited to once per 30ms — prevents
  retransmission storm during normal UDP jitter
- protocol.rs: zombie frames exceeding max_retries+4 are evicted each tick —
  prevents unbounded memory growth and stale retransmits
- protocol.rs: Closing state now processes final in-flight packets instead
  of silently dropping them — prevents data loss at session teardown
- server/lib.rs: stream_tx changed from bounded(10000) to unbounded_channel —
  prevents TCP-reader collapse during Speedtest with 50+ streams
- bridge.rs: liveness timeout raised from 30s to 60s — prevents false
  reconnect during heavy Speedtest load

Medium fixes (8):
- protocol.rs: ACK range truncation preserves cumulative range (index 0)
- bridge.rs: Ping now uses send_datagram() for correct TURN wrapping
- dispatcher.rs: replay_cache hard-capped at 100k entries (DoS protection)
- dispatcher.rs: old addr cleaned from addr_to_session on roaming
- server/lib.rs: TCP connect_target() now has 10s timeout
- config.rs: TURN section parsed during hot-reload
- proxy.rs: HTTP header parsing uses 512-byte chunks instead of 1-byte reads
- proxy.rs: stream_id wrap-around skips active IDs to prevent collision
- runner.rs: is_essential_log matches actual log strings from bridge.rs

Other:
- kex.rs: clearly marked as dead PQ stub (not used by protocol)
- README.md + README.ru.md: complete rewrite with architecture diagram
- docs/en/specification.md: updated ARQ section with all new semantics
2026-05-17 03:20:50 +03:00
ospab a9ba941782 CI/CD: release version v0.1.59 2026-05-17 02:56:17 +03:00
ospab 5bd653e9d2 fix: immediately ACK duplicate packets instead of silently dropping them to unblock client retries when ACKs are lost 2026-05-17 02:56:16 +03:00
ospab b670ba9e48 CI/CD: release version v0.1.58 2026-05-17 02:40:54 +03:00
ospab 5c33f08a9b fix: resolve fatal connection halt caused by unrecoverable dropped untracked Ack/Nack frames. Control frames are now saved in sent_history without auto-retransmission to allow targeted Nack recovery. 2026-05-17 02:40:52 +03:00
ospab 9c05f130ac CI/CD: release version v0.1.57 2026-05-17 02:20:01 +03:00
ospab f0a93b4161 perf: heavily tune UDP socket buffers via socket2 to support 10Gbps+ micro-burst resilience 2026-05-17 02:19:59 +03:00
ospab ecba33e6d8 CI/CD: release version v0.1.56 2026-05-17 02:16:14 +03:00
ospab 9c685c8e43 feat: ensure connection and disconnection logs are always visible on the server even without debug mode 2026-05-17 02:16:12 +03:00
ospab 684b50f779 CI/CD: release version v0.1.55 2026-05-17 02:01:42 +03:00
ospab b1dfb335c9 fix: resolve severe server-side head-of-line blocking under high connection concurrency by delegating TCP connection establishments and stream writing to asynchronous spawned tasks 2026-05-17 02:01:40 +03:00
ospab 6a474c8f00 CI/CD: release version v0.1.54 2026-05-17 01:35:25 +03:00
ospab 4cc1f0079c fix: resolve packet drop & connection timeouts under high speed tests by reducing proxy event queue size and expanding sent history / reorder buffers 2026-05-17 01:35:24 +03:00
ospab a46b6eb0b6 CI/CD: release version v0.1.53 2026-05-17 01:30:01 +03:00
ospab bfa858ff93 fix: prevent premature Windows client shutdown due to empty/closed console event streams 2026-05-17 01:30:00 +03:00
ospab ff207112d8 chore: sync Cargo.lock 2026-05-17 01:20:28 +03:00
ospab 039e23d34e CI/CD: release version v0.1.52 2026-05-17 00:21:17 +03:00
ospab e96d440e2d feat: add turn section to default client init template 2026-05-17 00:21:15 +03:00
ospab 2ab8353078 CI/CD: release version v0.1.51 2026-05-16 23:58:10 +03:00
ospab 5c71c6cc9e feat: introduce ciphertext-derived dynamic obfuscation to fully mask the nonce on the wire 2026-05-16 23:58:07 +03:00
ospab 52db766e87 CI/CD: release version v0.1.50 2026-05-16 23:41:08 +03:00
ospab ec35769b9f fix: implement non-blocking unbounded channels and clean stream reset on reconnect 2026-05-16 23:41:04 +03:00
ospab 0c762d6873 CI/CD: release version v0.1.49 2026-05-16 20:55:53 +03:00
ospab e28a698e9b fix: resolve connection instability under load and refine logging 2026-05-16 20:55:11 +03:00
ospab a7280ad38f CI/CD: release version v0.1.48 2026-05-16 19:30:42 +03:00
ospab 5c7a55f9e0 fix: restore server-only guard for link printing in init block 2026-05-16 19:30:15 +03:00
ospab 694e420397 CI/CD: release version v0.1.47 2026-05-16 19:25:57 +03:00
ospab 9982b8b94b fix: correct crate name to json_comments 2026-05-16 19:25:27 +03:00
ospab 5695028736 CI/CD: release version v0.1.46 2026-05-16 19:24:08 +03:00
ospab f419bfa4ee feat: switch to JSON with comments (JSONC) for config; docs: update READMEs 2026-05-16 19:23:17 +03:00
ospab acc5e87878 docs: remove remaining emojis and fix language links 2026-05-16 19:19:33 +03:00
ospab 7e44f57c00 docs: simplify READMEs and add cross-language links 2026-05-16 19:17:04 +03:00
ospab 514bae94cd fix: resolve build errors and remove GUI from main release; docs: improve READMEs 2026-05-16 19:15:04 +03:00
ospab acf81527b6 docs: simplify README and fix keep-alive/config validation 2026-05-16 19:05:09 +03:00
ospab dcb3c1c5e4 CI/CD: release version v0.1.45 2026-05-16 18:21:16 +03:00
ospab 4970b661db chore: implement keep-alive, config comments, validation and CI/CD improvements 2026-05-16 18:20:53 +03:00
ospab 5d092340be CI/CD: release version v0.1.44 2026-05-16 18:13:40 +03:00
ospab a398bf2fdd fix(gui): add dev/build npm scripts that auto-build helper, fix find_helper_exe 2026-05-15 23:12:22 +03:00
ospab b0491e14e3 feat(gui): privileged TUN helper architecture - GUI runs unprivileged, UAC prompt shown only for TUN mode via ostp-tun-helper.exe IPC 2026-05-15 23:08:14 +03:00
ospab 5d9034ca1e feat(gui): force Administrator privileges via manifest and automate WebView2 loopback exemption for dev environment 2026-05-15 22:57:33 +03:00
ospab 57596143fa fix(gui): resolve ERR_CONNECTION_REFUSED by disabling automatic relaunch in Tauri context and surfacing Admin requirement as UI alert 2026-05-15 22:50:30 +03:00
ospab e21e612e5c feat(gui): implement real-time atomic status polling and multi-state UI feedback (Stopped/Handshaking/Established) and update JNI/core layers 2026-05-15 22:37:50 +03:00
ospab c26e63250c fix(win-tun): eliminate console window flashes and early SOCKS5 bind race conditions in tun2socks launcher 2026-05-15 22:37:33 +03:00
ospab c197aea497 CI/CD: release version v0.1.43 2026-05-15 22:33:56 +03:00
ospab 92be766357 CI/CD: release version v0.1.42 2026-05-15 22:25:48 +03:00
ospab 85d3e28c85 feat: implement native public IP autodetection via ip r and interactive cached prompt fallback for server links 2026-05-15 22:25:35 +03:00
ospab 5d590f7d59 CI/CD: release version v0.1.41 2026-05-15 22:18:19 +03:00