§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:
1 parent
86e3724310
commit
6f31415ed6
1056 files changed
+8410
-18307
No files matched your search
@@ -2418,13 +2418,13 @@ mod tests {
|
||||
type Rgb = (u8, u8, u8);
|
||||
type SyntectSpans = Vec<(Rgb, String)>;
|
||||
|
||||
/// Pins GrokNight via the shared test-lock guard; hold it for the whole
|
||||
/// Pins KigiNight via the shared test-lock guard; hold it for the whole
|
||||
/// test so a concurrent theme flip can't skew the compared highlighter walks.
|
||||
fn pin_groknight_syntect() -> std::sync::MutexGuard<'static, ()> {
|
||||
fn pin_kiginight_syntect() -> std::sync::MutexGuard<'static, ()> {
|
||||
let guard = crate::theme::cache::pin_theme();
|
||||
assert!(
|
||||
!Theme::groknight().diff_uses_line_fg(),
|
||||
"GrokNight must be banded for Equal-line syntect path in render"
|
||||
!Theme::kiginight().diff_uses_line_fg(),
|
||||
"KigiNight must be banded for Equal-line syntect path in render"
|
||||
);
|
||||
guard
|
||||
}
|
||||
@@ -2454,7 +2454,7 @@ mod tests {
|
||||
}
|
||||
|
||||
/// Hunk-only: fresh highlighter, only the given lines in order (prod path).
|
||||
/// Caller pins the theme via `pin_groknight_syntect` (lock is not reentrant).
|
||||
/// Caller pins the theme via `pin_kiginight_syntect` (lock is not reentrant).
|
||||
fn hunk_only_raw_styles(path: &Path, lines: &[&str]) -> Vec<SyntectSpans> {
|
||||
let syntect = get_syntect();
|
||||
let mut hl = syntect
|
||||
@@ -2467,7 +2467,7 @@ mod tests {
|
||||
}
|
||||
|
||||
/// Full-file then slice: silent HL from line 1, return styles for all lines.
|
||||
/// Caller pins the theme via `pin_groknight_syntect` (lock is not reentrant).
|
||||
/// Caller pins the theme via `pin_kiginight_syntect` (lock is not reentrant).
|
||||
fn full_file_raw_styles(path: &Path, file_text: &str) -> Vec<SyntectSpans> {
|
||||
let syntect = get_syntect();
|
||||
let mut hl = syntect
|
||||
@@ -2505,7 +2505,7 @@ class ProcessQueueItem(BaseModel):
|
||||
/// Control: self-contained Rust line → keyword RGB ≠ string RGB (raw syntect).
|
||||
#[test]
|
||||
fn syntax_highlight_splits_keyword_and_string_fg() {
|
||||
let _guard = pin_groknight_syntect();
|
||||
let _guard = pin_kiginight_syntect();
|
||||
let path = Path::new("probe.rs");
|
||||
let lines = hunk_only_raw_styles(path, &["let x = \"hello\";"]);
|
||||
assert_eq!(lines.len(), 1);
|
||||
@@ -2552,7 +2552,7 @@ class ProcessQueueItem(BaseModel):
|
||||
/// (and differ from cold hunk-only spill) after a mid-file closing `"""`.
|
||||
#[test]
|
||||
fn file_scoped_matches_full_file_on_field_line() {
|
||||
let _guard = pin_groknight_syntect();
|
||||
let _guard = pin_kiginight_syntect();
|
||||
let path = Path::new("queue_item.py");
|
||||
let (file, hunk, field_ln) = fixture_python_close_hunk();
|
||||
let close_ln = hunk[0].ln;
|
||||
@@ -2629,7 +2629,7 @@ class ProcessQueueItem(BaseModel):
|
||||
/// baked under another theme it must not paint — hunk-only output.
|
||||
#[test]
|
||||
fn file_scoped_stale_theme_falls_back_to_hunk_only() {
|
||||
let _guard = pin_groknight_syntect();
|
||||
let _guard = pin_kiginight_syntect();
|
||||
let path = Path::new("queue_item.py");
|
||||
let (file, hunk, field_ln) = fixture_python_close_hunk();
|
||||
// Real computed map: paintable by construction (line keys and texts
|
||||
@@ -2672,7 +2672,7 @@ class ProcessQueueItem(BaseModel):
|
||||
);
|
||||
|
||||
// Stale: the SAME paintable map baked under another theme is skipped.
|
||||
let stale = ThemeKind::GrokDay;
|
||||
let stale = ThemeKind::KigiDay;
|
||||
assert_ne!(stale, crate::theme::cache::current_kind());
|
||||
block.highlight = EditHighlightPhase::FileScoped {
|
||||
by_new_line,
|
||||
@@ -2739,7 +2739,7 @@ class ProcessQueueItem(BaseModel):
|
||||
/// after a mid-file closing `"""`.
|
||||
#[test]
|
||||
fn triple_quote_hunk_only_differs_from_full_file_today() {
|
||||
let _guard = pin_groknight_syntect();
|
||||
let _guard = pin_kiginight_syntect();
|
||||
let path = Path::new("queue_item.py");
|
||||
let (file, hunk, field_ln) = fixture_python_close_hunk();
|
||||
let close_ln = hunk[0].ln;
|
||||
|
||||
Reference in new issue
Block a user