driver removal information finaly!

This commit is contained in:
legop3
2026-07-05 22:45:38 -04:00
parent df22ac6d81
commit b526beb712
18 changed files with 502 additions and 168 deletions
+10 -1
View File
@@ -11,9 +11,18 @@ function stopRover(roverId) {
}
}
function removeDriverCompletely(roverId, socketId) {
function removeDriverCompletely(roverId, socketId, notice = null) {
try {
const assignmentService = require('../assignmentService');
/*
Turn-service removals should explain themselves to the affected browser
when a caller provides notice metadata. Plain forceRelease remains the
fallback for old internal cleanup paths that only need to mutate state.
*/
if (notice && typeof assignmentService.forceReleaseWithNotice === 'function') {
assignmentService.forceReleaseWithNotice(roverId, socketId, notice);
return;
}
assignmentService.forceRelease(roverId, socketId);
} catch (err) {
// best effort; log elsewhere if needed
+6 -1
View File
@@ -290,12 +290,17 @@ function handleIdleTimeout(roverId, expectedDriver) {
const skips = incrementSkip(roverId, expectedDriver);
stopRover(roverId);
if (skips >= MAX_IDLE_SKIPS) {
const removalMessage = `You were removed from ${roverId} after ${skips} idle skips because no driving input was detected during your turns.`;
sendAlert({
color: ALERT_COLOR,
title: 'Driver removed',
message: `${expectedDriver} removed from ${roverId} after ${skips} idle skips`,
});
removeDriverCompletely(roverId, expectedDriver);
removeDriverCompletely(roverId, expectedDriver, {
title: 'Removed for inactivity',
message: removalMessage,
reasonCode: 'idle-removal',
});
return;
}
sendAlert({