Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
424c2da
feat(terminal): add opt-in flow control
minpeter Aug 30, 2026
a4aeb38
Merge origin/main into feat/flow-control-631
minpeter Aug 31, 2026
96f511e
fix(terminal): harden flow-control lifecycle
minpeter Aug 31, 2026
73fb73f
fix(terminal): close flow-control review gaps
minpeter Aug 31, 2026
ae0e50d
fix(terminal): complete flow-control review
minpeter Aug 31, 2026
f586a57
fix(terminal): finish flow-control ownership review
minpeter Aug 31, 2026
b298f53
fix(terminal): close flow-control ownership gaps
minpeter Aug 31, 2026
a73be99
fix(terminal): drain retained flow-control state
minpeter Aug 31, 2026
56f3364
fix(terminal): quiesce flow-control shutdown
minpeter Aug 31, 2026
03338d2
Merge origin/main into feat/flow-control-631
minpeter Aug 31, 2026
5d868de
test(terminal): flush flow-control PTY input
minpeter Aug 31, 2026
beda35e
test(terminal): await flow-control shell readiness
minpeter Aug 31, 2026
ec57a39
test(server): synchronize jumphost response teardown
minpeter Aug 31, 2026
36e1161
fix(flow-control): close final shutdown gaps
minpeter Aug 31, 2026
c3b20da
fix(jumphost): drain buffered destination packets
minpeter Aug 31, 2026
f27049d
fix(jumphost): resume buffered output after backpressure
minpeter Aug 31, 2026
8d1e1e4
Merge origin/main into feat/flow-control-631
minpeter Aug 31, 2026
db29c03
fix(flow-control): preserve final forwarding ownership
minpeter Sep 1, 2026
57b7304
Merge origin/main into feat/flow-control-631
minpeter Sep 1, 2026
7da329f
fix(recovery): protect returning sockets through terminal HUP
minpeter Sep 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .tegami/add-opt-in-flow-control.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
packages:
et:
type: patch
---

## Add opt-in terminal flow control

Clients can now select lossless backpressure or oldest-output discard when
terminal output outruns the network, keeping Ctrl-C and prompt responses
bounded without changing the default session behavior.
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions crates/et-bin/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ signal-hook = "0.3.18"
# Ctrl+C / console shutdown signalling, the Windows analogue of SIGINT/SIGTERM.
ctrlc = "3.5"

[dev-dependencies]
socket2 = "0.6.1"

[target.'cfg(target_os = "linux")'.dev-dependencies]
nix = { version = "0.31.3", default-features = false, features = ["fs", "poll"] }
rustix = { version = "1.1.4", features = ["process"] }
1 change: 1 addition & 0 deletions crates/et-bin/src/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,7 @@ fn run_client(
command: args.command.as_deref(),
no_exit: args.no_exit,
keepalive: args.keepalive,
flow_control: args.flow_control,
terminal_enabled: !args.no_terminal,
lines: crate::client_terminal::RemoteLines::from(remote_mode.terminal_shell),
connection_name: &request.host_alias,
Expand Down
1 change: 1 addition & 0 deletions crates/et-bin/src/client_environment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ mod tests {
jumphost: Some(false),
reversetunnels: vec![request; 128],
environmentvariables: Default::default(),
flowcontrol: None,
};
let mut locale = vec![
("LC_ALL".to_owned(), "C".to_owned()),
Expand Down
Loading
Loading