mirror of
https://github.com/openai/codex.git
synced 2026-11-02 19:43:24 +00:00
codex: keep config cwd strictness in core
This commit is contained in:
@@ -164,8 +164,19 @@ impl ConfigApi {
|
||||
|
||||
pub(crate) async fn read(
|
||||
&self,
|
||||
params: ConfigReadParams,
|
||||
mut params: ConfigReadParams,
|
||||
) -> Result<ConfigReadResponse, JSONRPCErrorError> {
|
||||
if let Some(cwd) = &mut params.cwd {
|
||||
let absolute_cwd =
|
||||
AbsolutePathBuf::relative_to_current_dir(cwd.as_str()).map_err(|err| {
|
||||
JSONRPCErrorError {
|
||||
code: INTERNAL_ERROR_CODE,
|
||||
message: format!("invalid config cwd: {err}"),
|
||||
data: None,
|
||||
}
|
||||
})?;
|
||||
*cwd = absolute_cwd.to_string_lossy().into_owned();
|
||||
}
|
||||
let fallback_cwd = params.cwd.as_ref().map(PathBuf::from);
|
||||
let mut response = self
|
||||
.config_service()
|
||||
|
||||
@@ -156,7 +156,7 @@ impl ConfigService {
|
||||
) -> Result<ConfigReadResponse, ConfigServiceError> {
|
||||
let layers = match params.cwd.as_deref() {
|
||||
Some(cwd) => {
|
||||
let cwd = AbsolutePathBuf::relative_to_current_dir(cwd).map_err(|err| {
|
||||
let cwd = AbsolutePathBuf::try_from(PathBuf::from(cwd)).map_err(|err| {
|
||||
ConfigServiceError::io("failed to resolve config cwd to an absolute path", err)
|
||||
})?;
|
||||
crate::config::ConfigBuilder::default()
|
||||
|
||||
@@ -232,20 +232,6 @@ async fn read_includes_origins_and_layers() {
|
||||
));
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn read_accepts_relative_cwd() {
|
||||
let tmp = tempdir().expect("tempdir");
|
||||
let service = ConfigService::without_managed_config_for_tests(tmp.path().to_path_buf());
|
||||
|
||||
service
|
||||
.read(ConfigReadParams {
|
||||
include_layers: false,
|
||||
cwd: Some(".".to_string()),
|
||||
})
|
||||
.await
|
||||
.expect("relative cwd should resolve");
|
||||
}
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
#[tokio::test]
|
||||
async fn write_value_succeeds_when_managed_preferences_expand_home_directory_paths() -> Result<()> {
|
||||
|
||||
Reference in New Issue
Block a user