You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fixed
The watchlist page no longer throws a React hydration error (#418). The server formats card times in its own zone (UTC in Docker) and the browser in the reader's, so the text differed and React threw the tree away and re-rendered it on the client. The suppressHydrationWarning flag sat one element too high to cover the text. TickerCard now renders the UTC string during hydration and switches to local time right after (useSyncExternalStore).
The API opens one connection pool, not one per racing first request.get_pool() was a bare lru_cache, which runs the factory once for each thread that misses at the same time; each extra pool opened connections and threads, was dropped, and its __del__ later failed with "cannot join current thread". A lock now serializes the first call.
The spot feed stays on xenon when IB Gateway is logged out but Futu is up. xenon v0.15.0 serves US stocks from Futu during RTH (?quotes=futu-first), and its status frame reports providers.futu. The handshake used to fail over to massive on ib_connected: false alone, so an IB logout also dropped Futu. It now fails over only when both are down. Indexes still need IB.