Update security check wording (#30317)

This commit is contained in:
Eric Traut authored and GitHub committed 2026-06-26 20:05:32 -07:00
1 parent 4f1b5a4b73
commit c464468493
6 files changed
+87 -93

No files matched your search

@@ -1151,8 +1151,8 @@ async fn live_app_server_cyber_policy_error_renders_dedicated_notice() {
let cells = drain_insert_history(&mut rx); let cells = drain_insert_history(&mut rx);
assert_eq!(cells.len(), 1); assert_eq!(cells.len(), 1);
let rendered = lines_to_single_string(&cells[0]); let rendered = lines_to_single_string(&cells[0]);
assert!(rendered.contains("This chat was flagged for possible cybersecurity risk")); assert!(rendered.contains("This content can't be shown"));
assert!(rendered.contains("Trusted Access for Cyber")); assert!(rendered.contains("extra caution with cybersecurity requests"));
assert!(!rendered.contains("server fallback message")); assert!(!rendered.contains("server fallback message"));
assert!(!chat.bottom_pane.is_task_running()); assert!(!chat.bottom_pane.is_task_running());
} }
@@ -1171,6 +1171,7 @@ async fn app_server_safety_access_errors_render_dedicated_notice() {
assert_eq!(cells.len(), 1); assert_eq!(cells.len(), 1);
let rendered = lines_to_single_string(&cells[0]); let rendered = lines_to_single_string(&cells[0]);
assert!(rendered.contains("This content can't be shown")); assert!(rendered.contains("This content can't be shown"));
assert!(rendered.contains("biological research"));
assert!(!rendered.contains("Invalid prompt:")); assert!(!rendered.contains("Invalid prompt:"));
} }
} }
@@ -54,8 +54,8 @@ async fn app_server_cyber_policy_error_renders_dedicated_notice() {
let cells = drain_insert_history(&mut rx); let cells = drain_insert_history(&mut rx);
assert_eq!(cells.len(), 1); assert_eq!(cells.len(), 1);
let rendered = lines_to_single_string(&cells[0]); let rendered = lines_to_single_string(&cells[0]);
assert!(rendered.contains("This chat was flagged for possible cybersecurity risk")); assert!(rendered.contains("This content can't be shown"));
assert!(rendered.contains("Trusted Access for Cyber")); assert!(rendered.contains("extra caution with cybersecurity requests"));
assert!(!rendered.contains("server fallback message")); assert!(!rendered.contains("server fallback message"));
} }
+59 -74
View File
@@ -86,91 +86,76 @@ pub(crate) fn new_warning_event(message: String) -> PrefixedWrappedHistoryCell {
} }
#[derive(Debug)] #[derive(Debug)]
pub(crate) struct SafetyAccessBlockCell; pub(crate) struct SafetyAccessBlockCell {
body: &'static str,
trusted_access_url: &'static str,
}
const SAFETY_ACCESS_BLOCK_TITLE: &str = "This content can't be shown"; const SAFETY_ACCESS_BLOCK_TITLE: &str = "This content can't be shown";
const SAFETY_ACCESS_BLOCK_BODY: &str = "We've limited access to this content for safety reasons. This type of information may be used to benefit or to harm people."; const SAFETY_ACCESS_BLOCK_LEARN_MORE_URL: &str = "https://help.openai.com/en/articles/20001326";
pub(crate) fn new_safety_access_block_event() -> SafetyAccessBlockCell { pub(crate) fn new_safety_access_block_event() -> SafetyAccessBlockCell {
SafetyAccessBlockCell SafetyAccessBlockCell {
body: "We take extra caution with requests involving biological research and applications that could pose safety risks. If you’re a researcher at an approved organization, you may be able to apply for Trusted Access.",
trusted_access_url: "https://openai.com/form/trusted-access-for-life-sciences",
}
}
pub(crate) fn new_cyber_policy_error_event() -> SafetyAccessBlockCell {
SafetyAccessBlockCell {
body: "We take extra caution with cybersecurity requests. If you’re a security professional, you may be able to apply for Trusted Access.",
trusted_access_url: "https://openai.com/form/enterprise-trusted-access-for-cyber/",
}
} }
impl HistoryCell for SafetyAccessBlockCell { impl HistoryCell for SafetyAccessBlockCell {
fn display_lines(&self, width: u16) -> Vec<Line<'static>> { fn display_lines(&self, width: u16) -> Vec<Line<'static>> {
let mut lines = vec![vec!["ⓘ ".cyan(), SAFETY_ACCESS_BLOCK_TITLE.bold()].into()]; visible_lines(self.display_hyperlink_lines(width))
let body = Line::from(vec![" ".into(), SAFETY_ACCESS_BLOCK_BODY.dim()]);
let wrap_width = width.saturating_sub(2).max(1) as usize;
let wrapped = adaptive_wrap_line(
&body,
RtOptions::new(wrap_width).subsequent_indent(" ".into()),
);
push_owned_lines(&wrapped, &mut lines);
lines
}
fn raw_lines(&self) -> Vec<Line<'static>> {
vec![
Line::from(SAFETY_ACCESS_BLOCK_TITLE),
Line::from(SAFETY_ACCESS_BLOCK_BODY),
]
}
}
const TRUSTED_ACCESS_FOR_CYBER_URL: &str = "https://chatgpt.com/cyber";
#[derive(Debug)]
pub(crate) struct CyberPolicyNoticeCell;
pub(crate) fn new_cyber_policy_error_event() -> CyberPolicyNoticeCell {
CyberPolicyNoticeCell
}
impl HistoryCell for CyberPolicyNoticeCell {
fn display_lines(&self, width: u16) -> Vec<Line<'static>> {
let mut lines: Vec<Line<'static>> = Vec::new();
lines.push(
vec![
"ⓘ ".cyan(),
"This chat was flagged for possible cybersecurity risk".bold(),
]
.into(),
);
let wrap_width = width.saturating_sub(2).max(1) as usize;
let body = Line::from(vec![
" If this seems wrong, try rephrasing your request. To get authorized for security work, join the "
.dim(),
"Trusted Access for Cyber".cyan().underlined(),
" program.".dim(),
]);
let wrapped = adaptive_wrap_line(
&body,
RtOptions::new(wrap_width).subsequent_indent(" ".into()),
);
push_owned_lines(&wrapped, &mut lines);
lines.push(
vec![
" ".into(),
TRUSTED_ACCESS_FOR_CYBER_URL.cyan().underlined(),
]
.into(),
);
lines
}
fn raw_lines(&self) -> Vec<Line<'static>> {
vec![
Line::from("This chat was flagged for possible cybersecurity risk"),
Line::from(
"If this seems wrong, try rephrasing your request. To get authorized for security work, join the Trusted Access for Cyber program.",
),
Line::from(TRUSTED_ACCESS_FOR_CYBER_URL),
]
} }
fn display_hyperlink_lines(&self, width: u16) -> Vec<HyperlinkLine> { fn display_hyperlink_lines(&self, width: u16) -> Vec<HyperlinkLine> {
crate::terminal_hyperlinks::annotate_web_urls(self.display_lines(width)) let mut lines = vec![HyperlinkLine::new(
vec!["ⓘ ".cyan(), SAFETY_ACCESS_BLOCK_TITLE.bold()].into(),
)];
let body = Line::from(vec![" ".into(), self.body.dim()]);
let wrap_width = width.saturating_sub(2).max(1) as usize;
let wrapped = adaptive_wrap_line(
&body,
RtOptions::new(wrap_width).subsequent_indent(" ".into()),
);
let mut wrapped_body = Vec::new();
push_owned_lines(&wrapped, &mut wrapped_body);
lines.extend(plain_hyperlink_lines(wrapped_body));
for (label, url) in [
("Trusted Access", self.trusted_access_url),
("Learn more", SAFETY_ACCESS_BLOCK_LEARN_MORE_URL),
] {
let source = crate::terminal_hyperlinks::annotate_web_urls_in_line(
vec![format!(" {label}: ").dim(), url.cyan().underlined()].into(),
);
let wrapped = crate::wrapping::word_wrap_line(
&source.line,
RtOptions::new(wrap_width).subsequent_indent(" ".into()),
);
let mut wrapped_links = Vec::new();
push_owned_lines(&wrapped, &mut wrapped_links);
lines.extend(crate::terminal_hyperlinks::remap_wrapped_line(
&source,
wrapped_links,
));
}
lines
}
fn raw_lines(&self) -> Vec<Line<'static>> {
let trusted_access_url = self.trusted_access_url;
vec![
Line::from(SAFETY_ACCESS_BLOCK_TITLE),
Line::from(self.body),
Line::from(format!("Trusted Access: {trusted_access_url}")),
Line::from(format!("Learn more: {SAFETY_ACCESS_BLOCK_LEARN_MORE_URL}")),
]
} }
fn transcript_hyperlink_lines(&self, width: u16) -> Vec<HyperlinkLine> { fn transcript_hyperlink_lines(&self, width: u16) -> Vec<HyperlinkLine> {
@@ -1,12 +1,16 @@
--- ---
source: tui/src/history_cell.rs source: tui/src/history_cell/tests.rs
assertion_line: 3312
expression: rendered expression: rendered
--- ---
ⓘ This chat was flagged for possible cybersecurity risk ⓘ This content can't be shown
If this seems wrong, try We take extra caution with
rephrasing your request. To get cybersecurity requests. If
authorized for security work, you’re a security professional,
join the Trusted Access for you may be able to apply for
Cyber program. Trusted Access.
https://chatgpt.com/cyber Trusted Access: https://
openai.com/form/enterprise-
trusted-access-for-cyber/
Learn more: https://
help.openai.com/en/
articles/20001326
@@ -3,7 +3,8 @@ source: tui/src/history_cell.rs
assertion_line: 3305 assertion_line: 3305
expression: rendered expression: rendered
--- ---
ⓘ This chat was flagged for possible cybersecurity risk ⓘ This content can't be shown
If this seems wrong, try rephrasing your request. To get authorized for We take extra caution with cybersecurity requests. If you’re a security
security work, join the Trusted Access for Cyber program. professional, you may be able to apply for Trusted Access.
https://chatgpt.com/cyber Trusted Access: https://openai.com/form/enterprise-trusted-access-for-cyber/
Learn more: https://help.openai.com/en/articles/20001326
@@ -3,5 +3,8 @@ source: tui/src/history_cell/tests.rs
expression: rendered expression: rendered
--- ---
ⓘ This content can't be shown ⓘ This content can't be shown
We've limited access to this content for safety reasons. This type of We take extra caution with requests involving biological research and
information may be used to benefit or to harm people. applications that could pose safety risks. If you’re a researcher at an
approved organization, you may be able to apply for Trusted Access.
Trusted Access: https://openai.com/form/trusted-access-for-life-sciences
Learn more: https://help.openai.com/en/articles/20001326