Skip to content

feat(progress): Detect OSC 9;4 in multiplexers tmux and Herdr - #372

Merged
epage merged 1 commit into
rust-cli:mainfrom
dbast:multiplexers
Nov 7, 2026
Merged

epage merged 1 commit into
rust-cli:mainfrom
dbast:multiplexers

Conversation

@dbast

@dbast dbast commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

What does this PR try to solve?

Supporting common multiplexers: Recognize tmux 3.7+ through TERM_PROGRAM and TERM_PROGRAM_VERSION, including patch suffixes such as 3.7b, recognize Herdr by TERM_PROGRAM, list already supported cmux and the status of screen + Zellij (missing upstream support).

tmux exposes progress to status formats and emits it to clients with Spb, supplied by terminfo, built-in mappings, or configuration. Automatic Ghostty progressbar recognition requires tmux 3.8. Herdr consumes progress for agent detection, not a generic visible bar.

These hints work in native and remote panes without probing. Preserve the TTY gate and document detection inputs. Test tmux version parsing directly, covering boundaries, patch suffixes, malformed values, and overflow.

Notes to reviewers

LLM involvement: No. Manually inspected and tested all listed multiplexers (cmux, herdr, screen, tmux, zellij) locally and remote via ssh and composed the documented context, conditionals, and parsing.

Comment thread crates/anstyle-progress/src/query.rs Resolved
Comment thread crates/anstyle-progress/src/query.rs Resolved
Recognize tmux 3.7+ through TERM_PROGRAM and TERM_PROGRAM_VERSION,
including patch suffixes such as 3.7b. Recognize Herdr by TERM_PROGRAM.

tmux exposes progress to status formats and emits it to clients with
Spb, supplied by terminfo, built-in mappings, or configuration.
Automatic Ghostty progressbar recognition requires tmux 3.8.
Herdr consumes progress for agent detection, not a generic visible bar.

These hints work in native and remote panes without probing. Preserve
the TTY gate and document detection inputs. Test tmux version parsing
directly, covering boundaries, patch suffixes, malformed values, and
overflow.
@epage

epage commented Nov 7, 2026

Copy link
Copy Markdown
Collaborator

Thanks!

@epage
epage merged commit d6790c3 into rust-cli:main Nov 7, 2026
21 of 22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants