Enable TUI notifications by default (#6633)

## Summary
- default the `tui.notifications` setting to enabled so desktop
notifications work out of the box
- update configuration tests and documentation to reflect the new
default

## Testing
- `cargo test -p codex-core` *(fails:
`exec::tests::kill_child_process_group_kills_grandchildren_on_timeout`
is flaky in this sandbox because the spawned grandchild process stays
alive)*
- `cargo test -p codex-core
exec::tests::kill_child_process_group_kills_grandchildren_on_timeout`
*(fails: same sandbox limitation as above)*

------
[Codex
Task](https://chatgpt.com/codex/tasks/task_i_69166f811144832c9e8aaf8ee2642373)
This commit is contained in:
Jeremy Rose
2025-11-14 09:28:09 -08:00
committed by GitHub
parent 4719cba19a
commit 799364de87
4 changed files with 8 additions and 8 deletions

View File

@@ -1323,7 +1323,7 @@ persistence = "none"
}
#[test]
fn tui_config_missing_notifications_field_defaults_to_disabled() {
fn tui_config_missing_notifications_field_defaults_to_enabled() {
let cfg = r#"
[tui]
"#;
@@ -1332,7 +1332,7 @@ persistence = "none"
.expect("TUI config without notifications should succeed");
let tui = parsed.tui.expect("config should include tui section");
assert_eq!(tui.notifications, Notifications::Enabled(false));
assert_eq!(tui.notifications, Notifications::Enabled(true));
}
#[test]

View File

@@ -338,7 +338,7 @@ pub enum Notifications {
impl Default for Notifications {
fn default() -> Self {
Self::Enabled(false)
Self::Enabled(true)
}
}
@@ -346,7 +346,7 @@ impl Default for Notifications {
#[derive(Deserialize, Debug, Clone, PartialEq, Default)]
pub struct Tui {
/// Enable desktop notifications from the TUI when the terminal is unfocused.
/// Defaults to `false`.
/// Defaults to `true`.
#[serde(default)]
pub notifications: Notifications,
}

View File

@@ -856,7 +856,7 @@ Options that are specific to the TUI.
```toml
[tui]
# Send desktop notifications when approvals are required or a turn completes.
# Defaults to false.
# Defaults to true.
notifications = true
# You can optionally filter to specific notification types.
@@ -947,7 +947,7 @@ Valid values:
| `history.max_bytes` | number | Currently ignored (not enforced). |
| `file_opener` | `vscode` \| `vscode-insiders` \| `windsurf` \| `cursor` \| `none` | URI scheme for clickable citations (default: `vscode`). |
| `tui` | table | TUIspecific options. |
| `tui.notifications` | boolean \| array<string> | Enable desktop notifications in the tui (default: false). |
| `tui.notifications` | boolean \| array<string> | Enable desktop notifications in the tui (default: true). |
| `hide_agent_reasoning` | boolean | Hide model reasoning events. |
| `show_raw_agent_reasoning` | boolean | Show raw reasoning (when available). |
| `model_reasoning_effort` | `minimal` \| `low` \| `medium` \| `high` | Responses API reasoning effort. |

View File

@@ -136,8 +136,8 @@ file_opener = "vscode"
################################################################################
[tui]
# Desktop notifications from the TUI: boolean or filtered list. Default: false
# Examples: true | ["agent-turn-complete", "approval-requested"]
# Desktop notifications from the TUI: boolean or filtered list. Default: true
# Examples: false | ["agent-turn-complete", "approval-requested"]
notifications = false
# Suppress internal reasoning events from output (default: false)