Synced from monorepo
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
This commit is contained in:
parent
3af4d5d398
commit
a5727c5960
482 changed files with 37627 additions and 13402 deletions
|
|
@ -4,7 +4,7 @@ use crate::diagnostics::{DiagnosticFinding, FindingDisposition, ManualRemediatio
|
|||
use crate::host::DisplayServer;
|
||||
use crate::terminal::{MultiplexerKind, TerminalName};
|
||||
|
||||
fn report() -> DiagnosticReport {
|
||||
pub(super) fn report() -> DiagnosticReport {
|
||||
let mut report = DiagnosticReport {
|
||||
facts: crate::diagnostics::DiagnosticFacts {
|
||||
terminal: TerminalName::Ghostty,
|
||||
|
|
@ -70,7 +70,7 @@ fn terminal() -> TerminalContext {
|
|||
}
|
||||
}
|
||||
|
||||
fn request(home: &Path, shell: &str) -> FixRequest {
|
||||
pub(super) fn request(home: &Path, shell: &str) -> FixRequest {
|
||||
FixRequest {
|
||||
id: SSH_WRAP_ID,
|
||||
home: home.to_path_buf(),
|
||||
|
|
@ -95,6 +95,43 @@ fn canonical_and_short_ids_resolve_to_canonical_id() {
|
|||
));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn applicable_fix_listing_uses_report_metadata_and_planner_availability() {
|
||||
let temp = tempfile::tempdir().unwrap();
|
||||
let report = report();
|
||||
let local = terminal();
|
||||
let local_fixes = applicable_automatic_fixes_with(&report, &local, |id| {
|
||||
Ok(FixRequest {
|
||||
id,
|
||||
..request(temp.path(), "/bin/bash")
|
||||
})
|
||||
});
|
||||
assert_eq!(
|
||||
local_fixes,
|
||||
vec![(SSH_WRAP_ID, "ssh-wrap", AutomaticFixAvailability::Here)]
|
||||
);
|
||||
|
||||
let mut remote = local.clone();
|
||||
remote.is_ssh = true;
|
||||
assert_eq!(
|
||||
applicable_automatic_fixes_with(&report, &remote, |_| { Err(FixError::HomeUnavailable) }),
|
||||
vec![(
|
||||
SSH_WRAP_ID,
|
||||
"ssh-wrap",
|
||||
AutomaticFixAvailability::RunLocally
|
||||
)]
|
||||
);
|
||||
|
||||
let mut manual_only = report;
|
||||
manual_only.findings[0].automatic_remediation = None;
|
||||
assert!(
|
||||
applicable_automatic_fixes_with(&manual_only, &local, |_| {
|
||||
Err(FixError::HomeUnavailable)
|
||||
})
|
||||
.is_empty()
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bash_zsh_and_fish_plans_use_exact_paths_and_aliases() {
|
||||
let temp = tempfile::tempdir().unwrap();
|
||||
|
|
|
|||
Loading…
Reference in a new issue