mirror of
https://github.com/openai/codex.git
synced 2026-11-13 14:46:14 +00:00
Enforce exact values from managed config requirements (#34597)
## What changed - Apply managed values for `sqlite_home`, `log_dir`, `model_catalog_json`, `check_for_update_on_startup`, `allow_login_shell`, the report-submission opt-in, and `windows.sandbox_private_desktop` to the runtime configuration, with source-aware warnings when they override configured values. - Expose these values through `configRequirements/read`, return them from `config/read`, include them in session config locks, and show their sources in the TUI config debug view. - Reject app-server writes that overlap an exact managed requirement with `configRequirementReadonly` while leaving unrelated sibling keys writable. ## Testing - Cover runtime overrides, requirement API mapping, config reads and writes, session lock serialization, cross-platform path URIs, and debug output. GitOrigin-RevId: d4e23b6fd7775c1a6dfe2eab313cdcee50b07081
This commit is contained in:
1 parent
7442f5f932
commit
ee71c4a90f
34 files changed
+1566
-71
No files matched your search
@@ -1807,11 +1807,46 @@ fn config_requirements_granular_allowed_approval_policy_is_marked_experimental()
|
||||
enforce_residency: None,
|
||||
network: None,
|
||||
models: None,
|
||||
sqlite_home: None,
|
||||
log_dir: None,
|
||||
model_catalog_json: None,
|
||||
check_for_update_on_startup: None,
|
||||
allow_login_shell: None,
|
||||
feedback: None,
|
||||
windows_sandbox_private_desktop: None,
|
||||
});
|
||||
|
||||
assert_eq!(reason, Some("askForApproval.granular"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn config_requirements_read_accepts_foreign_path_uris() {
|
||||
let response: ConfigRequirementsReadResponse = serde_json::from_value(json!({
|
||||
"requirements": {
|
||||
"sqliteHome": "file:///C:/Users/alice/.codex/state",
|
||||
"logDir": "file:///C:/Users/alice/.codex/logs",
|
||||
"modelCatalogJson": "file:///C:/Users/alice/.codex/models.json"
|
||||
}
|
||||
}))
|
||||
.expect("requirements response with foreign paths should deserialize");
|
||||
let requirements = response
|
||||
.requirements
|
||||
.expect("requirements should be present");
|
||||
|
||||
assert_eq!(
|
||||
requirements.sqlite_home,
|
||||
Some(PathUri::parse("file:///C:/Users/alice/.codex/state").expect("valid URI"))
|
||||
);
|
||||
assert_eq!(
|
||||
requirements.log_dir,
|
||||
Some(PathUri::parse("file:///C:/Users/alice/.codex/logs").expect("valid URI"))
|
||||
);
|
||||
assert_eq!(
|
||||
requirements.model_catalog_json,
|
||||
Some(PathUri::parse("file:///C:/Users/alice/.codex/models.json").expect("valid URI"))
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn client_request_thread_start_granular_approval_policy_is_marked_experimental() {
|
||||
let reason = crate::experimental_api::ExperimentalApi::experimental_reason(
|
||||
|
||||
Reference in new issue
Block a user