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:
parent
a5727c5960
commit
69f0ba880a
286 changed files with 22939 additions and 9624 deletions
|
|
@ -64,6 +64,7 @@ const ALL_SETTINGS_EXERCISED: &[&str] = &[
|
|||
"collapsed_edit_blocks",
|
||||
"respect_manual_folds",
|
||||
"hunk_tracker_mode",
|
||||
"voice_keybind_enabled",
|
||||
"voice_capture_mode",
|
||||
"voice_stt_language",
|
||||
// Contextual-hints group + its per-tip child toggles (exercised via the
|
||||
|
|
@ -235,6 +236,12 @@ fn assert_set_bool_action(outcome: SettingsKeyOutcome, key: &str, expected: bool
|
|||
"SetRememberToolApprovals value differs from expected"
|
||||
)
|
||||
}
|
||||
("voice_keybind_enabled", Action::SetVoiceKeybindEnabled(b)) => {
|
||||
assert_eq!(
|
||||
b, expected,
|
||||
"SetVoiceKeybindEnabled value differs from expected"
|
||||
)
|
||||
}
|
||||
(
|
||||
"toolset.ask_user_question.timeout_enabled",
|
||||
Action::SetAskUserQuestionTimeoutEnabled(b),
|
||||
|
|
@ -1797,6 +1804,7 @@ fn registry_kind_membership_through_pr_14() {
|
|||
"toolset.ask_user_question.timeout_enabled",
|
||||
"auto_update",
|
||||
"show_tips",
|
||||
"voice_keybind_enabled",
|
||||
// Per-tip contextual-hint children (hidden from the top-level list,
|
||||
// toggled inside the group sub-sheet) are still Bool settings.
|
||||
"contextual_hints.undo",
|
||||
|
|
@ -1961,6 +1969,7 @@ fn defaults_round_trip_through_registry() {
|
|||
"coding_data_sharing" => SettingValue::Enum("opt-out"),
|
||||
"default_selected_permission" => SettingValue::Enum("always_allow_all_sessions"),
|
||||
"hunk_tracker_mode" => SettingValue::Enum("agent_only"),
|
||||
"voice_keybind_enabled" => SettingValue::Bool(true),
|
||||
"voice_capture_mode" => SettingValue::Enum("hold"),
|
||||
"voice_stt_language" => SettingValue::Enum("en"),
|
||||
"plan_mode" => SettingValue::Enum("off"),
|
||||
|
|
@ -2052,7 +2061,8 @@ fn settings_value_payload_matches_kind() {
|
|||
| SettingsKeyOutcome::Action(Action::SetGroupToolVerbs(_))
|
||||
| SettingsKeyOutcome::Action(Action::SetCollapsedEditBlocks(_))
|
||||
| SettingsKeyOutcome::Action(Action::SetInvertScroll(_))
|
||||
| SettingsKeyOutcome::Action(Action::SetDisplayRefreshAutoCadence(_)) => {}
|
||||
| SettingsKeyOutcome::Action(Action::SetDisplayRefreshAutoCadence(_))
|
||||
| SettingsKeyOutcome::Action(Action::SetVoiceKeybindEnabled(_)) => {}
|
||||
other => panic!(
|
||||
"expected a typed bool setter for `{}`, got {:?}",
|
||||
meta.key, other
|
||||
|
|
@ -6277,6 +6287,31 @@ fn voice_stt_language_picker_enter_dispatches_set_commit() {
|
|||
);
|
||||
}
|
||||
|
||||
/// Space-toggle on `voice_keybind_enabled` dispatches the typed setter.
|
||||
/// Default is ON (the chord works out of the box), so toggling flips it off.
|
||||
#[test]
|
||||
fn space_on_voice_keybind_enabled_dispatches_typed_setter() {
|
||||
let mut s = make_state();
|
||||
navigate_to(&mut s, "voice_keybind_enabled");
|
||||
let outcome = handle_settings_key(&mut s, &press(KeyCode::Char(' ')));
|
||||
assert_set_bool_action(outcome, "voice_keybind_enabled", false);
|
||||
}
|
||||
|
||||
/// Value-column click toggles `voice_keybind_enabled` in one click.
|
||||
#[test]
|
||||
fn mouse_click_on_voice_keybind_enabled_indicator_toggles_in_one_click() {
|
||||
let mut s = make_state();
|
||||
synth_rects(&mut s);
|
||||
let row_y = row_idx_for(&s, "voice_keybind_enabled") as u16;
|
||||
let outcome = handle_settings_mouse(
|
||||
&mut s,
|
||||
MouseEventKind::Down(crossterm::event::MouseButton::Left),
|
||||
72,
|
||||
row_y,
|
||||
);
|
||||
assert_set_bool_action(outcome, "voice_keybind_enabled", false);
|
||||
}
|
||||
|
||||
/// Value-column click on the voice_stt_language row opens the picker in ONE
|
||||
/// click (mouse ↔ keyboard parity).
|
||||
#[test]
|
||||
|
|
|
|||
Loading…
Reference in a new issue