Synced from monorepo
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
This commit is contained in:
parent
98c3b2438a
commit
7cfcb20d2b
292 changed files with 23315 additions and 9209 deletions
|
|
@ -43,6 +43,10 @@ pub struct UiConfig {
|
|||
/// `None` = off (client default; opt-in). Written by the pager's settings modal.
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
pub show_timeline: Option<bool>,
|
||||
/// Snap a just-sent prompt to the viewport top. `None` = on (default).
|
||||
/// Written by the pager's settings modal.
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
pub page_flip_on_send: Option<bool>,
|
||||
/// Theme to use when the OS is in dark mode. Written by the pager's theme persist module.
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
pub auto_dark_theme: Option<String>,
|
||||
|
|
@ -244,6 +248,7 @@ impl Default for UiConfig {
|
|||
default_selected_permission: None,
|
||||
show_timestamps: None,
|
||||
show_timeline: None,
|
||||
page_flip_on_send: None,
|
||||
auto_dark_theme: None,
|
||||
auto_light_theme: None,
|
||||
scroll_speed: None,
|
||||
|
|
@ -292,6 +297,14 @@ impl UiConfig {
|
|||
self.show_timeline.unwrap_or(Self::SHOW_TIMELINE_DEFAULT)
|
||||
}
|
||||
|
||||
/// Default for [`Self::page_flip_on_send`] when unset.
|
||||
pub const PAGE_FLIP_ON_SEND_DEFAULT: bool = true;
|
||||
|
||||
pub fn page_flip_on_send_enabled(&self) -> bool {
|
||||
self.page_flip_on_send
|
||||
.unwrap_or(Self::PAGE_FLIP_ON_SEND_DEFAULT)
|
||||
}
|
||||
|
||||
/// True when the highlight should not timer-dismiss (`hold` / `word_select`,
|
||||
/// or legacy duration 0).
|
||||
pub fn keep_text_selection_enabled(&self) -> bool {
|
||||
|
|
@ -306,6 +319,16 @@ impl UiConfig {
|
|||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn page_flip_on_send_defaults_on() {
|
||||
assert!(UiConfig::default().page_flip_on_send_enabled());
|
||||
let off = UiConfig {
|
||||
page_flip_on_send: Some(false),
|
||||
..Default::default()
|
||||
};
|
||||
assert!(!off.page_flip_on_send_enabled());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn keep_text_selection_enabled_precedence() {
|
||||
let mut ui = UiConfig::default();
|
||||
|
|
|
|||
Loading…
Reference in a new issue