Changes: - Gate session-lifecycle heap steady state with a dhat soak - Unbreak merge lifecycle e2e after default model → grok-4.5 - Scan home-scope rules dirs at <root>/rules - Complete text-input paste and terminal parity - Gate project roles and personas - Use canonical editing in dialogs - Use canonical editing in search bars - Reject ambiguous MCP tool IDs - Harden Git operands for plugins - Simplify queue drain API - Pass RFC 9207 iss through MCP OAuth token exchange - Show leader roster when local agents map is empty - Use canonical editing in Persona views - Remove marketplace default-skills auto-install and purge old installs - Use canonical editing in extension forms - Add canonical dashboard text editing - Use canonical editing in settings - Add /summarize as a /recap alias - Restore previous agent when exiting dashboard - Use tool_choice auto for compaction - Settings toggle for snap-prompt-to-top on send - Update default models to grok-4.5 - Source login shell once for local bash (env + alias/function snapshot) - Template hardcoded param names in server-native tool descriptions - Fix System-Reminder XML tag injection in CLAUDE.md via agents_md - Fix remote workspace-server hardcoding LSP trust (repo code execution risk) - Clear orphaned tool-call updates at turn end - Suppress task wake after cancel - Send x-grok-client-identifier on direct API tool calls - Harden dashboard peek lease transitions - Host /btw side panel in live region (minimal mode) - Bound scroll presentation latency - Highlight multi-line constructs correctly in diffs and the file viewer - Block web_fetch non-public IPs; local opt-in is explicit-host only - Seed coding_data_retention_opt_out=false for OAuth e2es in pty-harness - Follow up clipboard delivery feedback - Use canonical editing in pickers - Route TextArea through canonical editor - Persistent "watching" status row; quieter turn markers - Gate sensitive edit targets - Expose agent registry counts and gate session churn on them - Default coding data sharing to opt-out until server preference applies - Wire chat attachment ids through gateway prompts - On auth refresh failure, issue retry - Forward preview provenance and computer lifecycle state - Document independent privacy controls and scope /privacy output - Strip SamplingError Display prefix on rate-limit UI copy - Stop dumping Cloudflare HTML into Retry failed - Disable in-place prompt edit (scroll jank on enter) - Strip forced ANSI color from gh pr view JSON - Plumb bash tool description onto ToolUsageCard wire
58 lines
1.8 KiB
Rust
58 lines
1.8 KiB
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
/// Access gate from `grok_build_access_gate`.
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct GateInfo {
|
|
pub message: String,
|
|
#[serde(default)]
|
|
pub url: Option<String>,
|
|
#[serde(default)]
|
|
pub label: Option<String>,
|
|
}
|
|
|
|
/// Typed auth metadata passed from the shell to the pager via ACP.
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct AuthMeta {
|
|
#[serde(default)]
|
|
pub email: Option<String>,
|
|
#[serde(default)]
|
|
pub auth_mode: Option<String>,
|
|
/// Team principal UUID when the session is a team login (`None` for personal).
|
|
#[serde(default)]
|
|
pub team_id: Option<String>,
|
|
#[serde(default)]
|
|
pub team_name: Option<String>,
|
|
#[serde(default)]
|
|
pub is_zdr: bool,
|
|
#[serde(default)]
|
|
pub team_role: Option<String>,
|
|
/// Defaults to opted-out (safer) until auth meta is populated.
|
|
#[serde(default = "crate::auth::default_coding_data_retention_opt_out")]
|
|
pub coding_data_retention_opt_out: bool,
|
|
#[serde(default)]
|
|
pub show_resolved_model: Option<bool>,
|
|
/// `Some` = user is blocked; `None` = user has access.
|
|
#[serde(default)]
|
|
pub gate: Option<GateInfo>,
|
|
/// User-friendly display name for the current subscription tier
|
|
/// (e.g. "SuperGrok Heavy", "X Premium", "Free"). From CCP `/settings`.
|
|
#[serde(default)]
|
|
pub subscription_tier: Option<String>,
|
|
}
|
|
|
|
impl Default for AuthMeta {
|
|
fn default() -> Self {
|
|
Self {
|
|
email: None,
|
|
auth_mode: None,
|
|
team_id: None,
|
|
team_name: None,
|
|
is_zdr: false,
|
|
team_role: None,
|
|
coding_data_retention_opt_out: crate::auth::default_coding_data_retention_opt_out(),
|
|
show_resolved_model: None,
|
|
gate: None,
|
|
subscription_tier: None,
|
|
}
|
|
}
|
|
}
|