sourcegraph / jetbrains

Apache License 2.0
81 stars 25 forks source link

bug: Edit Commands fail with "Cody is disabled on this file" in IntelliJ + WSL #1804

Open rostalgen opened 5 months ago

rostalgen commented 5 months ago

IDE Information

IntelliJ IDEA 2024.1.1 (Ultimate Edition) Build #IU-241.15989.150, built on April 29, 2024 Licensed to Miovision Technologies / Nick Vafiades Subscription is active until September 15, 2024. Runtime version: 17.0.10+1-b1207.14 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Windows 11.0 GC: G1 Young Generation, G1 Old Generation Memory: 4096M Cores: 20 Registry: ide.experimental.ui=true Non-Bundled Plugins: detekt (2.4.1) software.xdev.saveactions (1.2.1) com.gitlab.plugin (2.1.0) com.sourcegraph.jetbrains (6.0.3) Kotlin: 241.15989.150-IJ

Bug Description

Using the IJ Cody Plugin with a project that is located on WSL (Windows Linux Sub-system). I am unable to use the Edit Commands.

image

idea.log snippet: 2024-06-24 12:21:46,039 [1460151] WARN - #com.sourcegraph.cody.edit.FixupService - Ignoring file for inline edits: EditorImpl[file:////wsl.localhost/Ubuntu/home/nvafiades/git/project/path/services/TravelTimeService.kt], policy=null

I have tried Free and Pro.

Additional context

No response

rostalgen commented 5 months ago

