Files
chameleon/Assets
adminandClaude Opus 4.8 3e6191ead9 Add timeout to relay session operations
Relay host/join/refresh/sign-in could hang forever: none of the UGS
Sessions 2.2.4 calls accept a CancellationToken, so a stuck op left _busy
true and locked the whole browser UI with no recovery.

Wrap every hangable call in a Timed() helper (Task.WhenAny + Task.Delay,
the only option the API allows) driven by a new connectTimeoutSeconds
inspector field (default 25s, 0 = wait forever). On timeout the status is
reported, _busy is cleared and the event-driven UI recovers immediately.

Guard the two ways a late/partial op can corrupt shared state:
- LeaveIfDisplaced: an aborted CreateSessionAsync keeps running and may
  materialise a ghost host seconds later; leave it, but only when the user
  has no tracked session (_session == null), else it would tear down the
  shared NetworkManager and kill a fresh host.
- Partial-start shutdown: only for connection-owning ops (host/join), so a
  refresh timeout during hosting can't shut down the user's own host.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 20:09:28 +02:00
..
2026-06-28 13:56:58 +02:00
2026-07-01 20:48:45 +02:00
2026-07-01 20:49:09 +02:00
2026-07-01 13:07:16 +02:00
2026-07-01 20:48:45 +02:00