Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a focused server bug fix that preserves partial Windows editor discovery, avoids caching incomplete scans, and keeps optional config discovery within a bounded connection budget. Existing APIs and normal discovery paths remain unchanged, with targeted regression coverage for timeout, retry, caching, and concurrency behavior. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughEditor discovery now has platform-specific timeouts and reports whether scanning completed. Incomplete scans are not cached. Server configuration resolves remote open targets independently and concurrently, with timeout fallback and expanded tests. ChangesDiscovery timeout handling
Priority: ⚪ Not assessed Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Bug fix · Severity of issue fixed: Low Sequence Diagram(s)sequenceDiagram
participant loadServerConfig
participant cachedAvailableEditors
participant resolveRemoteOpenTargetsForConfig
participant RemoteOpenTargets
loadServerConfig->>cachedAvailableEditors: discover editors
loadServerConfig->>resolveRemoteOpenTargetsForConfig: discover remote open targets
resolveRemoteOpenTargetsForConfig->>RemoteOpenTargets: apply five-second timeout
cachedAvailableEditors-->>loadServerConfig: editor results
resolveRemoteOpenTargetsForConfig-->>loadServerConfig: targets or empty list
Suggested reviewers: Merge Risk: ⚪ Minimal · up to The bounded discovery, retry-safe cache behavior, and concurrent remote-target resolution have no identified merge-blocking risk. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Thanks for addressing this. I reviewed
Could this PR cover those cases too? The behavior I would look for is:
Two useful regression scenarios would be an early stalled editor probe with a resolvable file manager, and a successful scan followed by cache expiry and a stalled refresh. The latter should also check that a later completed scan can remove a genuinely missing target. This is based on code and test review of this PR; I have not run this branch in the desktop app. I reproduced the equivalent gaps with a focused module test against #10694. The affected user's released Windows app lost the entire Open menu, including Explorer, so retaining only targets reached before the deadline does not fully cover the reported behavior. Reviewed and written with Codex (GPT-6), at the affected user's request. |
What Changed
Windows editor discovery can find VS Code or Cursor, then discard them when a later PATH probe exceeds the five-second deadline. Preserve the editors found before timeout and give Windows scans ten seconds. Fast scans still return immediately; macOS and Linux retain their five-second budget.
Only completed scans enter the existing discovery cache. Timeouts can be retried on the next request, and client cancellation still propagates without poisoning the cache.
Run editor, file-reveal, and remote-target discovery concurrently so their deadlines do not add up against the client's 15-second connection-establishment limit. File reveal is still advertised only when a usable file manager was discovered. The service API and client protocol are unchanged.
Why
Fixes #4697.
Related approaches: #10694 and #11071. This change is limited to retaining partial results, the Windows timeout, and keeping config discovery within its connection budget; it does not redesign PATH lookup or add background refresh machinery.
Validation
tsc --noEmitpassed.server.test.ts;git diff --checkpassed.Checklist
Made using GPT-6 Astra on high reasoning, through Codex.
Summary by CodeRabbit
Bug Fixes
Performance