Seems to be related to Timeout in IgnoreOracle.kt: 2024-06-24 15:54:53,550 [ 58257] WARN - #com.sourcegraph.cody.agent.CodyAgentClient - Cody by Sourcegraph: █ CompletionLogger:onComplete: {"type":"completion","endpoint":"https://cody-gateway.sourcegraph.com/v1/completions/fireworks","status":"success","duration":436} { "result": { "completion": "nst val policy = policyForUri(editor)\n return policy\n ", "stopReason": "cody-request-aborted", "resolvedModel": "fireworks/accounts/fireworks/models/starcoder-7b" }, "params": { "timeoutMs": 15000, "stopSequences": [ "\n\n", "\n\r\n" ], "maxTokensToSample": 256, "temperature": 0.2, "topK": 0, "messages": [ { "speaker": "human", "text": "<filename>src\\main\\kotlin\\com\\sourcegraph\\cody\\ignore\\IgnoreOracle.kt<fim_prefix>// \nimport com.intellij.openapi.editor.Editor\nimport com.intellij.openapi.fileEditor.FileDocumentManager\nimport com.intellij.openapi.fileEditor.FileEditorManager\nimport com.intellij.openapi.project.Project\nimport com.intellij.util.containers.SLRUMap\nimport com.sourcegraph.cody.agent.CodyAgent\nimport com.sourcegraph.cody.agent.CodyAgentService\nimport com.sourcegraph.cody.agent.protocol.IgnoreTestParams\nimport com.sourcegraph.cody.agent.protocol.ProtocolTextDocument\nimport com.sourcegraph.cody.statusbar.CodyStatusService\nimport java.util.concurrent.CompletableFuture\nimport java.util.concurrent.TimeUnit\nimport java.util.concurrent.TimeoutException\n\nenum class IgnorePolicy(val value: String) {\n IGNORE(\"ignore\"),\n USE(\"use\"),\n}\n\n/**\n * Provides details about whether files and repositories must be ignored as chat context, for\n * autocomplete, etc. per policy.\n */\n@Service(Service.Level.PROJECT)\nclass IgnoreOracle(private val project: Project) {\n\n private val cache = SLRUMap<String, IgnorePolicy>(100, 100)\n @Volatile private var focusedPolicy: IgnorePolicy? = null\n @Volatile private var willFocusUri: String? = null\n private val fileListeners: MutableList<FocusedFileIgnorePolicyListener> = mutableListOf()\n private val policyAwaitTimeoutMs = System.getProperty(\"cody.ignore.policy.timeout\", \"16\").toLong()\n\n init {\n // Synthesize a focus event for the current editor, if any,\n // to fetch and cache ignore state for it.\n runInEdt {\n val editor = FileEditorManager.getInstance(project).selectedTextEditor\n if (willFocusUri == null && editor != null) {\n val uri = ProtocolTextDocument.fromEditor(editor)?.uri\n if (uri != null) {\n focusedFileDidChange(uri)\n }\n }\n }\n }\n\n val isEditingIgnoredFile: Boolean\n get() {\n return focusedPolicy == IgnorePolicy.IGNORE\n }\n\n fun focusedFileDidChange(uri: String) {\n willFocusUri = uri\n ApplicationManager.getApplication().executeOnPooledThread {\n val policy = policyForUri(uri).get()\n if (focusedPolicy != policy && willFocusUri == uri) {\n focusedPolicy = policy\n\n // Update the status bar.\n CodyStatusService.resetApplication(project)\n\n val listeners = synchronized(fileListeners) { fileListeners.toList() }\n for (listener in listeners) {\n listener.focusedFileIgnorePolicyChanged(policy)\n }\n }\n }\n }\n\n fun addListener(listener: FocusedFileIgnorePolicyListener) {\n synchronized(fileListeners) { fileListeners.add(listener) }\n // Invoke the listener with the focused file policy to set initial state.\n listener.focusedFileIgnorePolicyChanged(focusedPolicy ?: IgnorePolicy.USE)\n }\n\n fun removeListener(listener: FocusedFileIgnorePolicyListener) {\n synchronized(fileListeners) { fileListeners.remove(listener) }\n }\n\n /**\n * Notifies the IgnoreOracle that the ignore policy has changed. Called by CodyAgentService's\n * client callbacks.\n */\n fun onIgnoreDidChange() {\n synchronized(cache) { cache.clear() }\n\n // Re-set the focused file URI to update the status bar.\n val uri = willFocusUri\n if (uri != null) {\n focusedFileDidChange(uri)\n }\n }\n\n /** Gets whetherurishould be ignored for autocomplete, context, etc. */\n fun policyForUri(uri: String): CompletableFuture<IgnorePolicy> {\n val completable = CompletableFuture<IgnorePolicy>()\n val result = synchronized(cache) { cache[uri] }\n if (result != null) {\n completable.complete(result)\n return completable\n }\n CodyAgentService.withAgent(project) { agent ->\n policyForUri(uri, agent).thenAccept(completable::complete)\n }\n return completable\n }\n\n /** LikepolicyForUri(String)but reuses the current thread and supplied Agent handle. */\n fun policyForUri(uri: String, agent: CodyAgent): CompletableFuture<IgnorePolicy> {\n return agent.server.ignoreTest(IgnoreTestParams(uri)).thenApply {\n val newPolicy =\n when (it.policy) {\n \"ignore\" -> IgnorePolicy.IGNORE\n \"use\" -> IgnorePolicy.USE\n else -> throw IllegalStateException(\"invalid ignore policy value\")\n }\n synchronized(cache) { cache.put(uri, newPolicy) }\n newPolicy\n }\n }\n\n /** LikepolicyForUri(String)but fetches the uri from the passed Editor's Document. */\n fun policyForEditor(editor: Editor): IgnorePolicy? {\n co<fim_suffix>\n val url = FileDocumentManager.getInstance().getFile(editor.document)?.url ?: return null\n val completable = policyForUri(url)\n return try {\n completable.get(policyAwaitTimeoutMs, TimeUnit.MILLISECONDS)\n } catch (timedOut: TimeoutException) {\n null\n }\n }\n\n /**\n * Gets whetherurishould be ignored for autocomplete, etc. If the result is not available\n * quickly, returns null and invokesorElseon a pooled thread when the result is available.\n */\n @Suppress(\"unused\")\n fun policyForUriOrElse(uri: String, orElse: (policy: IgnorePolicy) -> Unit): IgnorePolicy? {\n val completable = policyForUri(uri)\n try {\n return completable.get(16, TimeUnit.MILLISECONDS)<fim_middle>" } ], "model": "fireworks/starcoder-7b" } } 2024-06-24 15:54:53,763 [ 58470] WARN - #com.sourcegraph.cody.agent.CodyAgentClient - Cody by Sourcegraph: █ CompletionLogger:onComplete: {"type":"completion","endpoint":"https://cody-gateway.sourcegraph.com/v1/completions/fireworks","status":"success","duration":452} { "result": { "completion": "onst val policyAwaitTimeoutMs = 16L", "stopReason": "cody-request-aborted", "resolvedModel": "fireworks/accounts/fireworks/models/starcoder-7b" }, "params": { "timeoutMs": 15000, "stopSequences": [ "\n\n", "\n\r\n" ], "maxTokensToSample": 256, "temperature": 0.2, "topK": 0, "messages": [ { "speaker": "human", "text": "<filename>src\\main\\kotlin\\com\\sourcegraph\\cody\\ignore\\IgnoreOracle.kt<fim_prefix>// \nimport com.intellij.openapi.editor.Editor\nimport com.intellij.openapi.fileEditor.FileDocumentManager\nimport com.intellij.openapi.fileEditor.FileEditorManager\nimport com.intellij.openapi.project.Project\nimport com.intellij.util.containers.SLRUMap\nimport com.sourcegraph.cody.agent.CodyAgent\nimport com.sourcegraph.cody.agent.CodyAgentService\nimport com.sourcegraph.cody.agent.protocol.IgnoreTestParams\nimport com.sourcegraph.cody.agent.protocol.ProtocolTextDocument\nimport com.sourcegraph.cody.statusbar.CodyStatusService\nimport java.util.concurrent.CompletableFuture\nimport java.util.concurrent.TimeUnit\nimport java.util.concurrent.TimeoutException\n\nenum class IgnorePolicy(val value: String) {\n IGNORE(\"ignore\"),\n USE(\"use\"),\n}\n\n/**\n * Provides details about whether files and repositories must be ignored as chat context, for\n * autocomplete, etc. per policy.\n */\n@Service(Service.Level.PROJECT)\nclass IgnoreOracle(private val project: Project) {\n\n private val cache = SLRUMap<String, IgnorePolicy>(100, 100)\n @Volatile private var focusedPolicy: IgnorePolicy? = null\n @Volatile private var willFocusUri: String? = null\n private val fileListeners: MutableList<FocusedFileIgnorePolicyListener> = mutableListOf()\n private val policyAwaitTimeoutMs = System.getProperty(\"cody.ignore.policy.timeout\", \"16\").toLong()\n\n init {\n // Synthesize a focus event for the current editor, if any,\n // to fetch and cache ignore state for it.\n runInEdt {\n val editor = FileEditorManager.getInstance(project).selectedTextEditor\n if (willFocusUri == null && editor != null) {\n val uri = ProtocolTextDocument.fromEditor(editor)?.uri\n if (uri != null) {\n focusedFileDidChange(uri)\n }\n }\n }\n }\n\n val isEditingIgnoredFile: Boolean\n get() {\n return focusedPolicy == IgnorePolicy.IGNORE\n }\n\n fun focusedFileDidChange(uri: String) {\n willFocusUri = uri\n ApplicationManager.getApplication().executeOnPooledThread {\n val policy = policyForUri(uri).get()\n if (focusedPolicy != policy && willFocusUri == uri) {\n focusedPolicy = policy\n\n // Update the status bar.\n CodyStatusService.resetApplication(project)\n\n val listeners = synchronized(fileListeners) { fileListeners.toList() }\n for (listener in listeners) {\n listener.focusedFileIgnorePolicyChanged(policy)\n }\n }\n }\n }\n\n fun addListener(listener: FocusedFileIgnorePolicyListener) {\n synchronized(fileListeners) { fileListeners.add(listener) }\n // Invoke the listener with the focused file policy to set initial state.\n listener.focusedFileIgnorePolicyChanged(focusedPolicy ?: IgnorePolicy.USE)\n }\n\n fun removeListener(listener: FocusedFileIgnorePolicyListener) {\n synchronized(fileListeners) { fileListeners.remove(listener) }\n }\n\n /**\n * Notifies the IgnoreOracle that the ignore policy has changed. Called by CodyAgentService's\n * client callbacks.\n */\n fun onIgnoreDidChange() {\n synchronized(cache) { cache.clear() }\n\n // Re-set the focused file URI to update the status bar.\n val uri = willFocusUri\n if (uri != null) {\n focusedFileDidChange(uri)\n }\n }\n\n /** Gets whetherurishould be ignored for autocomplete, context, etc. */\n fun policyForUri(uri: String): CompletableFuture<IgnorePolicy> {\n val completable = CompletableFuture<IgnorePolicy>()\n val result = synchronized(cache) { cache[uri] }\n if (result != null) {\n completable.complete(result)\n return completable\n }\n CodyAgentService.withAgent(project) { agent ->\n policyForUri(uri, agent).thenAccept(completable::complete)\n }\n return completable\n }\n\n /** LikepolicyForUri(String)but reuses the current thread and supplied Agent handle. */\n fun policyForUri(uri: String, agent: CodyAgent): CompletableFuture<IgnorePolicy> {\n return agent.server.ignoreTest(IgnoreTestParams(uri)).thenApply {\n val newPolicy =\n when (it.policy) {\n \"ignore\" -> IgnorePolicy.IGNORE\n \"use\" -> IgnorePolicy.USE\n else -> throw IllegalStateException(\"invalid ignore policy value\")\n }\n synchronized(cache) { cache.put(uri, newPolicy) }\n newPolicy\n }\n }\n\n /** LikepolicyForUri(String)but fetches the uri from the passed Editor's Document. */\n fun policyForEditor(editor: Editor): IgnorePolicy? {\n c<fim_suffix>\n val url = FileDocumentManager.getInstance().getFile(editor.document)?.url ?: return null\n val completable = policyForUri(url)\n return try {\n completable.get(policyAwaitTimeoutMs, TimeUnit.MILLISECONDS)\n } catch (timedOut: TimeoutException) {\n null\n }\n }\n\n /**\n * Gets whetherurishould be ignored for autocomplete, etc. If the result is not available\n * quickly, returns null and invokesorElseon a pooled thread when the result is available.\n */\n @Suppress(\"unused\")\n fun policyForUriOrElse(uri: String, orElse: (policy: IgnorePolicy) -> Unit): IgnorePolicy? {\n val completable = policyForUri(uri)\n try {\n return completable.get(16, TimeUnit.MILLISECONDS)<fim_middle>" } ], "model": "fireworks/starcoder-7b" } }

