-
Notifications
You must be signed in to change notification settings - Fork 10
Comparing changes
Open a pull request
base repository: styly-dev/STYLY-NetSync
base: v0.10.1
head repository: styly-dev/STYLY-NetSync
compare: v0.10.2
- 20 commits
- 41 files changed
- 9 contributors
Commits on Mar 8, 2026
-
fix: search NetSyncManager in all loaded scenes (#363)
* fix: search NetSyncManager in all loaded scenes, not just active scene When multiple scenes are loaded, GetDefaultServerDiscoveryPort() now searches all loaded scenes for NetSyncManager if it's not found in the active scene. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: simplify scene search loop in GetDefaultServerDiscoveryPort (#364) * Initial plan * refactor: simplify GetDefaultServerDiscoveryPort scene search loop Co-authored-by: from2001 <387880+from2001@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: from2001 <387880+from2001@users.noreply.github.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: from2001 <387880+from2001@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for dbd4e3a - Browse repository at this point
Copy the full SHA dbd4e3aView commit details
Commits on Mar 9, 2026
-
feat: add POST /v1/rooms/{roomId}/global-variables endpoint (#360)
* feat: add POST /v1/rooms/{room_id}/global-variables endpoint Add support for updating global variables per room via the FastAPI REST bridge, mirroring the existing client-variables endpoint. - Add GlobalVarStore class for in-memory queued room-level global vars - Add MAX_GLOBAL_VARS = 100 constant (matches server default) - Add RoomBridge.apply_global_now_or_queue / _apply_global / flush_global_vars - Update RoomBridge._loop to flush global vars when connected - Add POST /v1/rooms/{room_id}/global-variables endpoint - Add httpx dev dependency for FastAPI TestClient - Add test_rest_bridge.py with 19 unit/endpoint tests Closes #357 Co-authored-by: Masahiro Yamaguchi <from2001@users.noreply.github.com> * fix: format battery drain rate for better readability * feat: add pop method to GlobalVarStore and update flush_global_vars logic * test: add unit tests for pop method in GlobalVarStore and flush_global_vars logic * docs: update README to enhance REST bridge section and add global variables endpoint details --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Masahiro Yamaguchi <from2001@users.noreply.github.com>Configuration menu - View commit details
-
Copy full SHA for b4164bc - Browse repository at this point
Copy the full SHA b4164bcView commit details
Commits on Mar 11, 2026
-
fix: correct broken GitHub link in server README
Update org name (psychic-vr-lab → styly-dev) and branch (main → develop) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 63842e4 - Browse repository at this point
Copy the full SHA 63842e4View commit details
Commits on Mar 13, 2026
-
Merge pull request #367 from styly-dev/fix/readme-broken-link
fix: correct broken GitHub link in server README
Configuration menu - View commit details
-
Copy full SHA for a3a8993 - Browse repository at this point
Copy the full SHA a3a8993View commit details -
fix: add automatic 1 Hz keepalive heartbeat for stealth Python clients (
#361) * fix: add automatic 1 Hz keepalive heartbeat for stealth Python clients The Python stealth client was disconnecting because no periodic signal was sent to keep the server's 5-second CLIENT_TIMEOUT from expiring. Mirrors Unity's TransformSyncManager architecture: - Add STEALTH_HEARTBEAT_INTERVAL = 1.0 (matches HEARTBEAT_INTERVAL_SECONDS) - send_stealth_handshake() now sets _is_stealth_mode = True and starts the internal heartbeat via _send_stealth_heartbeat() - _maybe_send_stealth_heartbeat() is called each _receive_loop iteration; it re-enqueues a stealth packet whenever the interval elapses - No caller change needed: one send_stealth_handshake() call is enough Also adds test_stealth_heartbeat.py with 11 tests covering the unit-level timer logic and an integration test that verifies the client stays registered past the server timeout with a short CLIENT_TIMEOUT config. Closes #356 Co-authored-by: Masahiro Yamaguchi <from2001@users.noreply.github.com> * fix: ensure stealth mode is activated only after successful heartbeat transmission * fix: prevent client stop call on None client in integration tests --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Masahiro Yamaguchi <from2001@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for af55bea - Browse repository at this point
Copy the full SHA af55beaView commit details
Commits on Mar 14, 2026
-
Support multiple NICs for UDP discovery and connection management (#362)
* feat: support multiple NICs for UDP discovery and connection management * feat: implement support for multiple NICs in UDP discovery and connection management * feat: optimize broadcast address handling in net_sync_manager and improve battery drain rate formatting in client simulator * test: add unit tests for multi-NIC discovery and connection address handling * fix: ensure single callback execution per discovery round in net_sync_manager
Configuration menu - View commit details
-
Copy full SHA for 5f7efe9 - Browse repository at this point
Copy the full SHA 5f7efe9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3f10e74 - Browse repository at this point
Copy the full SHA 3f10e74View commit details -
Upgrade Unity version to 6000.0.70f1 (#371)
* fix: update editor version to 6000.0.70f1 in ProjectVersion.txt * Update setting files
Configuration menu - View commit details
-
Copy full SHA for 0b45737 - Browse repository at this point
Copy the full SHA 0b45737View commit details -
feat: add --dealer-port and --pub-port CLI arguments (#370)
* feat: add --dealer-port and --pub-port CLI arguments Add --dealer-port and --pub-port CLI arguments to styly-netsync-server, consistent with the existing --server-discovery-port argument. CLI arguments take precedence over config file values (CLI > config > defaults). Closes #369 Co-authored-by: Masahiro Yamaguchi <from2001@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * fix: load default configuration early for accurate help text --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Masahiro Yamaguchi <from2001@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for f5ed073 - Browse repository at this point
Copy the full SHA f5ed073View commit details -
Refactor rest port setting (#372)
* feat: add rest_api_port configuration and CLI argument for REST API bridge * feat: organize argument parser into groups and add version flag * feat: update REST API port configuration and add tests for CLI argument overrides
Configuration menu - View commit details
-
Copy full SHA for 916aea2 - Browse repository at this point
Copy the full SHA 916aea2View commit details -
feat(client): add connection loss detection and reconnection (#374)
* feat(client): add connection loss detection and reconnection - Add on_connection_error EventHandler fired when connection is lost - Add receive_timeout parameter (default 30s) for server-silence detection: silence exceeding the threshold triggers reconnect scheduling - Add reconnect_delay parameter (default 5s) for time before reconnect attempt - Add _trigger_reconnect(): resets client-ready state, stops discovery, fires on_connection_error, and schedules socket teardown/recreation - Add _perform_socket_reconnect(): tears down and recreates ZMQ sockets, rebuilds the poller in the receive loop, and auto-restarts discovery if start_discovery() was previously called - Propagate terminal ZMQ errors (ETERM/ENOTSOCK) from SUB/DEALER drain loops to the reconnect flow instead of silently continuing - Store discovery port in start_discovery(); stop_discovery() clears it to prevent auto-restart (matching user intent) - Add reconnect_count to stats dict - Add 4 tests: event handler presence, constructor params, silence timeout triggering on_connection_error, and stats key Closes #366 Co-authored-by: Masahiro Yamaguchi <from2001@users.noreply.github.com> * fix(client): clear stale reconnect state and ensure proper discovery thread handling * test: add test for resource cleanup on stop from connection error listener * fix(client): adjust silence detection logic to prevent false-positive reconnects --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Masahiro Yamaguchi <from2001@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 83bae1d - Browse repository at this point
Copy the full SHA 83bae1dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 30fabed - Browse repository at this point
Copy the full SHA 30fabedView commit details -
fix(net_sync_manager): improve discovery stop handling and auto-conne…
…ct logic (#375) * fix(net_sync_manager): improve discovery stop handling and auto-connect logic * fix(client): address review issues in discovery auto-connect - Add self-join guard in _stop_discovery_internal() to prevent RuntimeError when called from the discovery thread - Only update server/dealer_port/sub_port when not already connected - Retry discovery on start() failure instead of leaving client dead - Add tests for auto-connect, self-join safety, and failure recovery Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 0943ac2 - Browse repository at this point
Copy the full SHA 0943ac2View commit details -
Refactor code review skill (#377)
* Rename code-review-netsync to review-netsync * chore: remove obsolete code-review-netsync skill file * docs: add Unity-Python feature parity guidelines to review-netsync skill
Configuration menu - View commit details
-
Copy full SHA for 1a19cb1 - Browse repository at this point
Copy the full SHA 1a19cb1View commit details -
refactor(server): remove unnecessary log output for dirty rooms and f…
…ile descriptors (#378)
Configuration menu - View commit details
-
Copy full SHA for 5844022 - Browse repository at this point
Copy the full SHA 5844022View commit details
Commits on Mar 17, 2026
-
fix(connection_manager): simplify ZeroMQ connect address handling by …
…removing source-NIC binding logic (#380)
Configuration menu - View commit details
-
Copy full SHA for fb0f81b - Browse repository at this point
Copy the full SHA fb0f81bView commit details
Commits on Mar 18, 2026
-
fix(server): update ROUTER identity on client reconnect (#382)
* fix(server): update ROUTER identity on client reconnect to prevent RPC/NV message loss When a client reconnects before the server timeout (e.g. after a sleep/wake cycle), its DEALER socket is recreated with a new ZMQ identity. The server was not updating the stored identity in the existing-client branch, causing all ROUTER-based control messages (RPC, NetworkVariable sync, device ID mapping) to be sent to the stale identity and silently lost. Fixes #381 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(server): resync NV and ID mapping on client reconnect When a client reconnects (e.g. after sleep/wake) before the server timeout removes it, the identity update alone is not sufficient — the client may have missed NetworkVariable changes and device ID mapping updates during sleep. Detect identity changes as reconnection events and trigger NV full sync and ID mapping re-broadcast to the reconnected client. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(unity): reset handshake and NV state on sleep/wake resume On OnApplicationPause(false), reset _clientNo, _hasInvokedReady, _shouldCheckReady, _shouldSendHandshake, and the NV initial sync flag before calling StartNetworking(). Without this, stale state from the previous session keeps IsReady true while the new connection is still being established, which can cause RPCs to be sent prematurely and NV initial sync to be skipped. This mirrors the same reset logic already used in the connection error handler and room switch paths. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(tests): fix two Windows-specific test failures - test_logging_cli: read log file with explicit utf-8 encoding to avoid cp932 decode errors on Windows - test_timing_monotonic: use >= instead of > for monotonic time comparison, as Windows timer resolution can return equal values for consecutive calls with short sleep intervals Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor(server): unicast NV resync on reconnect and add regression test Address PR #382 review comments: 1. Refactor NV sync to extract payload-building helpers (_build_global_var_sync_payload, _build_client_var_sync_payload) and add _sync_network_variables_to_client() for targeted unicast. On reconnect, only the reconnecting client receives the NV snapshot instead of broadcasting to the entire room. 2. Add test_reconnect_identity.py covering the reconnect scenario: same device_id with new DEALER identity, verifying identity update and NV resync delivery. 3. Rename test_monotonic_time_always_increases to test_monotonic_time_never_decreases with updated docstring/print to match the relaxed >= assertion. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(server): enhance NV cache management on connection loss and sleep/wake events * Revert "fix(server): enhance NV cache management on connection loss and sleep/wake events" This reverts commit 96bd820. --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Masahiro Yamaguchi <from2001@hotmail.com>
Configuration menu - View commit details
-
Copy full SHA for dc6a55f - Browse repository at this point
Copy the full SHA dc6a55fView commit details
Commits on Mar 19, 2026
-
Configuration menu - View commit details
-
Copy full SHA for bdeaa88 - Browse repository at this point
Copy the full SHA bdeaa88View commit details -
Configuration menu - View commit details
-
Copy full SHA for 622399b - Browse repository at this point
Copy the full SHA 622399bView commit details -
- Updated Unity package version in package.json - Updated Unity version.txt file for runtime version retrieval - Updated Python server version in pyproject.toml - Updated version references in .md files (if any)
Configuration menu - View commit details
-
Copy full SHA for 951785a - Browse repository at this point
Copy the full SHA 951785aView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v0.10.1...v0.10.2