§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:
2026-07-18 02:48:46 -04:00
parent 86e3724310
commit 6f31415ed6
1056 changed files with 8410 additions and 18307 deletions
+15 -15
View File
@@ -12,7 +12,7 @@ use crate::appearance::TextSelection;
use crate::appearance::permission_cursor::DefaultSelectedPermission;
use kigi_shell::agent::config::UiConfig;
use kigi_tools::implementations::grok_build::ask_user_question;
use kigi_tools::implementations::kigi::ask_user_question;
// ---------------------------------------------------------------------------
// Int bounds for `max_thoughts_width`.
@@ -45,12 +45,12 @@ const THEME_CHOICES: &[EnumChoice] = &[
description: "Follow system dark/light appearance.",
},
EnumChoice {
canonical: "groknight",
canonical: "kiginight",
display: "Kigi Night",
description: "Neutral dark with magenta accent.",
},
EnumChoice {
canonical: "grokday",
canonical: "kigiday",
display: "Kigi Day",
description: "Light theme for bright environments.",
},
@@ -280,12 +280,12 @@ const SCREEN_MODE_CHOICES: &[EnumChoice] = &[
EnumChoice {
canonical: "fullscreen",
display: "Fullscreen",
description: "Open plain grok in the standard fullscreen TUI. Default when unset.",
description: "Open plain kigi in the standard fullscreen TUI. Default when unset.",
},
EnumChoice {
canonical: "minimal",
display: "Minimal",
description: "Open plain grok in scrollback-native (minimal) mode.",
description: "Open plain kigi in scrollback-native (minimal) mode.",
},
];
@@ -294,12 +294,12 @@ const SCREEN_MODE_CHOICES: &[EnumChoice] = &[
/// the user can pair any theme with any system-appearance bucket.
const CONCRETE_THEME_CHOICES: &[EnumChoice] = &[
EnumChoice {
canonical: "groknight",
canonical: "kiginight",
display: "Kigi Night",
description: "Neutral dark with magenta accent.",
},
EnumChoice {
canonical: "grokday",
canonical: "kigiday",
display: "Kigi Day",
description: "Light theme for bright environments.",
},
@@ -362,7 +362,7 @@ pub fn default_settings() -> Vec<SettingMeta> {
category: SettingCategory::Appearance,
owner: SettingOwner::Shell,
label: "Default screen mode",
description: "How plain grok opens next time: Fullscreen (default when unset) or \
description: "How plain kigi opens next time: Fullscreen (default when unset) or \
Minimal. Writes [ui] screen_mode in config.toml. Restart required. \
Switch this session only with /minimal or /fullscreen.",
keywords: &[
@@ -485,8 +485,8 @@ pub fn default_settings() -> Vec<SettingMeta> {
"light",
],
kind: SettingKind::Enum {
// `Option<String>` — `None` resolved to "groknight".
default: "groknight",
// `Option<String>` — `None` resolved to "kiginight".
default: "kiginight",
choices: THEME_CHOICES,
supports_preview: true,
},
@@ -501,8 +501,8 @@ pub fn default_settings() -> Vec<SettingMeta> {
description: "Theme to use when the system is in dark mode (only with theme=auto).",
keywords: &["auto", "dark", "theme", "system", "appearance", "night"],
kind: SettingKind::Enum {
// `Option<String>` — `None` falls back to "groknight".
default: "groknight",
// `Option<String>` — `None` falls back to "kiginight".
default: "kiginight",
choices: CONCRETE_THEME_CHOICES,
supports_preview: true,
},
@@ -517,8 +517,8 @@ pub fn default_settings() -> Vec<SettingMeta> {
description: "Theme to use when the system is in light mode (only with theme=auto).",
keywords: &["auto", "light", "theme", "system", "appearance", "day"],
kind: SettingKind::Enum {
// `Option<String>` — `None` falls back to "grokday".
default: "grokday",
// `Option<String>` — `None` falls back to "kigiday".
default: "kigiday",
choices: CONCRETE_THEME_CHOICES,
supports_preview: true,
},
@@ -636,7 +636,7 @@ pub fn default_settings() -> Vec<SettingMeta> {
owner: SettingOwner::Shell,
label: "Default model",
description: "Model used for new sessions. Changing this also switches the active session. Pick `(no override)` to clear.",
keywords: &["model", "default", "agent", "llm", "grok", "switch"],
keywords: &["model", "default", "agent", "llm", "kigi", "switch"],
kind: SettingKind::DynamicEnum {
default: "",
source: DynamicEnumSource::ActiveModelCatalog,