istvan-ujjmeszaros commented 5 months ago

Practically only the chat functionality can be used due to this error. Autocomplete sometimes work, sometimes triggering this error. Commands are always triggering the error. Free and Pro behaves the same for me too. VSCode is working without issues on the exact same project folder (I am opening it via a \wsl$\ path if it matters).

vroudge commented 5 months ago

I have the same issue. Right now Cody is unusable on Webstorm.

istvan-ujjmeszaros commented 5 months ago

Hey @rostalgen and @vroudge, are you guys using a project hosted on WSL? The plugin seems to work if I open the project with "Remote Develoment", when a backend IDE is running under WSL. But when the IDE is running on Windows and I open the project via the \\wsl.localhost\ path, I get the error popup and the commands are not working (actually, "Explain code" sometimes is working).

rostalgen commented 5 months ago

After making sure I was running a released IntelliJ version and not a preview, I could download the Cody plugin and it does appear to be functional. This seems to be a viable workaround for now, but would prefer a native fix.

fredferrao commented 5 months ago

I'm having the same error here for every file I open: This file has been restricted by an admin. Autocomplete, commands, and other Cody features are disabled.

Here's my envinment:

IDEA.LOG backend - java spring app

WARN - #com.sourcegraph.cody.agent.CodyAgent - {"stack":"Error: Timeout\n at Timeout._onTimeout (/home/myuser/.local/share/JetBrains/IntelliJIdea2024.1/Sourcegraph/agent/index.js:280669:20)\n at listOnTimeout (node:internal/timers:573:17)\n at process.processTimers (node:internal/timers:514:7)","message":"Timeout","name":"Error"} WARN - #com.sourcegraph.cody.agent.CodyAgent - {"stack":"Error: Timeout\n at Timeout._onTimeout (/home/myuser/.local/share/JetBrains/IntelliJIdea2024.1/Sourcegraph/agent/index.js:280669:20)\n at listOnTimeout (node:internal/timers:573:17)\n at process.processTimers (node:internal/timers:514:7)","message":"Timeout","name":"Error"} WARN - #com.sourcegraph.cody.edit.FixupService - Ignoring file for inline edits: EditorImpl[file:///home/myuser/workspace/projectx/backend/src/main/java/xx/yyy/zzzz/namex/domain/packagex/SomeClass.java], policy=null WARN - #com.sourcegraph.cody.agent.CodyAgentClient - Cody by Sourcegraph: █ telemetry-v2: recordEvent: cody.ghostText/visible WARN - #com.sourcegraph.cody.agent.CodyAgentClient - Cody by Sourcegraph: █ telemetry-v2: recordEvent: cody.ghostText/visible

