Skip to content

Commit 92b9938

Browse files
authored
chore(changelog): update to version 0.63.2 with new features, improvements, and bug fixes (#33)
1 parent fdddcf8 commit 92b9938

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,51 @@
11
# CHANGELOG
2+
## Version 0.63.2 (July 2026)
3+
4+
**Released**: July 14, 2026
5+
6+
This patch release stabilizes EX/SRX remote shell sessions, improves interactive terminal input handling, and adds a convenience helper for sending command batches. (#32)
7+
8+
---
9+
10+
### 1. NEW FEATURES
11+
12+
#### **Remote Shell Command Batches (`send_commands`)**
13+
`ShellSession` now supports `send_commands()` to send multiple shell commands without manually appending line endings:
14+
15+
```python
16+
from mistapi.device_utils import ex
17+
18+
with ex.createShellSession(apisession, site_id, device_id) as session:
19+
session.send_commands(["configure", "show | display set | no-more", "exit"])
20+
while data := session.recv(timeout=0.5):
21+
print(data.decode("utf-8", errors="replace"), end="")
22+
```
23+
24+
---
25+
26+
### 2. IMPROVEMENTS
27+
28+
#### **Remote Shell Readiness Handling**
29+
`ShellSession` now waits for the initial shell output before sending the first keystrokes, then buffers that initial output so callers still receive the banner or prompt on the next `recv()` call. This avoids losing early commands when the WebSocket is connected but the remote PTY is not yet ready.
30+
31+
#### **Interactive Shell Input Handling**
32+
`interactiveShell()` now uses platform-specific terminal input loops instead of `sshkeyboard`:
33+
- POSIX terminals use raw-mode input so keystrokes are forwarded directly to the device.
34+
- Windows consoles map special keys, such as arrows and navigation keys, to terminal escape sequences.
35+
- Non-interactive stdin now raises a clear `RuntimeError` instructing callers to use `ShellSession` / `createShellSession()` for programmatic access.
36+
37+
#### **Dependency Cleanup**
38+
Removed the unused `sshkeyboard` dependency and updated the lockfile.
39+
40+
---
41+
42+
### 3. BUG FIXES
43+
44+
#### **Remote Shell Close Races**
45+
`ShellSession.send()` now handles WebSocket close races during the readiness wait or `send_binary()` call, preventing teardown windows from surfacing as `WebSocketConnectionClosedException` crashes.
46+
47+
---
48+
249
## Version 0.63.1 (June 2026)
350

451
**Released**: June 14, 2026

0 commit comments

Comments
 (0)