mirror of
https://github.com/openai/codex.git
synced 2026-11-10 21:00:47 +00:00
Resolve saved Daybreak preferences against advertised model programs (#59192)
## What changed Add `SavedDaybreakChoice` and `ModelAccessPrograms::select_saved` to resolve an optional saved preference. Enabled selects an advertised Daybreak program, disabled selects an advertised standard program, and unset or unsupported choices return `None`. ## Testing Extend selection tests to cover enabled, disabled, and unset preferences across advertised program combinations, preserving the preference for Daybreak Blue over Red. GitOrigin-RevId: 1c7ab3fe1d3a48ad64519bfedfe27de90838516c
This commit is contained in:
@@ -17,7 +17,35 @@ pub struct ModelAccessPrograms {
|
||||
pub cyber: Vec<CyberAccessProgram>,
|
||||
}
|
||||
|
||||
/// Saved preference to resolve against the selected model's advertised programs.
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||
pub enum SavedDaybreakChoice {
|
||||
Unset,
|
||||
On,
|
||||
Off,
|
||||
}
|
||||
|
||||
impl From<Option<bool>> for SavedDaybreakChoice {
|
||||
fn from(enabled: Option<bool>) -> Self {
|
||||
match enabled {
|
||||
Some(true) => Self::On,
|
||||
Some(false) => Self::Off,
|
||||
None => Self::Unset,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ModelAccessPrograms {
|
||||
/// Select only an advertised program for explicit saved intent. Unset and
|
||||
/// unsupported choices remain omitted, including On without Daybreak support.
|
||||
pub fn select_saved(&self, choice: SavedDaybreakChoice) -> Option<CyberAccessProgram> {
|
||||
match choice {
|
||||
SavedDaybreakChoice::On => self.daybreak(),
|
||||
SavedDaybreakChoice::Off => self.standard(),
|
||||
SavedDaybreakChoice::Unset => None,
|
||||
}
|
||||
}
|
||||
|
||||
/// Select the preferred Daybreak treatment advertised for this model.
|
||||
pub fn daybreak(&self) -> Option<CyberAccessProgram> {
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user