fix(dev): align provider resilience replay with dev auth APIs

This commit is contained in:
argenis de la rosa 2026-03-05 11:17:11 -05:00 committed by Argenis
parent d950ba31be
commit fa0a7e01f8
2 changed files with 2 additions and 58 deletions

View File

@ -1,6 +1,6 @@
use crate::config::Config;
use crate::security::SecurityPolicy;
use anyhow::{bail, Result};
use anyhow::{anyhow, bail, Result};
pub mod consolidation;
mod schedule;

View File

@ -117,43 +117,6 @@ impl OpenAiCodexProvider {
})
}
/// Extract and persist quota metadata from response headers.
async fn extract_and_persist_quota(
&self,
headers: &reqwest::header::HeaderMap,
profile_override: &str,
) -> anyhow::Result<()> {
use crate::providers::quota_adapter::UniversalQuotaExtractor;
let extractor = UniversalQuotaExtractor::new();
if let Some(quota) = extractor.extract("openai-codex", headers, None) {
tracing::debug!(
provider = "openai-codex",
profile = profile_override,
remaining = ?quota.rate_limit_remaining,
reset_at = ?quota.rate_limit_reset_at,
"Extracted quota metadata from response headers"
);
self.auth
.store
.update_quota_metadata(
profile_override,
quota.rate_limit_remaining,
quota.rate_limit_reset_at,
quota.rate_limit_total,
)
.await?;
tracing::debug!(
provider = "openai-codex",
profile = profile_override,
"Persisted quota metadata to auth profiles store"
);
}
Ok(())
}
}
fn default_zeroclaw_dir() -> PathBuf {
@ -679,26 +642,7 @@ impl OpenAiCodexProvider {
return Err(super::api_error("OpenAI Codex", response).await);
}
// Capture headers for quota metadata extraction before consuming response.
let headers = response.headers().clone();
let result = decode_responses_body(response).await?;
// Persist quota metadata for the active auth profile when available.
if let Some(profile_override) = &self.auth_profile_override {
if let Err(err) = self
.extract_and_persist_quota(&headers, profile_override)
.await
{
tracing::warn!(
error = %err,
provider = "openai-codex",
profile = profile_override,
"Failed to persist quota metadata"
);
}
}
Ok(result)
decode_responses_body(response).await
}
}