Skip to content

Commit 7289b8a

Browse files
committed
release: v2.1.2
1 parent 127246b commit 7289b8a

7 files changed

Lines changed: 43 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [2.1.2] - 2026-04-27
11+
1012
### Fixed
11-
- **PTY session mouse tracking leak**: after a PTY session disconnects (normal exit, Ctrl+C, network drop, or panic), the local terminal no longer prints raw SGR mouse escape sequences when the mouse is moved. All cleanup paths (`TerminalStateGuard::Drop`, `force_terminal_cleanup`, and the panic hook via `TerminalGuard`) now emit the full set of mouse-tracking-off sequences (modes 1000, 1002, 1003, 1006, 1015) plus cursor-show and alternate-screen-exit on teardown. (#189)
13+
- **PTY session mouse tracking leak**: after a PTY session disconnects (normal exit, Ctrl+C, network drop, or panic), the local terminal no longer prints raw SGR mouse escape sequences when the mouse is moved. All cleanup paths (`TerminalStateGuard::Drop`, `force_terminal_cleanup`, and the panic hook via `TerminalGuard`) now emit the full set of mouse-tracking-off sequences (modes 1000, 1002, 1003, 1006, 1015) plus cursor-show and alternate-screen-exit on teardown. (#189, #190)
14+
- **Panic-hook safety in terminal cleanup**: `force_terminal_cleanup()` now uses `try_lock()` instead of `lock()` so the panic hook path (`TerminalGuard::restore_terminal``force_terminal_cleanup`) cannot deadlock if the panicking thread already holds `TERMINAL_MUTEX`, and a previously poisoned mutex no longer triggers a secondary panic. The lock only serializes concurrent teardown; the underlying stdout writes and `disable_raw_mode` are individually safe. (#190)
15+
16+
### Changed
17+
- Centralized terminal teardown logic: `TerminalGuard::restore_terminal()` in `interactive_signal.rs` now delegates to `force_terminal_cleanup()` instead of carrying its own incomplete cleanup, closing the gap on the panic-hook path.
18+
19+
### Tests
20+
- Added unit tests for `force_terminal_cleanup()` covering idempotency, poisoned-mutex resilience, and held-mutex resilience (using local `Mutex` instances rather than the global `TERMINAL_MUTEX` to keep the global state undisturbed).
21+
22+
### CI/CD
23+
- Trigger the Homebrew formula update workflow only after the official release: `release.yml` now calls `update_homebrew_formula.yml` via `workflow_call` from the `publish-release` job (which converts pre-release to official), instead of `workflow_run` firing on every Release workflow completion (including pre-release builds).
24+
- Prevent the release workflow from being triggered twice: removed the `published` event type from the trigger list since `publish-release` already handles the pre-release → official conversion. `workflow_dispatch` continues to cover manual runs.
1225

1326
## [2.1.1] - 2026-04-17
1427

@@ -781,6 +794,7 @@ None
781794
- russh library for native SSH implementation
782795
- Cross-platform support (Linux and macOS)
783796

797+
[2.1.2]: https://github.com/lablup/bssh/compare/v2.1.1...v2.1.2
784798
[2.1.1]: https://github.com/lablup/bssh/compare/v2.1.0...v2.1.1
785799
[2.1.0]: https://github.com/lablup/bssh/compare/v2.0.1...v2.1.0
786800
[2.0.1]: https://github.com/lablup/bssh/compare/v2.0.0...v2.0.1

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ members = [
66

77
[package]
88
name = "bssh"
9-
version = "2.1.1"
9+
version = "2.1.2"
1010
authors = ["Jeongkyu Shin <inureyes@gmail.com>"]
1111
description = "Parallel SSH command execution tool for cluster management"
1212
license = "Apache-2.0"

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ A high-performance SSH client with **SSH-compatible syntax** for both single-hos
1212

1313
## Recent Updates
1414

15+
- **v2.1.2 (2026/04/27):** Restore terminal mouse tracking state on PTY session disconnect (#190); release workflow fixes
1516
- **v2.1.1 (2026/04/17):** Fix server panic and auth rejection on every client connection
1617
- **v2.1.0 (2026/04/14):** Rust 2024 edition migration, EnvGuard for safe test env handling, bytes pin
1718
- **v2.0.1 (2026/04/13):** Security updates (RSA Marvin Attack fix), bssh-keygen in Debian pipeline

debian/changelog

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1+
bssh (2.1.2-1~jammy1) jammy; urgency=medium
2+
3+
* v2.1.2
4+
### Bug Fixes
5+
- Restore terminal mouse tracking state on PTY session disconnect (#190):
6+
after a PTY session disconnects (normal exit, Ctrl+C, network drop, or
7+
panic), the local terminal no longer prints raw SGR mouse escape
8+
sequences. All cleanup paths now emit the full set of mouse-tracking-off
9+
sequences (modes 1000, 1002, 1003, 1006, 1015) plus cursor-show and
10+
alternate-screen-exit on teardown.
11+
- Make force_terminal_cleanup safe to call from the panic hook: switch to
12+
try_lock() so a poisoned mutex or self-held lock cannot deadlock or
13+
secondary-panic during teardown.
14+
15+
### CI/CD Improvements
16+
- Trigger Homebrew formula update only after the official release
17+
(workflow_call from publish-release), not on every Release workflow run.
18+
- Prevent double-trigger of the release workflow by removing the
19+
"published" event type — publish-release already handles the
20+
pre-release to official conversion.
21+
22+
-- Jeongkyu Shin <inureyes@gmail.com> Mon, 27 Apr 2026 00:00:00 +0900
23+
124
bssh (2.1.1-1~jammy1) jammy; urgency=high
225

326
* v2.1.1

docs/man/bssh-server.8

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.\" Manpage for bssh-server
22
.\" Contact the maintainers to correct errors or typos.
3-
.TH BSSH-SERVER 8 "April 2026" "v2.1.1" "System Administration Commands"
3+
.TH BSSH-SERVER 8 "April 2026" "v2.1.2" "System Administration Commands"
44

55
.SH NAME
66
bssh-server \- Backend.AI SSH Server for container environments

docs/man/bssh.1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.\" Manpage for bssh
22
.\" Contact the maintainers to correct errors or typos.
3-
.TH BSSH 1 "April 2026" "v2.1.1" "bssh Manual"
3+
.TH BSSH 1 "April 2026" "v2.1.2" "bssh Manual"
44

55
.SH NAME
66
bssh \- Broadcast SSH - SSH-compatible client with parallel execution capabilities

0 commit comments

Comments
 (0)