0.2.3June 5, 2026
Main-thread process safety and agent runtime responsiveness
Process.WaitUntilExit timeouts prevent UI hangs
This release addresses a class of main-thread blocking issues where Process.waitUntilExit() calls across the codebase could hang the UI indefinitely. Every Process.waitUntilExit() call now has a timeout, and blocking process operations are offloaded from the main thread using DispatchQueue.global().sync.
- Added timeoutSeconds to every Process.waitUntilExit() call across 14 files
- Patched AIProviderExecutableLocator, AIProviderInstaller, AIUsageTokenReader, AdminPowerCommandRunning
- Patched AgentEditProcessRunner, AgentVerificationRunner, CodingAgentCommandRunner, MCPRuntimeCommandRunner
- Patched OpenCodeAgentHistory, CodingAgentProcessPatternKiller, FileTreeService, GitProcessRunner, GitWorktreeService
- Offloaded blocking Process work from main thread in 8 services using DispatchQueue.global().sync
Agent runtime availability improved
The KajiAgentRuntimeLocator and KajiAgentStore were hardened to handle runtime unavailability more gracefully, preventing the agent panel from hanging when the runtime process can't be reached.
- Improved graceful degradation when Kaji Agent Runtime is unavailable
- Prevented agent panel hangs on missing runtime
- Bumped Kaji to 0.2.3