Skip to content

Commit 3a67130

Browse files
committed
Release 0.41.0
1 parent c6e9a07 commit 3a67130

File tree

5 files changed

+59
-27
lines changed

5 files changed

+59
-27
lines changed

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## 0.41.0 - August 14, 2025
9+
### Added
10+
- Code review feature.
11+
- Chat: Support for new model GPT-5.
12+
- Agent mode: Added support for new tool to read web URL contents.
13+
- Support disabling MCP when it's disabled by policy.
14+
- Support for opening MCP logs directly from the MCP settings page.
15+
- OAuth support for remote GitHub MCP server.
16+
17+
### Changed
18+
- Performance: Improved instant-apply speed for edit_file tool.
19+
20+
### Fixed
21+
- Chat Agent repeatedly reverts its own changes when editing the same file.
22+
- Performance: Avoid chat panel being stuck when sending a large text for chat.
23+
824
## 0.40.0 - July 24, 2025
925
### Added
1026
- Support disabling Agent mode when it's disabled by policy.

Core/Sources/ConversationTab/ChatPanel.swift

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -704,25 +704,13 @@ struct ChatPanelInputArea: View {
704704
}
705705
}
706706

707-
private var shouldEnableCCR: Bool {
708-
guard let quotaInfo = status.quotaInfo else { return false }
709-
710-
if quotaInfo.isFreeUser { return false }
711-
712-
if !isCCRFFEnabled { return false }
713-
714-
return true
707+
private var isFreeUser: Bool {
708+
guard let quotaInfo = status.quotaInfo else { return true }
709+
710+
return quotaInfo.isFreeUser
715711
}
716712

717713
private var ccrDisabledTooltip: String {
718-
guard let quotaInfo = status.quotaInfo else {
719-
return "GitHub Copilot Code Review is not available."
720-
}
721-
722-
if quotaInfo.isFreeUser {
723-
return "GitHub Copilot Code Review requires a paid subscription."
724-
}
725-
726714
if !isCCRFFEnabled {
727715
return "GitHub Copilot Code Review is disabled by org policy. Contact your admin."
728716
}
@@ -737,11 +725,9 @@ struct ChatPanelInputArea: View {
737725

738726
private var codeReviewButton: some View {
739727
Group {
740-
if !shouldEnableCCR {
741-
codeReviewIcon
742-
.foregroundColor(Color(nsColor: .tertiaryLabelColor))
743-
.help(ccrDisabledTooltip)
744-
} else {
728+
if isFreeUser {
729+
// Show nothing
730+
} else if isCCRFFEnabled {
745731
ZStack {
746732
stopButton
747733
.opacity(isRequestingCodeReview ? 1 : 0)
@@ -766,6 +752,10 @@ struct ChatPanelInputArea: View {
766752
.help("Code Review")
767753
}
768754
.buttonStyle(HoverButtonStyle(padding: 0))
755+
} else {
756+
codeReviewIcon
757+
.foregroundColor(Color(nsColor: .tertiaryLabelColor))
758+
.help(ccrDisabledTooltip)
769759
}
770760
}
771761
}

Core/Sources/HostApp/MCPSettings/MCPIntroView.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,21 @@ struct MCPIntroView: View {
154154
fileURLWithPath: FileLoggingLocation.mcpRuntimeLogsPath.description,
155155
isDirectory: true
156156
)
157+
158+
// Create directory if it doesn't exist
159+
if !FileManager.default.fileExists(atPath: url.path) {
160+
do {
161+
try FileManager.default.createDirectory(
162+
atPath: url.path,
163+
withIntermediateDirectories: true,
164+
attributes: nil
165+
)
166+
} catch {
167+
Logger.client.error("Failed to create MCP runtime log folder: \(error)")
168+
return
169+
}
170+
}
171+
157172
NSWorkspace.shared.open(url)
158173
}
159174
}

ReleaseNotes.md

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
1-
### GitHub Copilot for Xcode 0.40.0
1+
### GitHub Copilot for Xcode 0.41.0
22

33
**🚀 Highlights**
44

5-
* Performance: Fixed a freezing issue in 'Add Context' view when opening large projects.
6-
* Support disabling Agent mode when it's disabled by policy.
5+
* Code review feature.
6+
* Chat: Support for new model `GPT-5`.
7+
* Agent mode: Added support for new tool to read web URL contents.
8+
* Support disabling MCP when it's disabled by policy.
9+
* Support for opening MCP logs directly from the MCP settings page.
10+
* OAuth support for remote GitHub MCP server.
11+
12+
**💪 Improvements**
13+
14+
* Performance: Improved instant-apply speed for edit_file tool.
715

816
**🛠️ Bug Fixes**
917

10-
* Login failed due to insufficient permissions on the .config folder.
11-
* Fixed an issue that setting changes like proxy config did not take effect.
12-
* Increased the timeout for ask mode to prevent response failures due to timeout.
18+
* Chat Agent repeatedly reverts its own changes when editing the same file.
19+
* Performance: Avoid chat panel being stuck when sending a large text for chat.

Tool/Sources/Status/StatusObserver.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ public class StatusObserver: ObservableObject {
4343
let authStatus = await Status.shared.getAuthStatus()
4444
let statusInfo = await Status.shared.getStatus()
4545

46+
if authStatus.status == .notLoggedIn {
47+
await Status.shared.updateQuotaInfo(nil)
48+
}
49+
4650
self.authStatus = AuthStatus(
4751
status: authStatus.status,
4852
username: statusInfo.userName,

0 commit comments

Comments
 (0)