perf: batch and throttle IPC app output to prevent log flooding (#3035)
## Summary
- Buffer stdout/stderr messages from child processes and flush them
every 100ms as a single batched IPC event (`app:output-batch`), reducing
IPC traffic, array allocations, and React re-renders when apps emit
high-volume logs
- Keep `input-requested` messages on the immediate `app:output` channel
for responsive UX
- Renderer processes batched events with a single `setConsoleEntries`
state update instead of one per message
## Test plan
- [ ] Run an app that emits high-volume logs (e.g., `console.log` in a
loop) and verify the UI remains responsive
- [ ] Verify app console still shows all log output correctly
- [ ] Verify interactive prompts (y/n) still appear immediately
- [ ] Verify proxy URL detection and preview panel still work
- [ ] Verify HMR updates still trigger iframe refresh
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- devin-review-badge-begin -->
---
<a href="https://app.devin.ai/review/dyad-sh/dyad/pull/3035"
target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
<img
src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
alt="Open with Devin">
</picture>
</a>
<!-- devin-review-badge-end -->
---------
Co-authored-by:
Claude Opus 4.6 (1M context) <noreply@anthropic.com>
正在显示
请
注册
或者
登录
后发表评论