feat(KB-249): immediate stuck task check on timeout setting change
- Add checkNow() method to StuckTaskDetector for immediate stuck task detection\n- Add comprehensive tests for checkNow() method\n- Wire up settings change handler in dashboard command\n- Update AGENTS.md documentation with immediate check behavior
This commit is contained in:
@@ -56,6 +56,7 @@ export class StuckTaskDetector {
|
||||
start(): void {
|
||||
if (this.interval) return;
|
||||
this.interval = setInterval(() => {
|
||||
stuckLog.log("Running periodic stuck task check (polling)");
|
||||
this.checkStuckTasks().catch((err) => {
|
||||
stuckLog.error("Error checking stuck tasks:", err);
|
||||
});
|
||||
@@ -173,6 +174,16 @@ export class StuckTaskDetector {
|
||||
this.onStuck?.(taskId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check for stuck tasks immediately, outside the normal polling cycle.
|
||||
* Safe to call at any time — will no-op if no tasks are tracked or timeout is disabled.
|
||||
* Logs at debug level to distinguish manual checks from polling.
|
||||
*/
|
||||
async checkNow(): Promise<void> {
|
||||
stuckLog.log("Running immediate stuck task check (triggered manually)");
|
||||
await this.checkStuckTasks();
|
||||
}
|
||||
|
||||
/**
|
||||
* Poll all tracked tasks and kill any that have exceeded the timeout.
|
||||
* Reads `taskStuckTimeoutMs` from settings on each check so changes
|
||||
|
||||
Reference in New Issue
Block a user