Synced from monorepo

Changes:
- Detect the herdr multiplexer
- Mark /gboom as non-production code
- Bound peak memory when loading a large session
- Add a subagent lifecycle soak bounding threads, fds, and heap
- Stream inherited replay to bound fork memory
- Copy full plan from plan approval with y
- Stop armed signature verification from deleting the managed-deny smoke policy
- Add source-tagged terminal version telemetry
- Show the UI instantly and fetch models and settings in the background
- Session test helpers
- computer_reason on the ConversationHistoryDone trailer
This commit is contained in:
grokkybara[bot] 2026-07-26 20:03:03 +01:00
commit b41c75a578
92 changed files with 9410 additions and 3788 deletions

View file

@ -277,12 +277,15 @@ impl ScrollConfigOverrides {
}
/// Multiplexers that re-encode mouse into their own SGR stream (tmux with
/// `mouse on`, screen, zellij all re-emit per pane). Cmux is a Ghostty-backed
/// passthrough and keeps the outer brand's stream.
/// `mouse on`, screen, zellij, herdr all re-emit per pane). Cmux is a
/// Ghostty-backed passthrough and keeps the outer brand's stream.
fn multiplexer_reencodes_mouse(multiplexer: MultiplexerKind) -> bool {
matches!(
multiplexer,
MultiplexerKind::Tmux | MultiplexerKind::Screen | MultiplexerKind::Zellij
MultiplexerKind::Tmux
| MultiplexerKind::Screen
| MultiplexerKind::Zellij
| MultiplexerKind::Herdr
)
}
@ -311,8 +314,8 @@ impl ScrollConfig {
}
/// Derive scroll normalization defaults from detected terminal metadata.
/// tmux/screen/zellij re-encode mouse into their own SGR stream, so the
/// outer brand's events-per-tick/pacing calibration describes the wrong
/// tmux/screen/zellij/herdr re-encode mouse into their own SGR stream, so
/// the outer brand's events-per-tick/pacing calibration describes the wrong
/// producer — trusting an outer ept=3 profile under tmux under-counts 3x
/// per notch when the multiplexer re-chunks to one event. Under those
/// multiplexers the brand table is replaced by a conservative ept=1

View file

@ -1147,7 +1147,7 @@ fn ghostty_duplicate_reports_do_not_feed_accel_banding() {
#[test]
fn multiplexed_sessions_use_conservative_profile_regardless_of_brand() {
// tmux/screen/zellij re-encode mouse into their own SGR stream, so
// tmux/screen/zellij/herdr re-encode mouse into their own SGR stream, so
// the outer brand's ept/pacing calibration is wrong under them: the
// conservative ept=1 shape applies no matter the brand. Cmux is a
// passthrough and Undetected means no multiplexer — both keep the
@ -1172,6 +1172,7 @@ fn multiplexed_sessions_use_conservative_profile_regardless_of_brand() {
MultiplexerKind::Tmux,
MultiplexerKind::Screen,
MultiplexerKind::Zellij,
MultiplexerKind::Herdr,
] {
for brand in brands {
let cfg = ScrollConfig::from_terminal_context(brand, mux, Default::default());