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);
|