Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .changes/3.67.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"date" : "2025-04-18",
"version" : "3.67",
"entries" : [ {
"type" : "bugfix",
"description" : "Amazon Q: Customization now resets with a warning if unavailable in the selected profile."
}, {
"type" : "bugfix",
"description" : "Q panel will get stuck while signin if users have multiple windows"
}, {
"type" : "bugfix",
"description" : "Fix integer overflow when local context index input is larger than 2GB"
}, {
"type" : "bugfix",
"description" : "Fix workspace index process quits when hitting a race condition"
}, {
"type" : "bugfix",
"description" : "Fix infinite loop when workspace indexing server fails to initialize"
} ]
}

This file was deleted.

This file was deleted.

This file was deleted.

7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# _3.67_ (2025-04-18)
- **(Bug Fix)** Amazon Q: Customization now resets with a warning if unavailable in the selected profile.
- **(Bug Fix)** Q panel will get stuck while signin if users have multiple windows
- **(Bug Fix)** Fix integer overflow when local context index input is larger than 2GB
- **(Bug Fix)** Fix workspace index process quits when hitting a race condition
- **(Bug Fix)** Fix infinite loop when workspace indexing server fails to initialize

# _3.66_ (2025-04-11)
- **(Feature)** The logs emitted by the Agent during user command execution will be accepted and written to `.amazonq/dev/run_command.log` file in the user's local repository.
- **(Bug Fix)** Unit test generation now completes successfully when using the `/test` command
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0

# Toolkit Version
toolkitVersion=3.67-SNAPSHOT
toolkitVersion=3.68-SNAPSHOT

# Publish Settings
publishToken=
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@

