From 50df34cfed1e6fac9d8399c98366c2dab72ce85e Mon Sep 17 00:00:00 2001 From: RoshanNagaram-eng Date: Fri, 4 Oct 2024 16:29:13 -0700 Subject: [PATCH 1/8] fixed --- .../LanguageServer/CodeiumModels.swift | 4 +--- .../CodeiumService/Services/CodeiumService.swift | 16 ++++++++-------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/Tool/Sources/CodeiumService/LanguageServer/CodeiumModels.swift b/Tool/Sources/CodeiumService/LanguageServer/CodeiumModels.swift index d6af5d25..486e5f45 100644 --- a/Tool/Sources/CodeiumService/LanguageServer/CodeiumModels.swift +++ b/Tool/Sources/CodeiumService/LanguageServer/CodeiumModels.swift @@ -72,9 +72,7 @@ struct CompletionPart: Codable { } struct CodeiumDocument: Codable { - var absolute_path: String - // Path relative to the root of the workspace. - var relative_path: String + var absolute_path_migrate_me_to_uri: String var text: String // Language ID provided by the editor. var editor_language: String diff --git a/Tool/Sources/CodeiumService/Services/CodeiumService.swift b/Tool/Sources/CodeiumService/Services/CodeiumService.swift index 3aa03540..90a67ec3 100644 --- a/Tool/Sources/CodeiumService/Services/CodeiumService.swift +++ b/Tool/Sources/CodeiumService/Services/CodeiumService.swift @@ -257,14 +257,14 @@ extension CodeiumService: CodeiumSuggestionServiceType { requestCounter += 1 let languageId = languageIdentifierFromFileURL(fileURL) - let relativePath = getRelativePath(of: fileURL) +// let relativePath = getRelativePath(of: fileURL) let task = Task { let request = try await CodeiumRequest.GetCompletion(requestBody: .init( metadata: getMetadata(), document: .init( - absolute_path: fileURL.path, - relative_path: relativePath, + absolute_path_migrate_me_to_uri: fileURL.path, +// relative_path: relativePath, text: content, editor_language: languageId.rawValue, language: .init(codeLanguage: languageId), @@ -278,8 +278,8 @@ extension CodeiumService: CodeiumSuggestionServiceType { .map { openedDocument in let languageId = languageIdentifierFromFileURL(openedDocument.url) return .init( - absolute_path: openedDocument.url.path, - relative_path: openedDocument.relativePath, + absolute_path_migrate_me_to_uri: openedDocument.url.path, +// relative_path: openedDocument.relativePath, text: openedDocument.content, editor_language: languageId.rawValue, language: .init(codeLanguage: languageId) @@ -417,11 +417,11 @@ extension CodeiumService: CodeiumSuggestionServiceType { workspaceURL: URL ) async throws { let languageId = languageIdentifierFromFileURL(fileURL) - let relativePath = getRelativePath(of: fileURL) +// let relativePath = getRelativePath(of: fileURL) let request = await CodeiumRequest.RefreshContextForIdeAction(requestBody: .init( active_document: .init( - absolute_path: fileURL.path, - relative_path: relativePath, + absolute_path_migrate_me_to_uri: fileURL.path, +// relative_path: relativePath, text: content, editor_language: languageId.rawValue, language: .init(codeLanguage: languageId), From 779c0da73463fd591f318fbbe0ab2ae6edcba720 Mon Sep 17 00:00:00 2001 From: RoshanNagaram-eng Date: Fri, 4 Oct 2024 16:30:52 -0700 Subject: [PATCH 2/8] Removed comments --- Tool/Sources/CodeiumService/Services/CodeiumService.swift | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Tool/Sources/CodeiumService/Services/CodeiumService.swift b/Tool/Sources/CodeiumService/Services/CodeiumService.swift index 90a67ec3..4630d48a 100644 --- a/Tool/Sources/CodeiumService/Services/CodeiumService.swift +++ b/Tool/Sources/CodeiumService/Services/CodeiumService.swift @@ -257,14 +257,12 @@ extension CodeiumService: CodeiumSuggestionServiceType { requestCounter += 1 let languageId = languageIdentifierFromFileURL(fileURL) -// let relativePath = getRelativePath(of: fileURL) let task = Task { let request = try await CodeiumRequest.GetCompletion(requestBody: .init( metadata: getMetadata(), document: .init( absolute_path_migrate_me_to_uri: fileURL.path, -// relative_path: relativePath, text: content, editor_language: languageId.rawValue, language: .init(codeLanguage: languageId), @@ -417,11 +415,9 @@ extension CodeiumService: CodeiumSuggestionServiceType { workspaceURL: URL ) async throws { let languageId = languageIdentifierFromFileURL(fileURL) -// let relativePath = getRelativePath(of: fileURL) let request = await CodeiumRequest.RefreshContextForIdeAction(requestBody: .init( active_document: .init( absolute_path_migrate_me_to_uri: fileURL.path, -// relative_path: relativePath, text: content, editor_language: languageId.rawValue, language: .init(codeLanguage: languageId), From 2291a19e7c1db5be66779d70a254660dc5364dcf Mon Sep 17 00:00:00 2001 From: RoshanNagaram-eng Date: Fri, 4 Oct 2024 16:35:16 -0700 Subject: [PATCH 3/8] Another fix --- Tool/Sources/CodeiumService/Services/CodeiumService.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/Tool/Sources/CodeiumService/Services/CodeiumService.swift b/Tool/Sources/CodeiumService/Services/CodeiumService.swift index 4630d48a..de01e274 100644 --- a/Tool/Sources/CodeiumService/Services/CodeiumService.swift +++ b/Tool/Sources/CodeiumService/Services/CodeiumService.swift @@ -277,7 +277,6 @@ extension CodeiumService: CodeiumSuggestionServiceType { let languageId = languageIdentifierFromFileURL(openedDocument.url) return .init( absolute_path_migrate_me_to_uri: openedDocument.url.path, -// relative_path: openedDocument.relativePath, text: openedDocument.content, editor_language: languageId.rawValue, language: .init(codeLanguage: languageId) From d373a8c0789d847b8e39bcf84e489b263f136684 Mon Sep 17 00:00:00 2001 From: Shx Guo Date: Sun, 6 Oct 2024 09:57:16 +0800 Subject: [PATCH 4/8] Update to throw instead of returning empty list --- .../SuggestionServiceMiddleware.swift | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Tool/Sources/SuggestionProvider/SuggestionServiceMiddleware.swift b/Tool/Sources/SuggestionProvider/SuggestionServiceMiddleware.swift index f26492c1..7d08aeaa 100644 --- a/Tool/Sources/SuggestionProvider/SuggestionServiceMiddleware.swift +++ b/Tool/Sources/SuggestionProvider/SuggestionServiceMiddleware.swift @@ -45,6 +45,13 @@ public enum SuggestionServiceMiddlewareContainer { public struct DisabledLanguageSuggestionServiceMiddleware: SuggestionServiceMiddleware { public init() {} + + struct DisabledLanguageError: Error, LocalizedError { + let language: String + var errorDescription: String? { + "Suggestion service is disabled for \(language)." + } + } public func getSuggestion( _ request: SuggestionRequest, @@ -55,10 +62,7 @@ public struct DisabledLanguageSuggestionServiceMiddleware: SuggestionServiceMidd if UserDefaults.shared.value(for: \.suggestionFeatureDisabledLanguageList) .contains(where: { $0 == language.rawValue }) { - #if DEBUG - Logger.service.info("Suggestion service is disabled for \(language).") - #endif - return [] + throw DisabledLanguageError(language: language.rawValue) } return try await next(request) From a3dfb3fef7d347863e9c35ce3c721d2849d15e23 Mon Sep 17 00:00:00 2001 From: Shx Guo Date: Sun, 6 Oct 2024 09:57:50 +0800 Subject: [PATCH 5/8] Fix a potential crash --- Tool/Sources/ChatTab/ChatTab.swift | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Tool/Sources/ChatTab/ChatTab.swift b/Tool/Sources/ChatTab/ChatTab.swift index 3ca118af..8d1807cc 100644 --- a/Tool/Sources/ChatTab/ChatTab.swift +++ b/Tool/Sources/ChatTab/ChatTab.swift @@ -67,10 +67,11 @@ open class BaseChatTab { public init(store: StoreOf) { chatTabStore = store - self.id = store.id - self.title = store.title - + Task { @MainActor in + self.id = store.id + self.title = store.title + storeObserver.observe { [weak self] in guard let self else { return } self.title = store.title From 0f70ffc57b3866f627b357197fcb1ab14d21e314 Mon Sep 17 00:00:00 2001 From: Shx Guo Date: Mon, 30 Sep 2024 20:42:20 +0800 Subject: [PATCH 6/8] Fixx trigger menu fallback --- Tool/Sources/XcodeInspector/XcodeInspector+TriggerCommand.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Tool/Sources/XcodeInspector/XcodeInspector+TriggerCommand.swift b/Tool/Sources/XcodeInspector/XcodeInspector+TriggerCommand.swift index e6ea06eb..e06e5575 100644 --- a/Tool/Sources/XcodeInspector/XcodeInspector+TriggerCommand.swift +++ b/Tool/Sources/XcodeInspector/XcodeInspector+TriggerCommand.swift @@ -104,6 +104,7 @@ public extension AppInstanceInspector { .joined(separator: " of ") return """ click menu item "\(button)" of \(list) \ + of menu 1 \ of menu bar item "\(menuBarItem)" \ of menu bar 1 """ From 10895301994c126d6b94fdf537db130b73764215 Mon Sep 17 00:00:00 2001 From: Shx Guo Date: Sun, 6 Oct 2024 22:53:09 +0800 Subject: [PATCH 7/8] Bump supported Codeium version --- .../HostApp/AccountSettings/CodeiumView.swift | 4 ++-- .../CodeiumInstallationManager.swift | 16 ++++++++++++---- .../CodeiumService/Services/CodeiumService.swift | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Core/Sources/HostApp/AccountSettings/CodeiumView.swift b/Core/Sources/HostApp/AccountSettings/CodeiumView.swift index 217f8167..e60af2a8 100644 --- a/Core/Sources/HostApp/AccountSettings/CodeiumView.swift +++ b/Core/Sources/HostApp/AccountSettings/CodeiumView.swift @@ -151,7 +151,7 @@ struct CodeiumView: View { Text("Language Server Version: \(version)") uninstallButton } - case let .outdated(current: current, latest: latest): + case let .outdated(current: current, latest: latest, _): HStack { Text("Language Server Version: \(current) (Update Available: \(latest))") uninstallButton @@ -323,7 +323,7 @@ struct CodeiumView_Previews: PreviewProvider { CodeiumView(viewModel: TestViewModel( isSignedIn: true, - installationStatus: .outdated(current: "1.2.9", latest: "1.3.0"), + installationStatus: .outdated(current: "1.2.9", latest: "1.3.0", mandatory: true), installationStep: .downloading )) diff --git a/Tool/Sources/CodeiumService/LanguageServer/CodeiumInstallationManager.swift b/Tool/Sources/CodeiumService/LanguageServer/CodeiumInstallationManager.swift index 7f2c8866..87e5a6ef 100644 --- a/Tool/Sources/CodeiumService/LanguageServer/CodeiumInstallationManager.swift +++ b/Tool/Sources/CodeiumService/LanguageServer/CodeiumInstallationManager.swift @@ -3,7 +3,8 @@ import Terminal public struct CodeiumInstallationManager { private static var isInstalling = false - static let latestSupportedVersion = "1.8.83" + static let latestSupportedVersion = "1.20.9" + static let minimumSupportedVersion = "1.20.0" public init() {} @@ -60,7 +61,7 @@ public struct CodeiumInstallationManager { public enum InstallationStatus { case notInstalled case installed(String) - case outdated(current: String, latest: String) + case outdated(current: String, latest: String, mandatory: Bool) case unsupported(current: String, latest: String) } @@ -87,14 +88,21 @@ public struct CodeiumInstallationManager { { switch version.compare(targetVersion, options: .numeric) { case .orderedAscending: - return .outdated(current: version, latest: targetVersion) + switch version.compare(Self.minimumSupportedVersion) { + case .orderedAscending: + return .outdated(current: version, latest: Self.latestSupportedVersion, mandatory: true) + case .orderedSame: + return .outdated(current: version, latest: Self.latestSupportedVersion, mandatory: false) + case .orderedDescending: + return .outdated(current: version, latest: Self.latestSupportedVersion, mandatory: false) + } case .orderedSame: return .installed(version) case .orderedDescending: return .unsupported(current: version, latest: targetVersion) } } - return .outdated(current: "Unknown", latest: Self.latestSupportedVersion) + return .outdated(current: "Unknown", latest: Self.latestSupportedVersion, mandatory: false) } public enum InstallationStep { diff --git a/Tool/Sources/CodeiumService/Services/CodeiumService.swift b/Tool/Sources/CodeiumService/Services/CodeiumService.swift index de01e274..33cb8c0d 100644 --- a/Tool/Sources/CodeiumService/Services/CodeiumService.swift +++ b/Tool/Sources/CodeiumService/Services/CodeiumService.swift @@ -102,7 +102,7 @@ public class CodeiumService { languageServerVersion = version case .notInstalled: throw CodeiumError.languageServerNotInstalled - case let .outdated(version, _): + case let .outdated(version, _, _): languageServerVersion = version throw CodeiumError.languageServerOutdated } From 4235e68084df998be911f556d8bbb09ca3ee1af6 Mon Sep 17 00:00:00 2001 From: Shx Guo Date: Sun, 6 Oct 2024 23:10:17 +0800 Subject: [PATCH 8/8] Bump version to 0.34.2 --- Version.xcconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Version.xcconfig b/Version.xcconfig index 32d3ed1c..4b72dd9e 100644 --- a/Version.xcconfig +++ b/Version.xcconfig @@ -1,3 +1,3 @@ -APP_VERSION = 0.34.1 -APP_BUILD = 413 +APP_VERSION = 0.34.2 +APP_BUILD = 415