Changes: - Non-blocking coding-data sharing upsell banner - Consolidate remediation in Doctor - Auto mode defers fail-closed gate asks to the classifier - Coalesce marketplace list fetches - Allow removing a marketplace source by name - Contain hung git marketplace sources (timeouts, non-blocking refresh, unbrick modal) - Label failed workspace RPCs with error_kind - Drop redundant explicit tonic/prost deps from xai-grok-shell - Report real exit codes for completed background shells - Narrow the date-rollover reminder to date-bearing templates - Wire toolOverrides through the session and agent - Security: Bash(git:*) allowlist matches whole command chain by prefix - Split prompt-trigger telemetry and record classifier provenance - Raise connectors-manager timeout to 60s - Auto classifier honors recorded approvals for repeat actions - Apply doctor fixes in the TUI - Auto-mode classifier timeouts prompt instead of silently denying - Scope subagent completion drains to the owning session - Add the toolOverrides wire types - Set client_identifier=grok-agent-sdk - Accept both spellings of the workspace-teleport kill switch - Persist one-shot occurrence journal - Stop turns that poll the exact same tool call 16x in a row - Copy compaction checkpoint files when forking sessions - Auto-focus permission prompt from scrollback - Esc cancels the running turn in non-vim and minimal modes - List Ctrl+Z undo and redo in keyboard shortcuts - Out-of-process macOS mic capture - Show active auth mode on session-info - Install the npm binary under $GROK_HOME - Remove hover/click dead zones between dashboard items - Route startup warnings to doctor - Document [feedback.user] author identity config - Extend bang command timeout - Close combine-queued edit-hold race - Integrate relocation recovery - Expose privacy notice rollout flag - Break harness discovery ref cycle so connections can idle-evict - Shift/Alt+Enter inserts newline when editing a queued prompt - Gate project Claude permissions on folder trust - Echo response.create.event_id on response.created - Toast when session creation fails from disk full - Add shared test process lifecycle - Enable dynamic workflows by default - Add relocation transaction state machine - Add shared test sandbox - Surface auth failures on model-switch compact - Persist durable scheduler expiry - Confirm before removing extensions-modal items - Re-run compact and prompt after login when compact hit expired auth - Recap sends hosted tools under backend search
25 lines
793 B
Rust
25 lines
793 B
Rust
use std::ffi::OsStr;
|
|
|
|
use xai_grok_pager_pty_harness::{EnvOp, oauth_credential_ops};
|
|
|
|
#[test]
|
|
fn set_and_remove_operations_have_one_typed_surface() {
|
|
let key = OsStr::new("FEATURE_FLAG");
|
|
let value = OsStr::new("enabled");
|
|
let operations: [EnvOp<'_>; 4] = [
|
|
EnvOp::set("FEATURE_FLAG", "enabled"),
|
|
EnvOp::remove("XAI_API_KEY"),
|
|
EnvOp::set_os(key, value),
|
|
EnvOp::remove_os(key),
|
|
];
|
|
|
|
assert!(matches!(operations[0], EnvOp::Set(_, _)));
|
|
assert!(matches!(operations[1], EnvOp::Remove(_)));
|
|
assert!(matches!(operations[2], EnvOp::Set(_, _)));
|
|
assert!(matches!(operations[3], EnvOp::Remove(_)));
|
|
}
|
|
|
|
#[test]
|
|
fn oauth_credential_operations_remove_the_api_key() {
|
|
assert_eq!(oauth_credential_ops(), [EnvOp::remove("XAI_API_KEY")],);
|
|
}
|