Synced from monorepo

Synced from monorepo

Changes:
- Workspace server: report `/ready` as failed with dwell on hub connect failure
- Refresh OIDC token for the Grok agent in the shell
- ACP terminal output recorder
- Cross-platform provider auth commands in the shell
- Default `/resume` to Grok sessions with a hint for hidden external sessions
- Resume sessions by title with `--resume`
- Limit app-builder archive size
- Data-driven tag labels for slash commands
- Doctor fixes for tmux
- Custom provider gateways and subprocess environment policy in the shell
- `/tutorial` — opt-in onboarding tour of Grok Build
- Soft and required CLI version checks in the shell
- Privacy banner env overrides survive live settings updates
- Add remote flag to override the image-edit model
- Return profile fields from auth info even when the access token is expired
- Add edit control on queued prompt rows
- Keep fail-closed policy when clearing orphans with no team
- Setting to disable the Ctrl+Space/F8 voice shortcut
- Pass `--raw` to pw-record so Linux dictation works on older PipeWire
- Validate git URLs when adding marketplace entries
- Stop shipping stale tool-doc parameter and tool names
- Re-point dashboard attach after `/fork` only when the parent was attached
- Surface Grok Computer media-generation results as file-path chunks
- Clear web background-task tray on kill and keep the task description
- Show privacy upsell banner in agent view until acted on
- Add tools-server client callback surface
- Protect persistent global hook sources

Source-Revision: 95d84f443eddcbed6cbfd6eed22e2eafe6b3939d
This commit is contained in:
grokkybara[bot] 2026-07-23 17:12:33 +00:00
commit 69f0ba880a
286 changed files with 22939 additions and 9624 deletions

View file

@ -138,6 +138,63 @@ pub fn collect_doctor_tui<'a>(
/// Collect standalone evidence without running live tmux subprocesses; skipped
/// tmux evidence is reported unavailable so a stuck server cannot block doctor.
pub fn collect_standalone<'a>(terminal: &'a TerminalContext) -> StandaloneDiagnosticSnapshot<'a> {
collect_standalone_with_tmux(terminal, unavailable_tmux())
}
/// Collect bounded live tmux facts for explicit fix planning.
pub fn collect_standalone_fix<'a>(
terminal: &'a TerminalContext,
id: Option<crate::diagnostics::DiagnosticId>,
) -> StandaloneDiagnosticSnapshot<'a> {
collect_standalone_with_tmux(terminal, collect_tmux_fix(terminal, id, &LiveTmuxProbe))
}
fn collect_tmux_fix(
terminal: &TerminalContext,
id: Option<crate::diagnostics::DiagnosticId>,
tmux: &dyn TmuxOptionQuery,
) -> TmuxProbeFacts {
if !terminal.is_tmux_backed() {
return unavailable_tmux();
}
let wants = |candidate| id.is_none() || id == Some(candidate);
let set_clipboard = if wants(crate::diagnostics::TMUX_CLIPBOARD_ID) {
tmux.show_option("set-clipboard")
} else {
TmuxProbeResult::Unavailable
};
let extended_keys = if wants(crate::diagnostics::TMUX_EXTENDED_KEYS_ID) {
tmux.show_option("extended-keys")
} else {
TmuxProbeResult::Unavailable
};
let (allow_passthrough_support, allow_passthrough) =
if wants(crate::diagnostics::DCS_PASSTHROUGH_ID) {
let support = tmux.option_support("allow-passthrough");
let value = match &support {
TmuxProbeResult::Available(()) => tmux.show_option("allow-passthrough"),
TmuxProbeResult::Unsupported => TmuxProbeResult::Unsupported,
TmuxProbeResult::Unavailable => TmuxProbeResult::Unavailable,
TmuxProbeResult::Error(error) => TmuxProbeResult::Error(error.clone()),
};
(support, value)
} else {
(TmuxProbeResult::Unavailable, TmuxProbeResult::Unavailable)
};
TmuxProbeFacts {
version: TmuxProbeResult::Unavailable,
extended_keys,
set_clipboard,
allow_passthrough_support,
allow_passthrough,
control_mode: TmuxProbeResult::Unavailable,
}
}
fn collect_standalone_with_tmux<'a>(
terminal: &'a TerminalContext,
tmux: TmuxProbeFacts,
) -> StandaloneDiagnosticSnapshot<'a> {
let host_os = crate::host::HostOs::current();
let display_server = crate::host::DisplayServer::current();
let is_wayland = display_server == crate::host::DisplayServer::Wayland;
@ -146,7 +203,7 @@ pub fn collect_standalone<'a>(terminal: &'a TerminalContext) -> StandaloneDiagno
let container_no_display = xai_grok_shell::util::clipboard::is_containerized_without_display();
collect_standalone_from(
terminal,
unavailable_tmux(),
tmux,
WaylandProbeFacts {
is_wayland,
data_control,
@ -292,7 +349,7 @@ fn collect_tmux(
.tmux_extended_keys
.clone()
.map(TmuxProbeResult::Available)
.unwrap_or(TmuxProbeResult::Unavailable),
.unwrap_or_else(|| tmux.show_option("extended-keys")),
set_clipboard: tmux.show_option("set-clipboard"),
allow_passthrough_support,
allow_passthrough,
@ -387,7 +444,11 @@ mod tests {
);
assert_eq!(
fake.calls.into_inner(),
["support:allow-passthrough", "set-clipboard"]
[
"support:allow-passthrough",
"extended-keys",
"set-clipboard"
]
);
}
@ -406,7 +467,12 @@ mod tests {
assert_eq!(snapshot.tmux.control_mode, TmuxProbeResult::Available(true));
assert_eq!(
fake.calls.into_inner(),
["support:allow-passthrough", "set-clipboard", "control-mode"]
[
"support:allow-passthrough",
"extended-keys",
"set-clipboard",
"control-mode",
]
);
}