Skip to content

Conversation

@aws-toolkit-automation
Copy link
Collaborator

Automatic merge failed

  • Resolve conflicts and push to this PR branch.
  • Do not squash-merge this PR. Use the "Create a merge commit" option to do a regular merge.

Command line hint

To perform the merge from the command line, you could do something like the following (where "origin" is the name of the remote in your local git repo):

git stash
git fetch --all
git checkout origin/feature/remote-chat
git merge origin/main
git commit
git push origin HEAD:refs/heads/autoMerge/feature/remote-chat

aws-toolkit-automation and others added 30 commits March 5, 2025 23:15
* syncModuleDependencies call barebones

* implement syncModuleDependencies logic

* detekt

* return completableFuture

* ExtensionPoint impl

* detekt

* fix EachExtensionSafe

* update ExtensionPoint namespace

* private functions not needed

* detekt

* cs.launch for the ModuleDependencyServiceHandler

* Tests

* update xml

* move xml impl to src root

* feedback

* change message to notification instead of Request
…verride via config (#5449)

download implemented in #5387
override UI implemented in #5429

Additionally, use zipfs for extracting zip files to respect original posix attributes on systems where that is relevant
manodnyab and others added 26 commits April 17, 2025 12:58
…than 2gb (#5558)

2GB in bytes > INT_MAX
so use ULong, which can handle 18 PB
Orphaned http request that should be rejected somehow sneaked into the http request event loop while the FAISS index is not ready, causing the workspace LSP process to terminate, which causes the JetBrains IDE to re-initialize the workspace LSP process, which further triggers an infinite loop of log storm that caused slowness (the log loop issue is fixed in #5581). 

Here are the sequence of events that happened:

1. JB starts workspace LSP, the LSP then works on tree sitter parsing to generate repomap.
2. When #1 is in progress, client (user) uses @workspace feature sends a request for vector index query. #1 is usually fast but for 1.4GB repo like https://github.com/elastic/elasticsearch (1.4GB), it takes 6 min. 
3. Node js event loop busy, client request #2 is timed out. However, requests is cached at server and it becomes an Orphaned http request.
4. The moment when tree sitter parsing is done, node js event loop SOMEHOW immediately handles the Orphaned request in step 2 at a certain possibility!
5. The vector index is not undefined, it was partially initialized, but it had no chunk inside, query when 0 chunks caused Faiss to crash, which terminated the LSP process.
6. JB saw java.net.ConnectException: Connection refused, it then forces LSP to restart, which restarts the indexing, causing performance issue.
 Conflicts:
	plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererSettingsTest.kt
feat(lsp): Addition of LSP for Amazon Q
…f an Idc connection (#5591)

Follow-up to #5575.

As mentioned in that PR:

Before: Customizations were bound to a specific IDC instance.
After: Customizations are now bound to a specific Q profile. An IDC instance can have multiple Q profiles.

In other words, each Q profile has access to its own set of customizations.

The product team has requested that we show all available customizations across profiles, rather than only those tied to the currently connected profile.

This means that when a user selects a customization that belongs to a different Q profile, the plugin should implicitly switch to that profile. This behavior helps reduce confusion and user churn, since users might not clearly understand which profile grants access to which customizations.
* config(amazonq): disable auto-review by default

* add change log
In certain IDE environments, for example when user has the latest Scala plugin, Amazon Q attempts to load lsp4j through
transitive optional dependencies instead of through the IDE.

Ideally we do not bundle the library, but this is not possible until JetBrains can guarantee stronger isolation between plugins
```
com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: Access is allowed from Event Dispatch Thread (EDT) only; If you access or modify model on EDT consider wrapping your code in WriteIntentReadAction  or ReadAction; see https://jb.gg/ij-platform-threading for details
Current thread: Thread[#170,CefHandlers-execution-0,6,main] 432844899 (EventQueue.isDispatchThread()=false)
SystemEventQueueThread: Thread[#68,AWT-EventQueue-0,6,main] 1801390534
	at com.intellij.util.concurrency.ThreadingAssertions.createThreadAccessException(ThreadingAssertions.java:257)
	at com.intellij.util.concurrency.ThreadingAssertions.throwThreadAccessException(ThreadingAssertions.java:248)
	at com.intellij.util.concurrency.ThreadingAssertions.assertEventDispatchThread(ThreadingAssertions.java:89)
	at com.intellij.openapi.editor.impl.ScrollingModelImpl.getVisibleAreaOnScrollingFinished(ScrollingModelImpl.java:113)
	at com.intellij.codeInsight.documentation.render.DocRenderItemUpdater.lambda$getVisibleOffset$9(DocRenderItemUpdater.java:110)
	at it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap.computeIfAbsent(Object2IntOpenHashMap.java:482)
	at it.unimi.dsi.fastutil.objects.Object2IntMap.computeIntIfAbsent(Object2IntMap.java:398)
	at com.intellij.codeInsight.documentation.render.DocRenderItemUpdater.getVisibleOffset(DocRenderItemUpdater.java:109)
	at com.intellij.codeInsight.documentation.render.DocRenderItemUpdater.lambda$processChunk$2(DocRenderItemUpdater.java:77)
	at java.base/java.util.Comparator.lambda$comparingInt$7b0bb60$1(Comparator.java:494)
	at java.base/java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
	at java.base/java.util.TimSort.sort(TimSort.java:220)
	at java.base/java.util.Arrays.sort(Arrays.java:1308)
	at java.base/java.util.ArrayList.sort(ArrayList.java:1804)
	at com.intellij.codeInsight.documentation.render.DocRenderItemUpdater.processChunk(DocRenderItemUpdater.java:77)
	at com.intellij.codeInsight.documentation.render.DocRenderItemUpdater.updateFoldRegions(DocRenderItemUpdater.java:60)
	at com.intellij.codeInsight.documentation.render.DocRenderItemUpdater.updateRenderers(DocRenderItemUpdater.java:34)
	at com.intellij.codeInsight.documentation.render.DocRenderItemUpdater.updateRenderers(DocRenderItemUpdater.java:42)
	at com.intellij.codeInsight.documentation.render.DocRenderItemManager.setupListeners$lambda$1(DocRenderItemManager.kt:59)
	at com.intellij.util.messages.MessageBusConnection.setDefaultHandler$lambda$0(MessageBusConnection.kt:28)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:705)
	at com.intellij.util.messages.impl.MessageBusImplKt.executeOrAddToQueue(MessageBusImpl.kt:533)
	at com.intellij.util.messages.impl.MessagePublisher.publish$intellij_platform_core(MessageBusImpl.kt:504)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:481)
	at jdk.proxy2/jdk.proxy2.$Proxy270.lookAndFeelChanged(Unknown Source)
	at software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindow.disposeAndRecreate(AmazonQToolWindow.kt:70)
	at software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindowFactory$createToolWindowContent$5.onProfileSelected(AmazonQToolWindowFactory.kt:101)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:768)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:708)
	at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:451)
	at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:430)
	at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:493)
	at jdk.proxy15/jdk.proxy15.$Proxy269.onProfileSelected(Unknown Source)
	at software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfileManager.switchProfile(QRegionProfileManager.kt:149)
	at software.aws.toolkits.jetbrains.services.amazonq.QWebviewBrowser.handleBrowserMessage(QLoginWebview.kt:218)
	at software.aws.toolkits.jetbrains.core.webview.LoginBrowser.jcefHandler$lambda$1(LoginBrowser.kt:77)
	at com.intellij.ui.jcef.JBCefJSQuery$1.onQuery(JBCefJSQuery.java:123)
	at jcef/com.jetbrains.cef.remote.ClientHandlersImpl.MessageRouterHandler_onQuery(ClientHandlersImpl.java:996)
	at jcef/com.jetbrains.cef.remote.thrift_codegen.ClientHandlers$Processor$MessageRouterHandler_onQuery.getResult(ClientHandlers.java:6618)
	at jcef/com.jetbrains.cef.remote.thrift_codegen.ClientHandlers$Processor$MessageRouterHandler_onQuery.getResult(ClientHandlers.java:6595)
	at jcef/com.jetbrains.cef.remote.thrift.ProcessFunction.process(ProcessFunction.java:38)
	at jcef/com.jetbrains.cef.remote.thrift.TBaseProcessor.process(TBaseProcessor.java:40)
	at jcef/com.jetbrains.cef.remote.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:257)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
```
…q endpoints (#5625)

If user only has access to subset of the Q endpoints, don't fail the entire iteration sequence
Copy link

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

QDJVMC found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

@rli rli merged commit ff7867b into feature/remote-chat Apr 24, 2025
13 of 16 checks passed
@rli rli deleted the autoMerge/feature/remote-chat branch April 24, 2025 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.