frontend - Angular

WARN - #com.sourcegraph.cody.edit.FixupService - Ignoring file for inline edits: EditorImpl[file:///home/myuser/workspace/projectx/frontend/src/app/domainx/containers/some-component/some-component.component.ts], policy=null WARN - #com.sourcegraph.cody.agent.CodyAgentClient - Cody by Sourcegraph: █ telemetry-v2: recordEvent: cody.ghostText/visible WARN - #com.sourcegraph.cody.agent.CodyAgentClient - Cody by Sourcegraph: █ telemetry-v2: recordEvent: cody.ghostText/visible

and just as I was collecting this information I opened another Intellij Window with a different project, and the errors are gone

rostalgen commented 5 months ago

After making sure I was running a released IntelliJ version and not a preview, I could download the Cody plugin and it does appear to be functional. This seems to be a viable workaround for now, but would prefer a native fix.

Remote Dev worked once, but after restart, I can't run the Cody plugin to the 421 IDE version. I get the following error on startup: Plugin 'Cody: AI Coding Assistant with Autocomplete & Chat' is not compatible with the IDE because the IDE contains module 'com.intellij.jetbrains.client' which conflicts with the plugin

thasmo commented 4 months ago

Same here. Plugin doesn't work in IntelliJ IDEA and every! file triggers the error:

