diff --git a/internal/config/config.go b/internal/config/config.go index ff948b874ea1613ca126053547dcf9b7d4cc3297..6e1c111f1b183a774958e9f48cfaa53ff8624de4 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -167,6 +167,7 @@ type Options struct { DisableProviderAutoUpdate bool `json:"disable_provider_auto_update,omitempty" jsonschema:"description=Disable providers auto-update,default=false"` Attribution *Attribution `json:"attribution,omitempty" jsonschema:"description=Attribution settings for generated content"` DisableMetrics bool `json:"disable_metrics,omitempty" jsonschema:"description=Disable sending metrics,default=false"` + DisableExitConfirmation bool `json:"disable_exit_confirmation,omitempty" jsonschema:"description=Disable exit confirmation dialog,default=false"` } type MCPs map[string]MCPConfig diff --git a/internal/tui/tui.go b/internal/tui/tui.go index efaf1dbb9431bc3a69fb08278b65f9b34ac281fa..a4960372c9f83f25c2e1885c0e111c2cc309a716 100644 --- a/internal/tui/tui.go +++ b/internal/tui/tui.go @@ -180,6 +180,9 @@ func (a *appModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { Model: compact.NewCompactDialogCmp(a.app.CoderAgent, msg.SessionID, true), }) case commands.QuitMsg: + if a.app.Config().Options.DisableExitConfirmation { + return a, tea.Quit + } return a, util.CmdHandler(dialogs.OpenDialogMsg{ Model: quit.NewQuitDialog(), }) @@ -400,6 +403,9 @@ func (a *appModel) handleKeyPressMsg(msg tea.KeyPressMsg) tea.Cmd { if a.dialog.ActiveDialogID() == quit.QuitDialogID { return tea.Quit } + if a.app.Config().Options.DisableExitConfirmation { + return tea.Quit + } return util.CmdHandler(dialogs.OpenDialogMsg{ Model: quit.NewQuitDialog(), })