fix: refresh app discovery in resident desktop services - #46
Conversation
|
Independent agent review completed for head The reviewer read all six changed files and traced startup, diagnostics/capture-daemon, pure connector, macOS event loop and non-macOS runtime paths. No blocking finding or scope expansion was identified. The review also checked the positive resident regression, the disabled-loop negative control and independent real Electron package evidence: one resident Nova PID and one MCP connection across two closed-CDP and two internally random-CDP launches/exits, with fresh process identities and a final ping from the same service. AX was not granted for discovery. All six CI jobs passed for this exact head in run |
Summary
A resident Nova.app cached its initial
NSWorkspace.runningApplicationsinventory because the main thread was occupied by Tokio and never serviced AppKit notifications. Apps opened afterward returnedno_match, including Electron apps with valid process-owned CDP endpoints.Keep desktop bootstrap and permission diagnostics on the process main thread, then run only the long-lived desktop server future on Tokio while the main thread services CoreFoundation's default/common mode. Pure
mcp,--connectand DevTools-launcher paths still return before desktop bootstrap. The public discovery contract and ownership/deadline checks are unchanged.Closes #44. This is the bounded resident-inventory fix; menu/status UI, connector EOF #40, attachment #41 and packaging #45 remain separate.
Test Plan
no_match.Screenshots
No UI change. Acceptance checks structured app/process/endpoint responses and resident process identity; screenshots do not demonstrate inventory freshness.