Fix bug where agent could relaunch after being disabled

This commit is contained in:
Max Goedjen 2025-10-07 20:53:03 -07:00
parent f13bc23991
commit 570253736f
No known key found for this signature in database
3 changed files with 7 additions and 2 deletions

View File

@ -17,7 +17,8 @@ struct Secretive: App {
.onReceive(NotificationCenter.default.publisher(for: NSApplication.didBecomeActiveNotification)) { _ in .onReceive(NotificationCenter.default.publisher(for: NSApplication.didBecomeActiveNotification)) { _ in
Task { Task {
@AppStorage("defaultsHasRunSetup") var hasRunSetup = false @AppStorage("defaultsHasRunSetup") var hasRunSetup = false
guard hasRunSetup else { return } @AppStorage("explicitlyDisabled") var explicitlyDisabled = false
guard hasRunSetup && !explicitlyDisabled else { return }
agentLaunchController.check() agentLaunchController.check()
guard !agentLaunchController.developmentBuild else { return } guard !agentLaunchController.developmentBuild else { return }
if justUpdatedChecker.justUpdatedBuild || !agentLaunchController.running { if justUpdatedChecker.justUpdatedBuild || !agentLaunchController.running {

View File

@ -40,7 +40,7 @@ import ServiceManagement
// The process corresponding to this instance of Secretive // The process corresponding to this instance of Secretive
var instanceSecretAgentProcess: NSRunningApplication? { var instanceSecretAgentProcess: NSRunningApplication? {
// FIXME: CHECK VERSION // TODO: CHECK VERSION
let agents = allSecretAgentProcesses let agents = allSecretAgentProcesses
for agent in agents { for agent in agents {
guard let url = agent.bundleURL else { continue } guard let url = agent.bundleURL else { continue }

View File

@ -15,6 +15,7 @@ struct AgentStatusView: View {
struct AgentRunningView: View { struct AgentRunningView: View {
@Environment(\.agentLaunchController) private var agentLaunchController: any AgentLaunchControllerProtocol @Environment(\.agentLaunchController) private var agentLaunchController: any AgentLaunchControllerProtocol
@AppStorage("explicitlyDisabled") var explicitlyDisabled = false
var body: some View { var body: some View {
Form { Form {
@ -53,6 +54,7 @@ struct AgentRunningView: View {
Menu(.agentDetailsRestartAgentButton) { Menu(.agentDetailsRestartAgentButton) {
Button(.agentDetailsDisableAgentButton) { Button(.agentDetailsDisableAgentButton) {
Task { Task {
explicitlyDisabled = true
try? await agentLaunchController try? await agentLaunchController
.uninstall() .uninstall()
} }
@ -79,6 +81,7 @@ struct AgentNotRunningView: View {
@Environment(\.agentLaunchController) private var agentLaunchController @Environment(\.agentLaunchController) private var agentLaunchController
@State var triedRestart = false @State var triedRestart = false
@State var loading = false @State var loading = false
@AppStorage("explicitlyDisabled") var explicitlyDisabled = false
var body: some View { var body: some View {
Form { Form {
@ -94,6 +97,7 @@ struct AgentNotRunningView: View {
if !triedRestart { if !triedRestart {
Spacer() Spacer()
Button { Button {
explicitlyDisabled = false
guard !loading else { return } guard !loading else { return }
loading = true loading = true
Task { Task {