Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: styly-dev/STYLY-NetSync
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.10.1
Choose a base ref
...
head repository: styly-dev/STYLY-NetSync
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.10.2
Choose a head ref
  • 20 commits
  • 41 files changed
  • 9 contributors

Commits on Mar 8, 2026

  1. 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>
    4 people authored Mar 8, 2026
    Configuration menu
    Copy the full SHA
    dbd4e3a View commit details
    Browse the repository at this point in the history

Commits on Mar 9, 2026

  1. 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>
    3 people authored Mar 9, 2026
    Configuration menu
    Copy the full SHA
    b4164bc View commit details
    Browse the repository at this point in the history

Commits on Mar 11, 2026

  1. 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>
    hacha and claude committed Mar 11, 2026
    Configuration menu
    Copy the full SHA
    63842e4 View commit details
    Browse the repository at this point in the history

Commits on Mar 13, 2026

  1. Merge pull request #367 from styly-dev/fix/readme-broken-link

    fix: correct broken GitHub link in server README
    from2001 authored Mar 13, 2026
    Configuration menu
    Copy the full SHA
    a3a8993 View commit details
    Browse the repository at this point in the history
  2. 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>
    3 people authored Mar 13, 2026
    Configuration menu
    Copy the full SHA
    af55bea View commit details
    Browse the repository at this point in the history

Commits on Mar 14, 2026

  1. 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
    from2001 authored Mar 14, 2026
    Configuration menu
    Copy the full SHA
    5f7efe9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3f10e74 View commit details
    Browse the repository at this point in the history
  3. Upgrade Unity version to 6000.0.70f1 (#371)

    * fix: update editor version to 6000.0.70f1 in ProjectVersion.txt
    
    * Update setting files
    from2001 authored Mar 14, 2026
    Configuration menu
    Copy the full SHA
    0b45737 View commit details
    Browse the repository at this point in the history
  4. 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>
    4 people authored Mar 14, 2026
    Configuration menu
    Copy the full SHA
    f5ed073 View commit details
    Browse the repository at this point in the history
  5. 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
    from2001 authored Mar 14, 2026
    Configuration menu
    Copy the full SHA
    916aea2 View commit details
    Browse the repository at this point in the history
  6. 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>
    3 people authored Mar 14, 2026
    Configuration menu
    Copy the full SHA
    83bae1d View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    30fabed View commit details
    Browse the repository at this point in the history
  8. 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>
    from2001 and claude authored Mar 14, 2026
    Configuration menu
    Copy the full SHA
    0943ac2 View commit details
    Browse the repository at this point in the history
  9. 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
    from2001 authored Mar 14, 2026
    Configuration menu
    Copy the full SHA
    1a19cb1 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    5844022 View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2026

  1. fix(connection_manager): simplify ZeroMQ connect address handling by …

    …removing source-NIC binding logic (#380)
    from2001 authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    fb0f81b View commit details
    Browse the repository at this point in the history

Commits on Mar 18, 2026

  1. 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>
    3 people authored Mar 18, 2026
    Configuration menu
    Copy the full SHA
    dc6a55f View commit details
    Browse the repository at this point in the history

Commits on Mar 19, 2026

  1. Configuration menu
    Copy the full SHA
    bdeaa88 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    622399b View commit details
    Browse the repository at this point in the history
  3. chore: bump version to 0.10.2

    - 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)
    github-actions[bot] committed Mar 19, 2026
    Configuration menu
    Copy the full SHA
    951785a View commit details
    Browse the repository at this point in the history
Loading