mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-03-18 22:33:08 +00:00
Fix dev server hang by reducing log spam and event frequency (#828)
* Changes from fix/dev-server-hang * fix: Address PR #828 review feedback - Reset RAF buffer on context changes (worktree switch, dev-server restart) to prevent stale output from flushing into new sessions - Fix high-frequency WebSocket filter to catch auto-mode:event wrapping (auto_mode_progress is wrapped in auto-mode:event) and add feature:progress - Reorder Vite aliases so explicit jsx-runtime entries aren't shadowed by the broad /^react(\/|$)/ regex (Vite uses first-match-wins) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: Batch dev server logs and fix React module resolution order * feat: Add fallback timer for flushing dev server logs in background tabs --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -923,17 +923,20 @@ export class HttpApiClient implements ElectronAPI {
|
||||
this.ws.onmessage = (event) => {
|
||||
try {
|
||||
const data = JSON.parse(event.data);
|
||||
logger.info(
|
||||
'WebSocket message:',
|
||||
data.type,
|
||||
'hasPayload:',
|
||||
!!data.payload,
|
||||
'callbacksRegistered:',
|
||||
this.eventCallbacks.has(data.type)
|
||||
);
|
||||
// Only log non-high-frequency events to avoid progressive memory growth
|
||||
// from accumulated console entries. High-frequency events (dev-server output,
|
||||
// test runner output, agent progress) fire 10+ times/sec and would generate
|
||||
// thousands of console entries per minute.
|
||||
const isHighFrequency =
|
||||
data.type === 'dev-server:output' ||
|
||||
data.type === 'test-runner:output' ||
|
||||
data.type === 'feature:progress' ||
|
||||
(data.type === 'auto-mode:event' && data.payload?.type === 'auto_mode_progress');
|
||||
if (!isHighFrequency) {
|
||||
logger.info('WebSocket message:', data.type);
|
||||
}
|
||||
const callbacks = this.eventCallbacks.get(data.type);
|
||||
if (callbacks) {
|
||||
logger.info('Dispatching to', callbacks.size, 'callbacks');
|
||||
callbacks.forEach((cb) => cb(data.payload));
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user