Skip to content

Commit a051c76

Browse files
committed
docs: add changelog entry for v1.4.1
1 parent 3452a6a commit a051c76

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,36 @@ All notable changes to Bayesian SSH will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.4.1] - 2026-03-05
9+
10+
### Added
11+
- **TUI tab-based navigation**: Three tabs — Connections (`1`), History (`2`), Config (`3`) — switchable with number keys or `Tab`/`Shift+Tab`
12+
- **Add new connection form**: Press `a` in the Connections tab to create a connection directly from the TUI with a 9-field overlay (Name, Host, User, Port, Bastion, Bastion User, Key Path, Kerberos, Tags) and validation
13+
- **Session history view**: History tab with sortable columns (Date, Name, Duration, Status), connection name filter (`/`), failed-only toggle (`f`), and reconnect on `Enter`
14+
- **Environment management**: Config tab listing all environments with the active one highlighted; switch (`Enter`), create (`a`), or delete (`d`) environments without leaving the TUI
15+
- **Connection grouping by tag**: Toggle grouped view with `f` — connections are organized under collapsible tag headers
16+
- **Quick-connect bar**: Press `:` and type `[user@]host[:port]` to connect to an ad-hoc host without saving it
17+
- **Multi-select and batch operations**: `Space` to toggle selection, `Ctrl+A` to select all, `x` to batch-delete selected connections with a confirmation dialog
18+
- **SSH command preview**: Press `p` to see the full SSH command that would be executed, broken down by component (host, port, user, bastion, kerberos flags, key path)
19+
- **Async TCP ping with status indicators**: Press `P` to ping the selected connection in the background; results appear as colored indicators — green `` with round-trip time for reachable, red `` for unreachable, yellow `` while checking
20+
- **Shared ping service** (`services/ping.rs`): Lightweight TCP-level reachability check using `tokio::net::TcpStream` with timeout — no external process spawning; pings bastion host on port 22 for bastion connections
21+
22+
### Changed
23+
- **TUI modular architecture**: Split monolithic `tui/app.rs` (721 lines) and `tui/ui.rs` (572 lines) into focused modules:
24+
- `models.rs` — enums and small types (`Tab`, `AppMode`, `EditState`, `PingStatus`, etc.)
25+
- `state.rs``App` struct and state management with `tokio::sync::mpsc` ping channel
26+
- `input.rs` — keyboard handlers dispatched per tab and mode
27+
- `event_loop.rs` — terminal setup/teardown and main loop with async ping result draining
28+
- `ui/mod.rs` — draw dispatcher routing to tab views and overlays
29+
- `ui/header.rs`, `ui/list.rs`, `ui/detail.rs`, `ui/status.rs`, `ui/overlays.rs`, `ui/history.rs`, `ui/config.rs`, `ui/helpers.rs`
30+
- **Edit overlay extended**: Now supports 9 fields (added Key Path); `EditState` includes `is_new` flag and `validate()` for required-field checks
31+
- **Ping indicators use distinct colors**: Reachable (green), unreachable (red), checking (yellow) — previously all rendered identically
32+
33+
### Fixed
34+
- **Unreachable key binding patterns**: `Ctrl+A` select-all now correctly takes precedence over plain `a` add-connection; removed dead `g` grouping arm that was shadowed by go-to-top
35+
36+
---
37+
838
## [1.4.0] - 2026-03-05
939

1040
### Added

0 commit comments

Comments
 (0)