Spaces:
Runtime error
Runtime error
da03
commited on
Commit
·
869b633
1
Parent(s):
1fc3555
- dispatcher.py +10 -1
- 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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);
|