Synced from monorepo

Synced from monorepo

Changes:
- Report invalid MCP server config instead of failing startup
- Keep completed terminal output when the gateway connection is lost
- Show a duration-only detail view for single-task task output
- Don't let a stale registry turn counter hide local sessions
- Raise the file-descriptor soft limit on Linux and log effective limits at startup
- Stop aborting when HTTP client construction fails
- Make session thread and runtime spawn failures recoverable
- Fix main-prompt paste parity in the question freeform input
- Fire SessionEnd hooks on /exit and headless quit
- Embed the deployment-config signing public key
- Repaint paste-chip background on inline panel inputs
- Security: prevent acceptEdits from auto-approving agent writes into the always-trusted global hook root
- Fix stacked "Worked for" markers so parks render as status and turns close with exactly one marker
- Parse hooks from config files
- Add a remote kill-switch for managed-config signature verification
- Security: fix workspace file-reference resolution bypassing workspace filesystem confinement

Source-Revision: d02693a856a54f1030695b36b91d276e96b30b23
This commit is contained in:
grokkybara[bot] 2026-07-25 18:44:42 +00:00
commit 47348d13ec
138 changed files with 7283 additions and 5796 deletions

View file

@ -19,7 +19,7 @@ use xai_grok_pager::render::Renderable;
use xai_grok_pager::scrollback::state::ScrollbackState;
use xai_grok_pager::scrollback::wrappers::EntryRenderer;
use xai_grok_pager::theme::Theme;
use xai_grok_pager::views::prompt_widget::PromptStyle;
use xai_grok_pager::views::prompt_widget::{PromptBg, PromptStyle};
use xai_grok_pager::views::turn_status;
/// Left inset (columns) for every auxiliary live-region row: the status row,
/// the info bar, the exit hint, and the todo panel — and the prompt's
@ -81,7 +81,7 @@ pub(super) fn prompt_style(
chrome: true,
chrome_pad_left: live_left_inset(appearance),
chrome_pad_right: 0,
bg_override: Some(Color::Reset),
bg: PromptBg::Canvas(Color::Reset),
accent_color_override: input_mode.accent_color(theme),
border_color_override: None,
prefix_override: input_mode.prefix_override(theme),
@ -511,12 +511,11 @@ fn minimal_advance_phase_timer(
/// surfaces the same rich activity detail (`Run …` / `Thinking…` /
/// `Waiting on subagent…` / `Retrying (attempt N)…` / `Cancelling…`), the
/// per-phase + turn timers, and the "… still running" cue (running commands /
/// monitors / loops / background subagents, shown while idle or parked) —
/// instead of collapsing everything to "working…". Keyboard-only, so the
/// mouse `[stop]` / `[↓]` buttons are suppressed (`None`), and
/// `flat_background` keeps the row transparent like the rest of the live
/// region. When the widget would draw nothing (plain idle or parked, no
/// watchers) a small `minimal · /help` hint is shown instead.
/// monitors / loops / background subagents) — instead of collapsing
/// everything to "working…". Keyboard-only, so the mouse `[stop]` / `[↓]`
/// buttons are suppressed (`None`), and `flat_background` keeps the row
/// transparent like the rest of the live region. When the widget would draw
/// nothing a small `minimal · /help` hint is shown instead.
fn render_minimal_status(
buf: &mut Buffer,
area: Rect,

View file

@ -42,7 +42,7 @@ use xai_grok_pager::appearance::LayoutConfig;
use xai_grok_pager::minimal_api;
use xai_grok_pager::render::SafeBuf as _;
use xai_grok_pager::theme::Theme;
use xai_grok_pager::views::prompt_widget::{PromptStyle, PromptWidget};
use xai_grok_pager::views::prompt_widget::{PromptBg, PromptStyle, PromptWidget};
/// Which prompt-anchored dropdown is currently shown.
///
@ -799,7 +799,7 @@ fn inline_input_style(theme: &Theme) -> PromptStyle {
chrome: false,
chrome_pad_left: 0,
chrome_pad_right: 0,
bg_override: Some(theme.bg_visual),
bg: PromptBg::Panel(theme.bg_visual),
accent_color_override: None,
border_color_override: None,
prefix_override: None,

View file

@ -26,7 +26,7 @@ use xai_grok_pager::minimal_api;
use xai_grok_pager::scrollback::block::RenderBlock;
use xai_grok_pager::theme::Theme;
use xai_grok_pager::views::plan_approval_view::PlanApprovalFocus;
use xai_grok_pager::views::prompt_widget::PromptStyle;
use xai_grok_pager::views::prompt_widget::{PromptBg, PromptStyle};
/// The active plan-approval focus, defaulting to `Preview`.
fn focus(agent: &AgentView) -> PlanApprovalFocus {
@ -227,7 +227,7 @@ fn input_style(theme: &Theme) -> PromptStyle {
chrome: false,
chrome_pad_left: 0,
chrome_pad_right: 0,
bg_override: Some(theme.bg_visual),
bg: PromptBg::Panel(theme.bg_visual),
accent_color_override: None,
border_color_override: None,
prefix_override: None,