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
|
||||
}
|
||||
|
||||
/// 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
|
||||
class SettingsService {
|
||||
static let shared = SettingsService()
|
||||
@@ -760,7 +769,7 @@ class SettingsService {
|
||||
// MARK: - Mail Settings (Apple Mail.app via AppleScript)
|
||||
|
||||
var mailEnabled: Bool {
|
||||
get { cache["mailEnabled"] == "true" }
|
||||
get { !MailTools.isHiddenPendingAppleFix && cache["mailEnabled"] == "true" }
|
||||
set {
|
||||
cache["mailEnabled"] = String(newValue)
|
||||
DatabaseService.shared.setSetting(key: "mailEnabled", value: String(newValue))
|
||||
|
||||
Reference in New Issue
Block a user