da03 commited on
Commit
869b633
·
1 Parent(s): 1fc3555
Files changed (2) hide show
  1. dispatcher.py +10 -1
  2. static/index.html +7 -0
dispatcher.py CHANGED
@@ -755,7 +755,16 @@ class SessionManager:
755
  # Notify client that activity was detected and warnings are reset
756
  if warning_reset:
757
  try:
758
- await session.websocket.send_json({"type": "activity_reset"})
 
 
 
 
 
 
 
 
 
759
  logger.info(f"Activity reset message sent to session {session_id}")
760
  except Exception as e:
761
  logger.error(f"Failed to send activity reset to session {session_id}: {e}")
 
755
  # Notify client that activity was detected and warnings are reset
756
  if warning_reset:
757
  try:
758
+ # Include current session time remaining if session limit is active
759
+ message = {"type": "activity_reset"}
760
+ if session.max_session_time and session.session_limit_start_time:
761
+ elapsed = time.time() - session.session_limit_start_time
762
+ remaining = max(0, session.max_session_time - elapsed)
763
+ if remaining > 0:
764
+ message["session_time_remaining"] = remaining
765
+ message["queue_size"] = len(self.session_queue)
766
+
767
+ await session.websocket.send_json(message)
768
  logger.info(f"Activity reset message sent to session {session_id}")
769
  except Exception as e:
770
  logger.error(f"Failed to send activity reset to session {session_id}: {e}")
static/index.html CHANGED
@@ -279,6 +279,13 @@
279
  } else if (data.type === "activity_reset") {
280
  console.log("Server detected user activity, resetting timeout");
281
  stopTimeoutCountdown();
 
 
 
 
 
 
 
282
  } else if (data.type === "queue_update") {
283
  console.log(`Queue update: Position ${data.position}/${data.total_waiting}, wait: ${data.maximum_wait_seconds.toFixed(1)} seconds`);
284
  const waitSeconds = Math.ceil(data.maximum_wait_seconds);
 
279
  } else if (data.type === "activity_reset") {
280
  console.log("Server detected user activity, resetting timeout");
281
  stopTimeoutCountdown();
282
+
283
+ // If there's still a session time limit active, restore that countdown
284
+ if (data.session_time_remaining && data.session_time_remaining > 0) {
285
+ console.log(`Restoring session countdown: ${data.session_time_remaining} seconds remaining`);
286
+ setTimeoutMessage(`⏰ Other users waiting. Time remaining: <span id="timeoutCountdown">${Math.ceil(data.session_time_remaining)}</span> seconds.`);
287
+ startTimeoutCountdown(Math.ceil(data.session_time_remaining), true); // true = hide stay connected button
288
+ }
289
  } else if (data.type === "queue_update") {
290
  console.log(`Queue update: Position ${data.position}/${data.total_waiting}, wait: ${data.maximum_wait_seconds.toFixed(1)} seconds`);
291
  const waitSeconds = Math.ceil(data.maximum_wait_seconds);