F3: Kimi inference pipeline + full grok cloud-surface excision
Sampler / inference (PRD F3):
- kimi_compat.rs: single adaptation point for the Kimi chat/completions
dialect (thinking-field mapping, model_id stripping, empty-content
tool-call message fix, stream_options.include_usage), with kimi-cli
source citations
- Rate-limit handling reworked for Kimi/Moonshot semantics; UA kigi/{version}
- /models replaces the xAI models-v2 endpoint everywhere; idle model
refresh carries X-Msh-* device headers only (X-XAI-Token-Auth and
x-grok-client-mode/CLIENT_MODE_HEADER machinery deleted)
Cloud-surface excision (PRD §5, zero-egress):
- remote/ conversations lane, cli-chat-proxy-types crate, prod/ dir,
share command, credit bar: deleted (single local session lane;
paginate() replaces merge_and_paginate)
- Subscription/tier gate stack deleted end-to-end: AppView
gate/tier/team/ZDR fields, app/subscription.rs watch loop,
dispatch/billing.rs paywall + SuperGrok upsell, free-usage-exhausted
chain, tier-restricted commands, GateInfo, RemoteSettings gate fields,
SettingsUpdateNotification gate fields
- /privacy + coding-data-sharing setting deleted (backed by a dead xAI
RPC; Kigi is zero-egress — nothing to share or retain remotely)
Auth UX correctness (user-reported):
- Device-flow fixtures now mirror the live Kimi payload shape
(https://www.kimi.com/code/authorize_device?user_code=..., verified
against auth.kimi.com); the fabricated auth.kimi.com/device?code=...
URLs are gone
- open_browser_detached is a no-op under cfg(test): unit tests drove
wiremock fixture URLs into the real browser (root cause of the
"garbage mock link" ABCD-1234 tabs)
- Welcome/pager-minimal rebrand: Grok Build -> Kigi, grok.com ->
kimi.com, "Sign in to Grok" -> "Sign in to Kimi"
This commit is contained in:
@@ -67,8 +67,7 @@ fn resolve_auto_permission_mode_layers(
|
||||
}
|
||||
|
||||
/// Resolve whether the **auto** permission mode feature (`PermissionMode::Auto`,
|
||||
/// the LLM/heuristic classifier) is enabled. Full chain mirroring
|
||||
/// [`resolve_zdr_access_enabled`](super::resolve_zdr_access_enabled):
|
||||
/// the LLM/heuristic classifier) is enabled. Full precedence chain:
|
||||
///
|
||||
/// requirements > env (`KIGI_AUTO_PERMISSION_MODE`) > `[auto_mode] enabled` in
|
||||
/// `config.toml` > managed > remote settings (`auto_mode.enabled`, coerced
|
||||
|
||||
@@ -1,28 +1,6 @@
|
||||
use crate::util::config::RemoteSettings;
|
||||
use toml::Value as TomlValue;
|
||||
|
||||
/// Resolve whether ZDR users are allowed to use the product.
|
||||
///
|
||||
/// Precedence: requirements > env > config.toml > managed > remote settings > default (false).
|
||||
pub fn resolve_zdr_access_enabled(
|
||||
requirements: Option<&TomlValue>,
|
||||
user: Option<&TomlValue>,
|
||||
managed: Option<&TomlValue>,
|
||||
remote: Option<&RemoteSettings>,
|
||||
) -> bool {
|
||||
use crate::agent::config::BoolFlag;
|
||||
fn from_toml(v: Option<&TomlValue>) -> Option<bool> {
|
||||
v?.get("features")?.get("zdr_access_enabled")?.as_bool()
|
||||
}
|
||||
BoolFlag::env("KIGI_ZDR_ACCESS_ENABLED")
|
||||
.requirement(from_toml(requirements))
|
||||
.config(from_toml(user))
|
||||
.managed(from_toml(managed))
|
||||
.feature_flag(remote.and_then(|r| r.zdr_access_enabled))
|
||||
.resolve()
|
||||
.value
|
||||
}
|
||||
|
||||
/// Whether model-catalog (`/v1/models`) and remote-settings (`/v1/settings`)
|
||||
/// fetches from xAI backends are allowed, including the deployment-config sync
|
||||
/// bundled into the startup prefetch (the background managed-config sync has
|
||||
|
||||
Reference in New Issue
Block a user