This file has been restricted by an admin. Autocomplete, commands, and other Cody features are disabled.

istvan-ujjmeszaros commented 4 months ago

I ended up hosting the project files on the Windows file system and starting Docker from there, which is extremely slow compared to hosting the files under WSL, but it is not a deal breaker with PHP, and Cody is at least working now as intended.

mkondratek commented 3 months ago

Hello everyone in this thread 👋 can you please update the plugin to 6.0.25? 🙏 the issue with WSL should be resolved now 😌

istvan-ujjmeszaros commented 3 months ago

@mkondratek autocomplete is working fine, Chat commands are also working, and I can reference files in the chat, so these are huge improvements, thanks! Although, Edit Commands doesn't seem to work yet with WSL. One visible difference is that the shortcut hint about editing ("Alt + Enter to Edit") doesn't appear when I am opening the files from a WSL source. See the attached screenshots, one is when the files are stored under the $wsl file system, the other is with the files stored on the Windows file system. WSL: image Windows: image

mkondratek commented 3 months ago

Hi @istvan-ujjmeszaros 👋 I am happy to read that there is a progress 😃

Are you able to trigger the Inline Edit dialog in a WSL file? Is it only the hint not showing? Do the inline edits work?

rostalgen commented 3 months ago

When I use the Edit button, it brings up the pop-up, I type in something to change and hit "Edit Code" then the dialog closes and nothing happens. image

istvan-ujjmeszaros commented 3 months ago

@mkondratek there is no Inline Edit dialog appearing for me, and even the relevant context menu elements are grayed out with WSL: image

