feat: comprehensive codebase improvements (cleanup, logic, performance)

Code Cleanups:
- Consolidated PlanTaskStatus and TddPhase types to types.ts
- Standardized node: prefix for Node.js builtin imports
- Fixed timer type to NodeJS.Timeout in respawn-controller

Logic Improvements:
- Fixed AI check race condition with UUID tracking in respawn-controller
- Added comprehensive _isStopped guards in session timer callbacks
- Made RalphTracker reset events non-reentrant via process.nextTick()
- Improved SessionManager mutex pattern reliability

Performance Optimizations:
- Fixed pendingToolCalls memory leak with TTL cleanup in subagent-watcher
- Improved LRUMap.newest() from O(n) to O(1) with _newestKey tracking

Documentation:
- Enhanced README antiflicker section with 6-layer technical details

Version: 0.1441

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
arkon
2026-01-30 19:05:46 +01:00
co-authored by Claude Opus 4.5
parent ea81d94173
commit 20283019f4
17 changed files with 342 additions and 820 deletions
+5 -3
View File
@@ -100,10 +100,12 @@ export class SessionManager extends EventEmitter {
}
// Create a new lock promise that others will wait on
let unlock: () => void;
this._sessionCreationLock = new Promise<void>(resolve => {
// Define unlock first to ensure it's always in scope before promise assignment
let unlock!: () => void;
const lockPromise = new Promise<void>(resolve => {
unlock = resolve;
});
this._sessionCreationLock = lockPromise;
try {
const config = this.store.getConfig();
@@ -152,7 +154,7 @@ export class SessionManager extends EventEmitter {
} finally {
// Release the lock so other createSession calls can proceed
this._sessionCreationLock = null;
unlock!();
unlock();
}
}