Hide Mail integration behind a kill switch pending the macOS 27 beta fix
Confirmed via live debugging this is a genuine OS bug (first-time Automation consent grants never work on this beta), not fixable in-app. Rather than ship a Settings section that can't currently work, added MailTools.isHiddenPendingAppleFix (true for now) mirroring the existing PersonalDataTools kill switch used for the same purpose during an earlier Calendar/Contacts TCC bug — hides the Settings UI and forces mailEnabled to false regardless of the persisted value, with no code deleted. Flip back to false once a newer beta/RC is confirmed to fix it.
This commit is contained in:
@@ -32,6 +32,15 @@ enum PersonalDataTools {
|
|||||||
static let isHiddenPendingAppleFix = false
|
static let isHiddenPendingAppleFix = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Kill switch for the Mail integration, hidden while blocked by a confirmed macOS 27 beta bug:
|
||||||
|
/// first-time Automation consent grants never show a dialog or create a TCC record at all (not
|
||||||
|
/// fixable in-app — see feature_mail_applescript_integration in memory for the full investigation).
|
||||||
|
/// Same shape as `PersonalDataTools` above. Flip back to `false` once Rune confirms a newer beta/RC
|
||||||
|
/// fixes it — the tool code itself is complete and doesn't need changes, just re-enabling.
|
||||||
|
enum MailTools {
|
||||||
|
static let isHiddenPendingAppleFix = true
|
||||||
|
}
|
||||||
|
|
||||||
@Observable
|
@Observable
|
||||||
class SettingsService {
|
class SettingsService {
|
||||||
static let shared = SettingsService()
|
static let shared = SettingsService()
|
||||||
@@ -760,7 +769,7 @@ class SettingsService {
|
|||||||
// MARK: - Mail Settings (Apple Mail.app via AppleScript)
|
// MARK: - Mail Settings (Apple Mail.app via AppleScript)
|
||||||
|
|
||||||
var mailEnabled: Bool {
|
var mailEnabled: Bool {
|
||||||
get { cache["mailEnabled"] == "true" }
|
get { !MailTools.isHiddenPendingAppleFix && cache["mailEnabled"] == "true" }
|
||||||
set {
|
set {
|
||||||
cache["mailEnabled"] = String(newValue)
|
cache["mailEnabled"] = String(newValue)
|
||||||
DatabaseService.shared.setSetting(key: "mailEnabled", value: String(newValue))
|
DatabaseService.shared.setSetting(key: "mailEnabled", value: String(newValue))
|
||||||
|
|||||||
@@ -1033,6 +1033,10 @@ It's better to admit "I need more information" or "I cannot do that" than to fak
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MARK: Mail
|
// MARK: Mail
|
||||||
|
// Hidden while MailTools.isHiddenPendingAppleFix is true — blocked by a confirmed macOS 27
|
||||||
|
// beta bug (first-time Automation consent grants never work), not an app bug. See
|
||||||
|
// feature_mail_applescript_integration in memory. Flip the switch back once fixed.
|
||||||
|
if !MailTools.isHiddenPendingAppleFix {
|
||||||
Divider()
|
Divider()
|
||||||
|
|
||||||
VStack(alignment: .leading, spacing: 8) {
|
VStack(alignment: .leading, spacing: 8) {
|
||||||
@@ -1120,6 +1124,7 @@ It's better to admit "I need more information" or "I cannot do that" than to fak
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - External MCP Servers Section
|
// MARK: - External MCP Servers Section
|
||||||
|
|||||||
Reference in New Issue
Block a user