rename: adopt yoi identity
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
|
||||
## 責務
|
||||
|
||||
- プロバイダ / モデルカタログの builtin (`resources/{providers,models}/builtin.toml`) と user override (`$XDG_CONFIG_HOME/insomnia/{providers,models}.toml`) の解決
|
||||
- プロバイダ / モデルカタログの builtin (`resources/{providers,models}/builtin.toml`) と user override (`$XDG_CONFIG_HOME/yoi/{providers,models}.toml`) の解決
|
||||
- `ModelManifest` の ref 形を `(provider, model_id)` に split し、`ModelConfig` へ展開
|
||||
- `AuthRef::SecretRef` / `AuthRef::ApiKey` を `ResolvedAuth::ApiKey` に解決(通常は local secret store、低レベル manifest では明示ファイルも可)
|
||||
- `AuthRef::None` / `AuthRef::CodexOAuth` の解決
|
||||
|
||||
@@ -636,9 +636,9 @@ auth_hint = { kind = "none" }
|
||||
assert!(matches!(err, CatalogError::Parse { .. }));
|
||||
}
|
||||
|
||||
/// `INSOMNIA_CONFIG_DIR` を tempdir に向けるテストガード。
|
||||
/// `paths::config_dir` は他の env (INSOMNIA_HOME / XDG_CONFIG_HOME)
|
||||
/// より高優先で `INSOMNIA_CONFIG_DIR` を尊重するため、これだけで
|
||||
/// `YOI_CONFIG_DIR` を tempdir に向けるテストガード。
|
||||
/// `paths::config_dir` は他の env (YOI_HOME / XDG_CONFIG_HOME)
|
||||
/// より高優先で `YOI_CONFIG_DIR` を尊重するため、これだけで
|
||||
/// 開発機の env 設定に左右されないテストになる。
|
||||
struct ConfigDirGuard {
|
||||
prev: Option<String>,
|
||||
@@ -646,10 +646,10 @@ auth_hint = { kind = "none" }
|
||||
|
||||
impl ConfigDirGuard {
|
||||
fn new(path: &Path) -> Self {
|
||||
let prev = std::env::var("INSOMNIA_CONFIG_DIR").ok();
|
||||
let prev = std::env::var("YOI_CONFIG_DIR").ok();
|
||||
// SAFETY: serial_test の `#[serial]` 属性で env を弄るテスト
|
||||
// 同士は直列化される。
|
||||
unsafe { std::env::set_var("INSOMNIA_CONFIG_DIR", path) };
|
||||
unsafe { std::env::set_var("YOI_CONFIG_DIR", path) };
|
||||
Self { prev }
|
||||
}
|
||||
}
|
||||
@@ -658,8 +658,8 @@ auth_hint = { kind = "none" }
|
||||
fn drop(&mut self) {
|
||||
unsafe {
|
||||
match &self.prev {
|
||||
Some(v) => std::env::set_var("INSOMNIA_CONFIG_DIR", v),
|
||||
None => std::env::remove_var("INSOMNIA_CONFIG_DIR"),
|
||||
Some(v) => std::env::set_var("YOI_CONFIG_DIR", v),
|
||||
None => std::env::remove_var("YOI_CONFIG_DIR"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//! `~/.codex/auth.json` の読み書き。
|
||||
//!
|
||||
//! Codex CLI と schema を共有するが、insomnia は知らないフィールドを
|
||||
//! Codex CLI と schema を共有するが、yoi は知らないフィールドを
|
||||
//! 失わないようファイル全体を `serde_json::Value` で保持し、必要箇所
|
||||
//! のみアクセスする。書込は `mode 0o600` を再設定(Codex CLI 同様)、
|
||||
//! ファイルロックは取らない(manager 側で guarded reload)。
|
||||
@@ -106,7 +106,7 @@ pub async fn load(path: &Path) -> Result<AuthSnapshot, CodexAuthError> {
|
||||
/// 既存ファイルを再読込し、`tokens.{id_token,access_token,refresh_token}` と
|
||||
/// `last_refresh` を更新して書き戻す。Codex CLI の `persist_tokens` 相当。
|
||||
///
|
||||
/// 並行する Codex CLI / 別 insomnia プロセスが先に refresh していた場合の
|
||||
/// 並行する Codex CLI / 別 yoi プロセスが先に refresh していた場合の
|
||||
/// fields を保護するため、書込前に再 load して merge する。
|
||||
pub async fn persist_refreshed(
|
||||
path: &Path,
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
//! [`CodexAuthProvider`] はこのクレートに置く(feedback_llm_worker_scope)
|
||||
//! - access_token JWT の `exp` を読み、`now` 以下で proactive refresh
|
||||
//! (Codex CLI と同じバッファなし)
|
||||
//! - 並行する Codex CLI / 別 insomnia の refresh と取り違えないよう、
|
||||
//! - 並行する Codex CLI / 別 yoi の refresh と取り違えないよう、
|
||||
//! refresh 直前に再 load して account_id 一致を確認(guarded reload)
|
||||
//! - ファイルロックは取らず、書込前に再 load + diff merge で吸収
|
||||
//! - Codex の Keyring storage は対象外。auth.json 不在ならエラーで案内
|
||||
|
||||
@@ -78,7 +78,7 @@ impl SecretResolver for DefaultSecretResolver {
|
||||
path: std::path::PathBuf::from("<data_dir>"),
|
||||
source: std::io::Error::new(
|
||||
std::io::ErrorKind::NotFound,
|
||||
"could not determine insomnia data directory",
|
||||
"could not determine yoi data directory",
|
||||
),
|
||||
})?;
|
||||
SecretStore::new(data_dir).get(id)
|
||||
|
||||
Reference in New Issue
Block a user