Add Windows Chrome side panel and scoped IDE native bridge
This commit is contained in:
1 parent
75afd01b4b
commit
fb6f57cd36
14 files changed
+1018
-1
No files matched your search
+14
-1
@@ -2613,7 +2613,17 @@ def write_json(obj: dict) -> bool:
|
||||
from tui_gateway.event_replay import _stamp_event
|
||||
|
||||
_stamp_event(obj)
|
||||
return t.write(obj)
|
||||
# Desktop and its Chrome companion may view the same running task.
|
||||
# Stamp once, then fan out to each attached viewer exactly once.
|
||||
# Keep ownership for lifecycle/requests; observers do not own work.
|
||||
viewers = list(((_sessions.get(sid) or {}).get("viewers") or {}).keys())
|
||||
delivered = False
|
||||
for viewer in dict.fromkeys([t, *viewers]):
|
||||
try:
|
||||
delivered = viewer.write(obj) or delivered
|
||||
except Exception:
|
||||
logger.debug("Session viewer disconnected during event delivery")
|
||||
return delivered
|
||||
|
||||
from tui_gateway.event_replay import _stamp_event
|
||||
|
||||
@@ -11430,6 +11440,9 @@ def _live_session_payload(
|
||||
if cols is not None:
|
||||
session["cols"] = cols
|
||||
if transport is not None:
|
||||
previous_transport = session.get("transport")
|
||||
if previous_transport is not None and previous_transport is not _detached_ws_transport:
|
||||
session.setdefault("viewers", {})[previous_transport] = time.time()
|
||||
session["transport"] = transport
|
||||
# Track every transport that has shown this session (multi-window:
|
||||
# pop-out windows each resume the same sid). The last viewer
|
||||
|
||||
Reference in new issue
Block a user