§9 acceptance: grep-zero sweep — every internal x.ai/grok identifier renamed
The PRD's first acceptance gate now holds: grep -RinE '\bx\.ai\b|grok' crates/ --include='*.rs' → 0 matches (exempt: NOTICE and third-party license archives, README provenance, and the required 'Based on Grok Build Open Source' attribution, now sourced from version_attribution.txt). Wire-visible renames (both sides in this repo, changed in lockstep): - Auth method id 'grok.com' → 'kimi-code' (AuthMethodKind::KimiCode). - Every x.ai/* and _x.ai/* ACP ext method and meta key → kigi/* / _kigi/* (~200 names; grokShell → kigiShell). Session-file replay keeps a read-side alias for the legacy '_x.ai/session/update' method so existing updates.jsonl histories load; writes emit only the new name (both directions test-pinned). - Agent types grok-build* → kigi* with a documented legacy-prefix alias at resolution time so persisted sessions keep resolving. - ToolNamespace/BuiltinAgentName GrokBuild* → Kigi* (wire snake_case kigi/kigi_concise/kigi_hashline; schema regenerated); grok_build implementation dirs renamed to kigi*. - x-grok-* headers → x-kigi-*, __GROK_* sentinels → __KIGI_*, themes grokday/groknight → kigiday/kiginight (old persisted values fall back to the default theme), web_fetch allowlist xAI hosts → kimi.com + moonshot platforms, changelog CDN → this repo, grok-build changelog archives deleted. - BYOK default endpoint removed: [endpoints] api_base_url is now truly optional with NO default — consumers fail fast with the flag name when unset (no silent x.ai egress). Mock harnesses inject it explicitly. - System-prompt identity fixed: 'released by xAI' → 'an unofficial community CLI for Kimi' (template + regenerated encrypted form). Also repaired pre-existing grok-era test debt found by the sweep: the stale trace_classify default-model pin, the grok-pager UA label test, pty-harness stale-binary reuse and non-hermetic moonshot routing (a PTY test could previously reach the real api.moonshot.cn), and the outdated oauth fixture scope key. Gates: §9 grep 0; fmt clean; workspace check/clippy 0/0 (-D warnings); FULL cargo test --workspace: 234 suites, 21,961 passed, 0 failed; deny advisories ok.
This commit is contained in:
@@ -599,10 +599,10 @@ pub fn build_classifier_request(
|
||||
temperature: Some(0.0),
|
||||
max_output_tokens: Some(LAZINESS_MAX_OUTPUT_TOKENS),
|
||||
reasoning_effort: None,
|
||||
x_grok_conv_id: session_id_str.clone(),
|
||||
x_grok_req_id: Some(format!("{LAZINESS_REQ_ID_PREFIX}{}", uuid::Uuid::new_v4())),
|
||||
x_grok_session_id: session_id_str,
|
||||
x_grok_agent_id: Some(crate::util::agent_id::agent_id()),
|
||||
x_kigi_conv_id: session_id_str.clone(),
|
||||
x_kigi_req_id: Some(format!("{LAZINESS_REQ_ID_PREFIX}{}", uuid::Uuid::new_v4())),
|
||||
x_kigi_session_id: session_id_str,
|
||||
x_kigi_agent_id: Some(crate::util::agent_id::agent_id()),
|
||||
..ConversationRequest::default()
|
||||
}
|
||||
}
|
||||
@@ -957,7 +957,7 @@ pub struct RunArgs {
|
||||
/// override surface for the offline tool — production resolves
|
||||
/// `LazinessDetectorPerModelConfig::include_reasoning` separately.
|
||||
pub include_reasoning: Option<bool>,
|
||||
/// Grok-home directory containing the `auth.json` to consult as
|
||||
/// Kigi-home directory containing the `auth.json` to consult as
|
||||
/// the third API-key fallback. Defaults to
|
||||
/// `kigi_shell::util::kigi_home::kigi_home()` when `None`.
|
||||
/// Exposed as a CLI flag for testability.
|
||||
@@ -1053,7 +1053,7 @@ pub async fn resolve_api_key(explicit: Option<&str>, kigi_home: &Path) -> Result
|
||||
}
|
||||
Err(anyhow!(
|
||||
"no API key: pass --api-key, set XAI_API_KEY, or run `kigi login` to populate \
|
||||
<grok-home>/auth.json. An expired OIDC token is auto-refreshed when a refresh_token \
|
||||
<kigi-home>/auth.json. An expired OIDC token is auto-refreshed when a refresh_token \
|
||||
is present; if not, re-login is required."
|
||||
))
|
||||
}
|
||||
@@ -1061,7 +1061,7 @@ pub async fn resolve_api_key(explicit: Option<&str>, kigi_home: &Path) -> Result
|
||||
/// Build an `AuthManager` for `kigi_home`, install the
|
||||
/// non-interactive refresher chain, and ask for a usable key. Mirrors
|
||||
/// the body of [`crate::auth::try_ensure_fresh_auth`] but accepts an
|
||||
/// explicit `kigi_home` so `--grok-home` overrides work in test
|
||||
/// explicit `kigi_home` so `--kigi-home` overrides work in test
|
||||
/// fixtures (the upstream helper hardcodes the global `kigi_home()`
|
||||
/// path).
|
||||
///
|
||||
@@ -1874,9 +1874,9 @@ mod tests {
|
||||
assert!(req.hosted_tools.is_empty());
|
||||
assert!(req.tool_choice.is_none());
|
||||
|
||||
assert_eq!(req.x_grok_conv_id.as_deref(), Some("sess-x"));
|
||||
assert_eq!(req.x_grok_session_id.as_deref(), Some("sess-x"));
|
||||
let req_id = req.x_grok_req_id.as_deref().expect("req id");
|
||||
assert_eq!(req.x_kigi_conv_id.as_deref(), Some("sess-x"));
|
||||
assert_eq!(req.x_kigi_session_id.as_deref(), Some("sess-x"));
|
||||
let req_id = req.x_kigi_req_id.as_deref().expect("req id");
|
||||
// N3: shared const for the prefix.
|
||||
let suffix = req_id
|
||||
.strip_prefix(LAZINESS_REQ_ID_PREFIX)
|
||||
@@ -1888,7 +1888,7 @@ mod tests {
|
||||
assert!(!parsed.is_nil());
|
||||
|
||||
assert_eq!(
|
||||
req.x_grok_agent_id.as_deref(),
|
||||
req.x_kigi_agent_id.as_deref(),
|
||||
Some(crate::util::agent_id::agent_id().as_str())
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user