istvan-ujjmeszaros commented 3 months ago

I can also confirm that clicking on the "Edit Code..." button is triggering the popup where we can type in the instruction, but the popup is just closing itself when clicking on the "Edit Code" button inside it, just as @rostalgen described. The "Alt+Enter" shortcut doesn't bring up the popup.

mkondratek commented 3 months ago

oh, this is interesting. so you are able to trigger edit code at least once, right?

We are doing our best to keep the compatibility among a few IntelliJ versions, a few OS and on WSL in particular. It's easy to get smth wrong e.g. with the URLs. We really appreciate your feedback, details and the good communication - this is super helpful. We definitely will review the inline edit functionality in WSL.

istvan-ujjmeszaros commented 3 months ago

"Edit Code..." is always available in the Cody Tool Window, and always triggering the popup window over the selected code, and I can type into it, but then clicking on the "Edit Code" button inside the popup will just close it without actually doing any editing (there is no "Cody is working..." message or anything at all, it is just closing itself).

So, the popup keeps appearing when pressing the "Edit Code..." button in the Tool Window, but it does nothing. The three items in the context menu are disabled on PHPStorm startup and keep disabled with the WSL project. Please note that these three menu items are disabled for a couple second when I am opening the Windows project, but they are getting enabled after a couple seconds and then keep working forever with the Windows project. So it seems that something during the Cody initialization may go wrong with WSL and it just never enables the editing features with WSL.

Let me know if you would like me to try anything specific.

Horobar commented 3 months ago

I have the same issue with Intellij Ultimate on WSL2

i found this in the logs of the IDEA:

2024-09-01 17:20:26,335 [6305461] WARN - #com.sourcegraph.cody.agent.protocol.TextEdit - Failed to find file for URI: file:///wsl.localhost/Ubuntu/home/horobar/dev/darkenwald/src/main/kotlin/com/horobar/campaign/CampaignService.kt

this errors appeared when i want to edit a file or add Documentary

istvan-ujjmeszaros commented 3 months ago

@mkondratek I may be wrong, but I noticed that the findFileOrScratch() function in CodyEditorUtil.kt doesn't seem to account for WSL paths. Given that the recent commit 55dbb05f34f8902ca131602a34de62a9560849f2 added WSL path handling in other areas, could it be that this function was missed during that update?

It seems like findFileOrScratch() might need similar WSL path normalization as seen in normalizeUriOrPath() to properly handle //wsl$ paths. Here's the link to findFileOrScratch(): https://github.com/sourcegraph/jetbrains/blob/890682c41e765acee66eb688a62c333392ac7f2b/src/main/kotlin/com/sourcegraph/utils/CodyEditorUtil.kt#L184

And here's the normalizeUriOrPath() function that has the WSL normalization: https://github.com/sourcegraph/jetbrains/blob/890682c41e765acee66eb688a62c333392ac7f2b/src/main/kotlin/com/sourcegraph/cody/agent/protocol/ProtocolTextDocument.kt#L202

jmartsch commented 2 months ago

I have the same issue like https://github.com/sourcegraph/jetbrains/issues/1804#issuecomment-2285009246 with PhpStorm 2024.2.2 on WSL2 with Cody nightly 7.0.7 and Cody stable 7.0.6. The Edit Code window appears when pressing the shortcut, but nothing happens after I submit mit request.

I found this information after submitting via the "Edit code" window in the IDEA logfile:

