continuedev / continue

⏩ Continue is the leading open-source AI code assistant. You can connect any models and any context to build custom autocomplete and chat experiences inside VS Code and JetBrains
https://docs.continue.dev/
Apache License 2.0
13.52k stars 947 forks source link

Plugin Panel is blank and unresponsive in all JetBrains IDEs on Ubuntu #1136

Open ostapiuk opened 3 months ago

ostapiuk commented 3 months ago

Before submitting your bug report

Relevant environment info

- OS: Ubuntu 22.04.4 LTS (Kubuntu)
- Continue: 0.0.42
- IDE: IntelliJ IDEA 2024.1, PyCharm 2024.1, RubyMine 2024.1
- Model: Ollama 0.1.24

Description

The Continue panel is blank and the buttons at the top don't do anything when clicked (only visible after clicking on panel). continue-blank

I'm able to execute commands using the Ollama api via curl on the command line, so Ollama is working.

To reproduce

  1. Using existing settings that worked with previous versions, launch IDE.
  2. Open Continue panel.

(Note: I deleted the old core.log while troubleshooting, so the provided log output is all there is after launching IDE)

Log output

[info] Starting Continue core...
[info] Starting Continue core... 
(node:72959) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
(Use `continue-binary --trace-warnings ...` to show where the warning was created)
ostapiuk commented 3 months ago

I just tested the plugin on the same machine that is running Ollama, and it works there. So the problem might be related to accessing the API on another machine on the network. The only difference between my config.json files is that the one with the blank plugin has the line: "apiBase": "http://hostname:11434", where hostname is the name of the machine hosting Ollama. This worked before version 0.0.42. After upgrading to 0.0.45, it is still a problem.

It isn't a network problem because I can successfully query Ollama using the command line: curl --location 'http://hostname:11434/api/tags'

I also tried renaming ~./continue so that the plugin would recreate the directory upon restarting the IDE. Even with a fresh, unmodified default config, the plugin is still blank in the IDE.

readmodifywrite commented 3 months ago

Same problem on VSCode, including the empty windows. So far I can't even find how to get back to the JSON config so I can change the server back to localhost.

ostapiuk commented 2 months ago

@readmodifywrite, if you are on Linux, it's in a hidden folder in your home directory: ~/.continue/config.json

ostapiuk commented 2 months ago

After trying a bunch of different things, all without any success, I completely removed and deleted all traces of the plugin, restarted the IDE, then re-installed the plugin, and restarted the IDE again. This time, IntelliJ reported an exception from the plugin: "Exception in plugin Continue (0.0.45)"

java.util.ConcurrentModificationException
    at java.base/java.util.ArrayList.sort(ArrayList.java:1723)
    at java.base/java.util.Collections.sort(Collections.java:179)
    at kotlin.collections.CollectionsKt__MutableCollectionsJVMKt.sortWith(MutableCollectionsJVM.kt:42)
    at com.intellij.openapi.keymap.impl.KeymapImplKt.sortInRegistrationOrder(KeymapImpl.kt:812)
    at com.intellij.openapi.keymap.impl.KeymapImplKt.access$sortInRegistrationOrder(KeymapImpl.kt:1)
    at com.intellij.openapi.keymap.impl.KeymapImpl.getActionIds(KeymapImpl.kt:531)
    at com.intellij.openapi.keymap.impl.KeymapImpl.getActionIds(KeymapImpl.kt:503)
    at com.intellij.openapi.keymap.impl.KeymapImpl.getActionIds(KeymapImpl.kt:503)
    at com.intellij.openapi.keymap.impl.KeymapImpl.getActionIds(KeymapImpl.kt:422)
    at com.github.continuedev.continueintellijextension.activities.ContinuePluginStartupActivity.removeShortcutFromAction(ContinuePluginStartupActivity.kt:125)
    at com.github.continuedev.continueintellijextension.activities.ContinuePluginStartupActivity.runActivity(ContinuePluginStartupActivity.kt:109)
    at com.intellij.ide.startup.impl.StartupManagerImpl.runOldActivity(StartupManagerImpl.kt:319)
    at com.intellij.ide.startup.impl.StartupManagerImpl.access$runOldActivity(StartupManagerImpl.kt:68)
    at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$5$1.invoke(StartupManagerImpl.kt:270)
    at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$5$1.invoke(StartupManagerImpl.kt:269)
    at com.intellij.openapi.progress.CoroutinesKt.blockingContextInner(coroutines.kt:320)
    at com.intellij.openapi.progress.CoroutinesKt.access$blockingContextInner(coroutines.kt:1)
    at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invokeSuspend(coroutines.kt:197)
    at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invoke(coroutines.kt)
    at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invoke(coroutines.kt)
    at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
    at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
    at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:196)
    at com.intellij.ide.startup.impl.StartupManagerImpl.runPostStartupActivities(StartupManagerImpl.kt:269)
    at com.intellij.ide.startup.impl.StartupManagerImpl.access$runPostStartupActivities(StartupManagerImpl.kt:68)
    at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$3$2.invokeSuspend(StartupManagerImpl.kt:191)
    at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$3$2.invoke(StartupManagerImpl.kt)
    at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$3$2.invoke(StartupManagerImpl.kt)
    at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
    at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:167)
    at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
    at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$3.invokeSuspend(StartupManagerImpl.kt:190)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.UndispatchedCoroutine.afterResume(CoroutineContext.kt:270)
    at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)

core.log:

[info] Starting Continue core...
[info] Starting Continue core...
[info] Starting Continue core... 
[info] Starting Continue core... 
(node:217426) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
(Use `continue-binary --trace-warnings ...` to show where the warning was created) 
Error calling Ollama /api/show endpoint: TypeError: fetch failed 
[info] Starting Continue core...
[info] Starting Continue core... 
(node:219918) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
(Use `continue-binary --trace-warnings ...` to show where the warning was created) 
Error calling Ollama /api/show endpoint: TypeError: fetch failed 
[info] Exiting Continue core... 
[info] Starting Continue core...
[info] Starting Continue core... 
(node:221541) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
(Use `continue-binary --trace-warnings ...` to show where the warning was created) 
Error calling Ollama /api/show endpoint: TypeError: fetch failed 

My local network does not require certificates. Also I can run the following from the command line and get the expected response:

curl --location 'http://hostname:11434/api/show' --data '{
    "name":"deepseek-coder:6.7b"
}'
ostapiuk commented 2 months ago

The plugin is still blank after upgrade to 0.0.46.

Elias-Ebi commented 1 month ago

Had the same issue with the blank continue panel. For me it was snap-related. Did not work in snap-installed PyCharm, but when i installed IntelliJ as standalone installation, it worked fine (same for PyCharm after reinstalling it as standalone). Hope that helps someone.

yh646492956 commented 1 month ago

i also find this question on winidows 10