Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a narrowly scoped server bug fix that preserves partial editor-discovery results on timeout without changing the existing timeout value or unrelated discovery paths. The new regression test covers both partial results and retrying an incomplete scan. 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 supports per-call timeouts and returns editors found before timeout. Server configuration calls this API directly. Tests cover partial results, later completion, and file-manager reveal timeouts. ChangesEditor discovery timeout
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to Editor discovery now retains editors found before a timeout, preventing an empty Open menu when later probes stall. The timeout remains bounded and later requests can retry incomplete discovery. Sequence Diagram(s)sequenceDiagram
participant loadServerConfig
participant ExternalLauncher
participant EditorDiscovery
participant EditorProbes
loadServerConfig->>ExternalLauncher: Request editors with CONFIG_DISCOVERY_TIMEOUT
ExternalLauncher->>EditorDiscovery: Start cached discovery
EditorDiscovery->>EditorProbes: Run editor probes
EditorProbes-->>EditorDiscovery: Append discovered editors
EditorDiscovery-->>ExternalLauncher: Return accumulated editors on timeout
ExternalLauncher-->>loadServerConfig: Provide available editors
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Note This comment is posted by Julius' dot Closing for missing verification results. The partial-discovery regression test is present, but the PR provides no focused test command or observed run result, and the current checks contain no test execution. The verification rule requires evidence for the changed behavior. Report the test environment, command, and results showing that a timed-out scan preserves discovered editors and a later scan retries, then request reconsideration. |
|
Sorry, I assumed you'd use CI to confirm yourself. Yes, I verified (again just now) on commit 5e115dd, on Windows x64 (build 26200), Node.js v24.11.0, Vitest v4.1.11. Command: vp test run apps/server/src/process/externalLauncher.test.ts -t "returns editors found before discovery times out"Result: 1 test passed, 22 skipped by the name filter. The test lets the first lookup succeed, stalls subsequent lookups, and advances the test clock through the timeout. It asserts that the discovered editor is retained. It then unblocks discovery and verifies that another call performs fresh filesystem probes and returns more editors, demonstrating that the partial result was not cached. @juliusmarminge Could you reconsider reopening this PR? |
What Changed
Return editors found so far when discovery times out. Timeout recovery now lives in
ExternalLauncher; only completed scans are cached, so subsequent requests can retry incomplete discovery.Why
Editor discovery could find an installed editor, then hit the five-second timeout during a later probe and return an empty list. This caused the Open menu to show “No installed editors found.”
This is especially common on Windows, where file probes are slow. But it could hit anyone with a large PATH.
Checklist
Note
Preserve discovered editors when scanning times out in
externalLauncherUpdates the editor discovery timeout behavior so that a timed-out scan returns editors found before the timeout, rather than degrading to an empty list. Adds a regression test in externalLauncher.test.ts that runs discovery with a one-second timeout, confirms partial results are returned when a later probe blocks indefinitely, and verifies a subsequent uncapped scan finds additional editors.
Macroscope summarized 5e115dd.
Summary by CodeRabbit
Improvements
Bug Fixes