Synced from monorepo

Changes:
- Stop hooks for session lifecycle
- Add x.ai/session/state and x.ai/session/import ACP methods
- Deny-and-continue for auto-mode classifier blocks with denial limits
- Drop codebase-upload from dhat soak test
- scheduler_create upsert via task_id; retire one-shot tasks
- Clipboard: copy file fallback + honest toasts for SSH/Apple Terminal
- Polarity-safe syntax colors in minimal mode
- Auto mode classifies unvetted env prefixes instead of hard-prompting
- Add GROK_CLIPBOARD_NO_OSC52 kill switch to force OSC 52 off
This commit is contained in:
grokkybara[bot] 2026-07-19 18:40:33 +01:00
commit ba76b0a683
143 changed files with 9465 additions and 3419 deletions

View file

@ -30,6 +30,13 @@ fn grok_home_override_path_helpers() {
"$GROK_HOME/memory/MEMORY.md"
);
// Copy-toast paths follow the same abbreviation convention, so a custom
// $GROK_HOME outside $HOME still displays short.
assert_eq!(
xai_grok_pager::clipboard::display_copy_path(&grok_home.join("last-copy.txt")),
"$GROK_HOME/last-copy.txt"
);
assert!(xai_grok_pager::util::is_under_user_grok_home(&memory_path));
assert!(!xai_grok_pager::util::is_under_user_grok_home(
PathBuf::from("/tmp/other").as_path()

View file

@ -401,10 +401,13 @@ async fn cancel_before_task_completion_defers_auto_wake_until_user_prompt() {
harness
.wait_for_full_text("Task completed in", Duration::from_secs(15))
.expect("background completion chip");
// hold must be strictly less than timeout: wait_until_stable stamps
// true_since after the deadline is fixed, so timeout == hold flakes under
// load even when the condition is always true (remote --runs_per_test).
harness
.wait_until_stable(
"no auto-wake response after background completion",
Duration::from_secs(2),
Duration::from_secs(5),
Duration::from_secs(2),
|h| !h.contains_full_text(UNWANTED_AUTO_WAKE_SENTINEL),
)
@ -443,7 +446,7 @@ async fn cancel_before_task_completion_defers_auto_wake_until_user_prompt() {
harness
.wait_until_stable(
"no second completion request after the user turn",
Duration::from_secs(2),
Duration::from_secs(5),
Duration::from_secs(2),
|_| {
content