row(message("aws.settings.codewhisperer.project_context_index_thread")) {
intTextField(
range = IntRange(0, 50)
range = CodeWhispererSettings.CONTEXT_INDEX_THREADS

Check warning on line 172 in plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/settings/CodeWhispererConfigurable.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/settings/CodeWhispererConfigurable.kt#L172

Added line #L172 was not covered by tests
).bindIntText(codeWhispererSettings::getProjectContextIndexThreadCount, codeWhispererSettings::setProjectContextIndexThreadCount)
.apply {
connect.subscribe(
Expand All @@ -186,7 +186,7 @@

row(message("aws.settings.codewhisperer.project_context_index_max_size")) {
intTextField(
range = IntRange(1, 4096)
range = CodeWhispererSettings.CONTEXT_INDEX_SIZE

Check warning on line 189 in plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/settings/CodeWhispererConfigurable.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/settings/CodeWhispererConfigurable.kt#L189

Added line #L189 was not covered by tests
).bindIntText(codeWhispererSettings::getProjectContextIndexMaxSize, codeWhispererSettings::setProjectContextIndexMaxSize)
.apply {
connect.subscribe(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,41 @@ class CodeWhispererSettingsTest : CodeWhispererTestBase() {
assertThat(actual.autoBuildSetting["project1"]).isTrue()
}

@Test
fun `context thread count is returned in range`() {
val sut = CodeWhispererSettings.getInstance()

mapOf(
1 to 1,
0 to 0,
-1 to 0,
123 to 50,
50 to 50,
51 to 50,
).forEach { s, expected ->
sut.setProjectContextIndexThreadCount(s)
assertThat(sut.getProjectContextIndexThreadCount()).isEqualTo(expected)
}
}

@Test
fun `context index size is returned in range`() {
val sut = CodeWhispererSettings.getInstance()

mapOf(
1 to 1,
0 to 1,
-1 to 1,
123 to 123,
2047 to 2047,
4096 to 4096,
4097 to 4096,
).forEach { s, expected ->
sut.setProjectContextIndexMaxSize(s)
assertThat(sut.getProjectContextIndexMaxSize()).isEqualTo(expected)
}
}

@Test
fun `toggleMetricOptIn should trigger LSP didChangeConfiguration`() {
mockkObject(AmazonQLspService)
Expand Down
5 changes: 0 additions & 5 deletions plugins/amazonq/shared/jetbrains-community/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,5 @@ dependencies {
implementation(libs.commons.collections)
implementation(libs.nimbus.jose.jwt)

// FIX_WHEN_MIN_IS_242
if (providers.gradleProperty("ideProfileName").get() == "2024.1") {
implementation("org.eclipse.lsp4j:org.eclipse.lsp4j:0.24.0")
}

testFixturesApi(testFixtures(project(":plugin-core:jetbrains-community")))
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import org.eclipse.lsp4j.jsonrpc.services.JsonRequest
import org.eclipse.lsp4j.services.LanguageServer
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.GetConfigurationFromServerParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.LspServerConfigurations
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.UpdateConfigurationParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedChatParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.UpdateCredentialsPayload
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams
Expand All @@ -31,6 +32,9 @@ interface AmazonQLanguageServer : LanguageServer {
@JsonRequest("aws/getConfigurationFromServer")
fun getConfigurationFromServer(params: GetConfigurationFromServerParams): CompletableFuture<LspServerConfigurations>

@JsonRequest("aws/updateConfiguration")
fun updateConfiguration(params: UpdateConfigurationParams): CompletableFuture<LspServerConfigurations>

@JsonRequest("aws/chat/sendChatPrompt")
fun sendChatPrompt(params: EncryptedChatParams): CompletableFuture<String>
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,14 @@
import software.aws.toolkits.jetbrains.core.credentials.sso.bearer.BearerTokenProviderListener
import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLspService
import software.aws.toolkits.jetbrains.services.amazonq.lsp.encryption.JwtEncryptionManager
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.LspServerConfigurations
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.UpdateConfigurationParams
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.BearerCredentials
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.UpdateCredentialsPayload
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.UpdateCredentialsPayloadData
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfile
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfileManager
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfileSelectedListener
import software.aws.toolkits.jetbrains.utils.isQConnected
import software.aws.toolkits.jetbrains.utils.isQExpired
import java.util.concurrent.CompletableFuture
Expand All @@ -28,16 +33,21 @@
serverInstance: Disposable,
) : AuthCredentialsService,
BearerTokenProviderListener,
ToolkitConnectionManagerListener {
ToolkitConnectionManagerListener,
QRegionProfileSelectedListener {

init {
project.messageBus.connect(serverInstance).apply {
subscribe(BearerTokenProviderListener.TOPIC, this@DefaultAuthCredentialsService)
subscribe(ToolkitConnectionManagerListener.TOPIC, this@DefaultAuthCredentialsService)
subscribe(QRegionProfileSelectedListener.TOPIC, this@DefaultAuthCredentialsService)

Check warning on line 43 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt#L43

Added line #L43 was not covered by tests
}

if (isQConnected(project) && !isQExpired(project)) {
updateTokenFromActiveConnection()
.thenRun {
updateConfiguration()
}

Check warning on line 50 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt#L48-L50

Added lines #L48 - L50 were not covered by tests
}
}

Expand Down Expand Up @@ -70,23 +80,23 @@
updateTokenFromConnection(newConnection)
}

private fun updateTokenFromActiveConnection() {
private fun updateTokenFromActiveConnection(): CompletableFuture<ResponseMessage> {
val connection = ToolkitConnectionManager.getInstance(project)
.activeConnectionForFeature(QConnection.getInstance())
?: return
?: return CompletableFuture.failedFuture(IllegalStateException("No active Q connection"))

Check warning on line 86 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt#L86

Added line #L86 was not covered by tests

updateTokenFromConnection(connection)
return updateTokenFromConnection(connection)

Check warning on line 88 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt#L88

Added line #L88 was not covered by tests
}

private fun updateTokenFromConnection(connection: ToolkitConnection) {
private fun updateTokenFromConnection(connection: ToolkitConnection): CompletableFuture<ResponseMessage> =
(connection.getConnectionSettings() as? TokenConnectionSettings)
?.tokenProvider
?.delegate
?.let { it as? BearerTokenProvider }
?.currentToken()
?.accessToken
?.let { token -> updateTokenCredentials(token, true) }
}
?: CompletableFuture.failedFuture(IllegalStateException("Unable to get token from connection"))

Check warning on line 99 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt#L99

Added line #L99 was not covered by tests

override fun invalidate(providerId: String) {
deleteTokenCredentials()
Expand All @@ -108,4 +118,20 @@
encrypted = false
)
}

override fun onProfileSelected(project: Project, profile: QRegionProfile?) {
updateConfiguration()
}

Check warning on line 124 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt#L123-L124

Added lines #L123 - L124 were not covered by tests

private fun updateConfiguration(): CompletableFuture<LspServerConfigurations> {
val payload = UpdateConfigurationParams(
section = "aws.q",
settings = mapOf(

Check warning on line 129 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt#L127-L129

Added lines #L127 - L129 were not covered by tests
"profileArn" to QRegionProfileManager.getInstance().activeProfile(project)?.arn
)
)
return AmazonQLspService.executeIfRunning(project) { server ->
server.updateConfiguration(payload)
} ?: (CompletableFuture.failedFuture(IllegalStateException("LSP Server not running")))

Check warning on line 135 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt#L134-L135

Added lines #L134 - L135 were not covered by tests
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,10 @@

// This represents the entire array
data class LspServerConfigurations(val workspaces: List<WorkspaceInfo>)

data class UpdateConfigurationParams(
val section: String,
val settings: LSPAny,

Check warning on line 14 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/LspServerConfigurations.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/LspServerConfigurations.kt#L12-L14

Added lines #L12 - L14 were not covered by tests
)

typealias LSPAny = Any?
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@

data class FileCollectionResult(
val files: List<String>,
val fileSize: Int,
val fileSize: Int, // in MB

Check warning on line 73 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt#L73

Added line #L73 was not covered by tests
)

// TODO: move to LspMessage.kt
Expand Down Expand Up @@ -246,59 +246,7 @@
}
}

private fun willExceedPayloadLimit(currentTotalFileSize: Long, currentFileSize: Long): Boolean {
val maxSize = CodeWhispererSettings.getInstance().getProjectContextIndexMaxSize()
return currentTotalFileSize.let { totalSize -> totalSize > (maxSize * 1024 * 1024 - currentFileSize) }
}

private fun isBuildOrBin(fileName: String): Boolean {
val regex = Regex("""bin|build|node_modules|venv|\.venv|env|\.idea|\.conda""", RegexOption.IGNORE_CASE)
return regex.find(fileName) != null
}

fun collectFiles(): FileCollectionResult {
val collectedFiles = mutableListOf<String>()
var currentTotalFileSize = 0L
val allFiles = mutableListOf<VirtualFile>()

val projectBaseDirectories = project.getBaseDirectories()
val changeListManager = ChangeListManager.getInstance(project)

projectBaseDirectories.forEach {
VfsUtilCore.visitChildrenRecursively(
it,
object : VirtualFileVisitor<Unit>(NO_FOLLOW_SYMLINKS) {
// TODO: refactor this along with /dev & codescan file traversing logic
override fun visitFile(file: VirtualFile): Boolean {
if ((file.isDirectory && isBuildOrBin(file.name)) ||
!isWorkspaceSourceContent(file, projectBaseDirectories, changeListManager, additionalGlobalIgnoreRulesForStrictSources) ||
(file.isFile && file.length > 10 * 1024 * 1024)
) {
return false
}
if (file.isFile) {
allFiles.add(file)
return false
}
return true
}
}
)
}

for (file in allFiles) {
if (willExceedPayloadLimit(currentTotalFileSize, file.length)) {
break
}
collectedFiles.add(file.path)
currentTotalFileSize += file.length
}

return FileCollectionResult(
files = collectedFiles.toList(),
fileSize = (currentTotalFileSize / 1024 / 1024).toInt()
)
}
fun collectFiles(): FileCollectionResult = collectFiles(project.getBaseDirectories(), ChangeListManager.getInstance(project))

Check warning on line 249 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt#L249

Added line #L249 was not covered by tests

private fun queryResultToRelevantDocuments(queryResult: List<Chunk>): List<RelevantDocument> {
val documents: MutableList<RelevantDocument> = mutableListOf()
Expand Down Expand Up @@ -358,5 +306,57 @@

companion object {
private val logger = getLogger<ProjectContextProvider>()
private val regex = Regex("""bin|build|node_modules|venv|\.venv|env|\.idea|\.conda""", RegexOption.IGNORE_CASE)
private val mega = (1024 * 1024).toULong()
private val tenMb = 10 * mega.toInt()

Check warning on line 311 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt#L309-L311

Added lines #L309 - L311 were not covered by tests

private fun willExceedPayloadLimit(maxSize: ULong, currentTotalFileSize: ULong, currentFileSize: Long) =
currentTotalFileSize.let { totalSize -> totalSize > (maxSize - currentFileSize.toUInt()) }

private fun isBuildOrBin(fileName: String): Boolean =
regex.find(fileName) != null

fun collectFiles(projectBaseDirectories: Set<VirtualFile>, changeListManager: ChangeListManager): FileCollectionResult {
val maxSize = CodeWhispererSettings.getInstance()
.getProjectContextIndexMaxSize().toULong() * mega
val collectedFiles = mutableListOf<String>()
var currentTotalFileSize = 0UL
val allFiles = mutableListOf<VirtualFile>()

Check warning on line 324 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt#L320-L324

Added lines #L320 - L324 were not covered by tests

projectBaseDirectories.forEach {
VfsUtilCore.visitChildrenRecursively(
it,
object : VirtualFileVisitor<Unit>(NO_FOLLOW_SYMLINKS) {

Check warning on line 329 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt#L326-L329

Added lines #L326 - L329 were not covered by tests
// TODO: refactor this along with /dev & codescan file traversing logic
override fun visitFile(file: VirtualFile): Boolean {
if ((file.isDirectory && isBuildOrBin(file.name)) ||
!isWorkspaceSourceContent(file, projectBaseDirectories, changeListManager, additionalGlobalIgnoreRulesForStrictSources) ||
(file.isFile && file.length > tenMb)
) {
return false

Check warning on line 336 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt#L336

Added line #L336 was not covered by tests
}
if (file.isFile) {
allFiles.add(file)
return false

Check warning on line 340 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt#L339-L340

Added lines #L339 - L340 were not covered by tests
}
return true

Check warning on line 342 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt#L342

Added line #L342 was not covered by tests
}
}
)
}

Check warning on line 346 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt#L346

Added line #L346 was not covered by tests

for (file in allFiles) {
if (willExceedPayloadLimit(maxSize, currentTotalFileSize, file.length)) {
break

Check warning on line 350 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt#L350

Added line #L350 was not covered by tests
}
collectedFiles.add(file.path)
currentTotalFileSize += file.length.toUInt()

Check warning on line 353 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt#L352-L353

Added lines #L352 - L353 were not covered by tests
}

return FileCollectionResult(
files = collectedFiles.toList(),
fileSize = (currentTotalFileSize / 1024u / 1024u).toInt()

Check warning on line 358 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt#L356-L358

Added lines #L356 - L358 were not covered by tests
)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

class ManifestManager {
private val cloudFrontUrl = "https://aws-toolkit-language-servers.amazonaws.com/q-context/manifest.json"
val currentVersion = "0.1.46"
val currentVersion = "0.1.49"

Check warning on line 18 in plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/manifest/ManifestManager.kt

View check run for this annotation

Codecov / codecov/patch

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/manifest/ManifestManager.kt#L18

Added line #L18 was not covered by tests
val currentOs = getOs()
private val arch = CpuArch.CURRENT
private val mapper = jacksonObjectMapper().apply { configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) }
Expand Down
Loading
Loading