Skip to content

Commit e7d6345

Browse files
charley-oaicodex
andcommitted
tui: preserve world-writable warning opt-out
Co-authored-by: Codex <noreply@openai.com>
1 parent a543739 commit e7d6345

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

codex-rs/tui/src/chatwidget.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8251,7 +8251,16 @@ impl ChatWidget {
82518251
&["--confirm-world-writable", "--remember-world-writable"],
82528252
)
82538253
})
8254-
.unwrap_or_default();
8254+
.unwrap_or_else(|| {
8255+
vec![
8256+
Box::new(|tx| {
8257+
tx.send(AppEvent::UpdateWorldWritableWarningAcknowledged(true));
8258+
}),
8259+
Box::new(|tx| {
8260+
tx.send(AppEvent::PersistWorldWritableWarningAcknowledged);
8261+
}),
8262+
]
8263+
});
82558264

82568265
let items = vec![
82578266
SelectionItem {

codex-rs/tui/src/chatwidget/tests.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9062,6 +9062,31 @@ async fn permissions_full_access_history_cell_emitted_only_after_confirmation()
90629062
);
90639063
}
90649064

9065+
#[cfg(target_os = "windows")]
9066+
#[tokio::test]
9067+
async fn world_writable_warning_without_preset_persists_dont_warn_again() {
9068+
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(None).await;
9069+
9070+
chat.open_world_writable_warning_confirmation(None, Vec::new(), 0, true);
9071+
chat.handle_key_event(KeyEvent::from(KeyCode::Down));
9072+
chat.handle_key_event(KeyEvent::from(KeyCode::Enter));
9073+
9074+
let events: Vec<AppEvent> = std::iter::from_fn(|| rx.try_recv().ok()).collect();
9075+
assert!(
9076+
events.iter().any(|event| matches!(
9077+
event,
9078+
AppEvent::UpdateWorldWritableWarningAcknowledged(true)
9079+
)),
9080+
"expected update-world-writable-warning acknowledgement event, got: {events:?}"
9081+
);
9082+
assert!(
9083+
events
9084+
.iter()
9085+
.any(|event| matches!(event, AppEvent::PersistWorldWritableWarningAcknowledged)),
9086+
"expected persist-world-writable-warning acknowledgement event, got: {events:?}"
9087+
);
9088+
}
9089+
90659090
//
90669091
// Snapshot test: command approval modal
90679092
//

0 commit comments

Comments
 (0)