2024-09-26 11:15:13,930 [ 416833] WARN - #com.sourcegraph.cody.agent.CodyAgent - {"stack":"Error: Timeout\n at Timeout._onTimeout (C:\\Users\\info\\AppData\\Roaming\\JetBrains\\PhpStorm2024.2\\plugins\\Sourcegraph\\agent\\index.js:293734:20)\n at listOnTimeout (node:internal/timers:573:17)\n at process.processTimers (node:internal/timers:514:7)","message":"Timeout","name":"Error"} 2024-09-26 11:15:26,676 [ 429579] WARN - org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint - Unsupported notification method: window/didChangeContext 2024-09-26 11:15:26,676 [ 429579] WARN - org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint - Unsupported notification method: editTask/didUpdate 2024-09-26 11:15:29,972 [ 432875] WARN - org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint - Unsupported notification method: window/didChangeContext 2024-09-26 11:15:29,973 [ 432876] WARN - org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint - Unsupported notification method: editTask/didUpdate 2024-09-26 11:15:29,974 [ 432877] INFO - #com.sourcegraph.cody.agent.protocol_generated.TextEdit - Applying workspace edit to a file: file:///wsl.localhost/Ubuntu22.04/home/jmartsch/htdocs/fugamo/fugamo-shop/dist/site/modules/FugamoShops/unpackagedOrders.js 2024-09-26 11:15:29,974 [ 432877] WARN - #com.sourcegraph.cody.agent.protocol_generated.TextEdit - Failed to find file for URI: file:///wsl.localhost/Ubuntu22.04/home/jmartsch/htdocs/fugamo/fugamo-shop/dist/site/modules/FugamoShops/unpackagedOrders.js 2024-09-26 11:15:29,974 [ 432877] WARN - #com.sourcegraph.cody.agent.CodyAgent - Could not apply FixupTask: mjwjb

The "Edit code" tooltip does not appear. However it appears, if I mount the WSL as a network drive, but this leads to other problems, as another commenter also stated here. The chat sidebar appears, but when I select code and type instructions and press Enter, nothing happens. image

After that, the chat isn't responsive anymore. I can not start a new chat.

I am happy to provide more information if needed, because I hate going back and forth between VSCode and PHPStorm just to do some basic AI stuff.

My specs: PhpStorm 2024.2.2 Build #PS-242.22855.113, built on September 23, 2024 Runtime version: 21.0.3+13-b509.15 amd64 (JCEF 122.1.9) VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Toolkit: sun.awt.windows.WToolkit Windows 11.0 GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation Memory: 8000M Cores: 12 Registry: ide.balloon.shadow.size=0 debugger.new.tool.window.layout=true run.processes.with.pty=TRUE terminal.use.conpty.on.windows=false ide.experimental.ui=true i18n.locale= eslint.additional.file.extensions=svelte Non-Bundled Plugins: Batch Scripts Support (1.0.13) org.toml.lang (242.20224.155) com.jetbrains.space (242.22855.32) awesome.console (0.1337.12) com.supermaven.intellij (1.41) com.intellij.lang.liquid (242.20224.159) net.seesharpsoft.intellij.plugins.file-preview (1.6.4) com.dsoftware.ghtoolbar (2024.2.11) com.github.yunabraska.githubworkflowplugin (2024.2.0) dev.blachut.svelte.lang (242.22855.32) com.github.biomejs.intellijbiome (1.4.0) com.jetbrains.lang.ejs (242.20224.155) org.jetbrains.plugins.astro (242.22855.32) mdx.js (242.20224.159) com.sourcegraph.jetbrains (7.0.7-nightly) com.github.blarc.ai-commits-intellij-plugin (2.5.0) com.intellij.plugins.html.instantEditing (242.20224.155) com.mesour.intellij.latte (1.2.1) ru.adelf.idea.dotenv (2024.2.1) Nette framework helpers (0.4.5) de.espend.idea.php.annotation (11.0.3) fr.adrienbrault.idea.symfony2plugin (2024.1.276) com.mallowigi (97.0.0)

istvan-ujjmeszaros commented 2 months ago

I just figured too that I can mount the WSL path as a network drive and Cody can edit the files then, but the docker container can't be started from the network drive, it only starts from the original //wsl path. I have spent literally three days finding a workaround, tried to run PHPStorm under WSLg directly, but ran into #1908 then. Also tried the Remote Development feature but it didn't work either. So sad as it seems to be an issue that could be fixed in like 5 mins if my finding above was right. Hosting the files directly under Windows is not an option as that results in a very sloppy experience with Docker, and watchers aren't working then either. @mkondratek @steveyegge any chance to give this issue a higher priority? It is a very serious one on Windows.