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
|
|
@ -249,7 +249,8 @@ pub struct PagerLocalSnapshot {
|
|||
pub available_models: Vec<(String, acp::ModelId)>,
|
||||
/// Whether the user has opted OUT of coding data sharing.
|
||||
/// Lives in auth metadata (no `UiConfig` field). Inverted mapping:
|
||||
/// `opt_out == false` → canonical "opt-in".
|
||||
/// `opt_out == false` → canonical "opt-in". Snapshot default is
|
||||
/// `true` (opted out) to match the safer consumer default.
|
||||
pub coding_data_sharing_opt_out: bool,
|
||||
/// Whether plan mode is active. Uses effective state
|
||||
/// (`pending.unwrap_or(active)`) so rapid toggles don't double-send.
|
||||
|
|
@ -289,7 +290,7 @@ impl Default for PagerLocalSnapshot {
|
|||
auto_mode: false,
|
||||
current_model_name: None,
|
||||
available_models: Vec::new(),
|
||||
coding_data_sharing_opt_out: false,
|
||||
coding_data_sharing_opt_out: true,
|
||||
plan_mode_active: false,
|
||||
show_tips: None,
|
||||
auto_update: None,
|
||||
|
|
@ -484,6 +485,10 @@ pub fn current_value_for(
|
|||
"compact_mode" => Some(SettingValue::Bool(ui.compact_mode)),
|
||||
"show_timestamps" => Some(SettingValue::Bool(ui.show_timestamps.unwrap_or(true))),
|
||||
"show_timeline" => Some(SettingValue::Bool(ui.show_timeline_enabled())),
|
||||
// Cache is the send-path source of truth (same pattern as group_tool_verbs).
|
||||
"page_flip_on_send" => Some(SettingValue::Bool(
|
||||
crate::appearance::cache::load_page_flip_on_send(),
|
||||
)),
|
||||
"simple_mode" => Some(SettingValue::Bool(ui.simple_mode.unwrap_or(true))),
|
||||
// Per-tip contextual hints — `None` (inherit) reads as the default ON.
|
||||
"contextual_hints.undo" => {
|
||||
|
|
@ -780,6 +785,13 @@ mod tests {
|
|||
"show_timeline default drifts from UiConfig::default()"
|
||||
);
|
||||
}
|
||||
("page_flip_on_send", SettingKind::Bool { default }) => {
|
||||
assert_eq!(
|
||||
*default,
|
||||
ui.page_flip_on_send_enabled(),
|
||||
"page_flip_on_send default drifts from UiConfig::default()"
|
||||
);
|
||||
}
|
||||
("simple_mode", SettingKind::Bool { default }) => {
|
||||
assert_eq!(
|
||||
*default,
|
||||
|
|
@ -865,14 +877,15 @@ mod tests {
|
|||
);
|
||||
}
|
||||
// coding_data_sharing: no UiConfig field; default pinned
|
||||
// against auth metadata (opt_out=false → "opt-in").
|
||||
// against auth metadata (opt_out=true → "opt-out").
|
||||
("coding_data_sharing", SettingKind::Enum { default, .. }) => {
|
||||
let expected = "opt-in";
|
||||
let expected = "opt-out";
|
||||
assert_eq!(
|
||||
*default, expected,
|
||||
"coding_data_sharing registry default must be 'opt-in' — \
|
||||
"coding_data_sharing registry default must be 'opt-out' — \
|
||||
the on-disk source of truth is `AuthEntry::coding_data_retention_opt_out: \
|
||||
bool` (defaults to `false`, i.e. user has NOT opted out)",
|
||||
bool` (defaults to `true`, i.e. user has opted out until they \
|
||||
explicitly share or the server opts them in)",
|
||||
);
|
||||
}
|
||||
// CLI batch: fields live on CliConfig, not UiConfig.
|
||||
|
|
|
|||
Loading…
Reference in a new issue