{"record":{"id":"79b07de7a29e596c","repo":"zed-industries/zed","slug":"not-yet-implemented","errorCode":null,"errorMessage":"not yet implemented","messagePattern":"not yet implemented","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/gpui_windows/src/platform.rs","lineNumber":845,"sourceCode":"            .app_menu_action\n            .set(Some(callback));\n    }\n\n    fn on_will_open_app_menu(&self, callback: Box<dyn FnMut()>) {\n        self.inner\n            .state\n            .callbacks\n            .will_open_app_menu\n            .set(Some(callback));\n    }\n\n    fn on_validate_app_menu_command(&self, callback: Box<dyn FnMut(&dyn Action) -> bool>) {\n        self.inner\n            .state\n            .callbacks\n            .validate_app_menu_command\n            .set(Some(callback));\n    }\n\n    fn app_path(&self) -> Result<PathBuf> {\n        Ok(std::env::current_exe()?)\n    }\n\n    // todo(windows)\n    fn path_for_auxiliary_executable(&self, _name: &str) -> Result<PathBuf> {\n        anyhow::bail!(\"not yet implemented\");\n    }\n\n    fn set_cursor_style(&self, style: CursorStyle) {\n        let hcursor = load_cursor(style);\n        if self.inner.state.current_cursor.get().map(|c| c.0) != hcursor.map(|c| c.0) {\n            self.post_message(\n                WM_GPUI_CURSOR_STYLE_CHANGED,\n                WPARAM(0),\n                LPARAM(hcursor.map_or(0, |c| c.0 as isize)),\n            );","sourceCodeStart":827,"sourceCodeEnd":863,"githubUrl":"https://github.com/zed-industries/zed/blob/9d272b036335401f339d024ea94968fd51016c40/crates/gpui_windows/src/platform.rs#L827-L863","documentation":"The Windows implementation of Platform::path_for_auxiliary_executable is an explicit stub marked todo(windows); it always bails instead of resolving the path of a helper executable installed alongside the app binary. Unlike app_path() (implemented via std::env::current_exe), the auxiliary-executable lookup simply has not been written for the Windows platform.","triggerScenarios":"Calling app.path_for_auxiliary_executable(name) in a Windows build — any feature that needs to spawn a bundled helper/server binary (e.g. an LSP or collab server shipped next to the main .exe) hits the stub immediately.","commonSituations":"Porting a feature that works on macOS/Linux to Windows; calling code that assumes every platform implements the platform trait's full surface; automated tests running on Windows exercising the code path.","solutions":["Implement the method for Windows by resolving siblings of std::env::current_exe() (e.g. current_exe().parent().join(format!(\"{name}.exe\")))","Guard the calling feature off Windows with cfg attributes until the stub is implemented","Surface a clear 'unsupported on Windows' message to the UI instead of letting the raw bail propagate","Check for an existing cross-platform helper (e.g. a paths/util crate) that already resolves auxiliary binaries"],"exampleFix":"// before\n// todo(windows)\nfn path_for_auxiliary_executable(&self, _name: &str) -> Result<PathBuf> {\n    anyhow::bail!(\"not yet implemented\");\n}\n\n// after\nfn path_for_auxiliary_executable(&self, name: &str) -> Result<PathBuf> {\n    let path = std::env::current_exe()?\n        .parent()\n        .ok_or_else(|| anyhow::anyhow!(\"no parent directory for current exe\"))?\n        .join(format!(\"{name}.exe\"));\n    if path.exists() {\n        Ok(path)\n    } else {\n        anyhow::bail!(\"auxiliary executable not found: {path:?}\")\n    }\n}","handlingStrategy":"fallback","validationCode":"fn supports_auxiliary_executables() -> bool {\n    !cfg!(target_os = \"windows\") // until the todo(windows) stub is implemented\n}","typeGuard":"cfg:!target_os = \"windows\"","tryCatchPattern":"match platform.path_for_auxiliary_executable(name) {\n    Ok(path) => spawn(path),\n    Err(e) if e.to_string().contains(\"not yet implemented\") => show_unsupported_message(name),\n    Err(e) => return Err(e),\n}","preventionTips":["Audit Platform trait usages per target OS before enabling a feature on a new platform","Greet new platforms with explicit capability checks rather than letting stubs surface at runtime","Track todo(windows)/todo(linux) markers in platform implementations as a porting checklist"],"tags":["windows","platform","unimplemented","todo","executable-path"],"backgroundTag":"unsupported-platform","analyzedSha":"9d272b036335401f339d024ea94968fd51016c40","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}