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:
parent
47348d13ec
commit
b41c75a578
92 changed files with 9410 additions and 3788 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
Loading…
Reference in a new issue