Synced from monorepo

Synced from monorepo

Changes:
- grok-shell: send an expired external-provider credential to the sign-in flow, not a 401 loop
- pager: clickable ▲ jumps to the top of the response being read
- grok-shell: keep a large task log from making the completion message too long
- Plan viewer scrollbar: widen grab zone to the border column; fix striped thumb in Terminal.app
- pager: poll the tmux probe teardown grace instead of sleeping it
- security: vendor-compat MCP kill switch is now actually enforced when reported as on
- grok-shell: restore session eviction when a leader client disconnects
- Bump rust-toolchain to 1.93.0
- workspace: lexical-normalize permission path patterns before glob matching
- pager: reject garbage Enter in the /resume picker
- pager: show Mermaid affordances in plan mode preview
- pager: drop manage-account link from /session-info
- workspace: auto-approve read-only git queries; defer write floor to auto classifier
- Add free-form pattern editor to the "Always allow" command prompt
- grok-shell: fix /btw caching
- pager: Tab walks answers in the ask_user_question card
- External-provider auth refresh: single 7s attempt instead of 3×5s
- pager: don't resurrect finished background tasks as Running when completion arrives first
- pager: report tmux truecolor clamping in Doctor
- Fix plan viewer scrollbar click+drag hijacked by comment gutter
- pager/shell: stop double Recap after the same last turn
- sampler: preserve x-should-retry through stream collection
- pager: clear plan-mode indicator immediately when the user approves a plan
- pager: tmux does not re-read its config on reattach

Source-Revision: 64c4de99cc822b25ce9c54ab5a4f372093d0885d
This commit is contained in:
grokkybara[bot] 2026-08-03 08:17:57 +00:00
commit 780d1388ff
323 changed files with 12258 additions and 7226 deletions

View file

@ -1251,6 +1251,34 @@ pub(crate) fn write_cast_if_requested(harness: &PtyHarness, file_name: &str) {
}
}
/// Dump the current screen (plain text and HTML) into
/// `$GROK_PTY_CAST_DIR/<file_stem>.{txt,html}` when the env var is set.
/// Failures are logged, never fatal — same opt-in as
/// [`write_cast_if_requested`].
pub(crate) fn write_screen_dump_if_requested(harness: &PtyHarness, file_stem: &str) {
let Ok(dir) = std::env::var("GROK_PTY_CAST_DIR") else {
return;
};
if dir.is_empty() {
return;
}
let dir = std::path::PathBuf::from(dir);
if let Err(e) = std::fs::create_dir_all(&dir) {
eprintln!("failed to create dump dir {}: {e}", dir.display());
return;
}
for (ext, body) in [
("txt", harness.screen_contents()),
("html", harness.screen_html()),
] {
let path = dir.join(format!("{file_stem}.{ext}"));
match std::fs::write(&path, body) {
Ok(()) => eprintln!("wrote screen dump: {}", path.display()),
Err(e) => eprintln!("failed to write screen dump {}: {e}", path.display()),
}
}
}
// ── Clipboard paste e2e tests ───────────────────────────────────────────
/// Serialized `content` of every user message across recorded requests, in