diff --git a/README.md b/README.md index ccddc49..87e57d7 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ > A native Windows terminal workspace (C# .NET 8 WinForms) — **SSH**, **Serial Port**, and **local Shell (ConPTY)** in one window, with a **TTL scripting engine** ported from MyTeraTerm for automation, plus an optional **Serial MCP server** that lets AI agents (Kiro CLI / Claude CLI) drive the serial port directly. Standalone, no cloud, no login. -![version](https://img.shields.io/badge/version-0.3.2-blue.svg) ![platform](https://img.shields.io/badge/platform-Windows-0078D6.svg?logo=windows&logoColor=white) ![.NET](https://img.shields.io/badge/.NET-8.0-512BD4.svg?logo=dotnet&logoColor=white) ![UI](https://img.shields.io/badge/UI-WinForms-5C2D91.svg) ![SSH](https://img.shields.io/badge/SSH-SSH.NET-success.svg) ![Serial](https://img.shields.io/badge/Serial-System.IO.Ports-success.svg) ![status](https://img.shields.io/badge/status-beta-yellow.svg) ![license](https://img.shields.io/badge/license-MIT-green.svg) +![version](https://img.shields.io/badge/version-0.3.3-blue.svg) ![platform](https://img.shields.io/badge/platform-Windows-0078D6.svg?logo=windows&logoColor=white) ![.NET](https://img.shields.io/badge/.NET-8.0-512BD4.svg?logo=dotnet&logoColor=white) ![UI](https://img.shields.io/badge/UI-WinForms-5C2D91.svg) ![SSH](https://img.shields.io/badge/SSH-SSH.NET-success.svg) ![Serial](https://img.shields.io/badge/Serial-System.IO.Ports-success.svg) ![status](https://img.shields.io/badge/status-beta-yellow.svg) ![license](https://img.shields.io/badge/license-MIT-green.svg) --- @@ -404,6 +404,11 @@ ETTerms/ ## 📜 Version History +### v0.3.3 + +- **Terminal input fix** — after the terminal had printed output (Serial or PowerShell), switching away and back (minimize, or click another app) could leave it unable to accept typing or **Enter**, forcing a session reopen; idle sessions were never affected +- Cause: once output built up scrollback, the terminal's scrollbar could steal keyboard focus on window re-activation. The scrollbar is now mouse-only and never takes focus, so input keeps working no matter how much has printed + ### v0.3.2 - **Status → PDU tab** — a dedicated `Status` rail view hosts the PDU panel: connect by IP, auto-poll all 12 outlets every 3 s (background thread, no manual Refresh), with live current / power readouts diff --git a/README.zh-TW.md b/README.zh-TW.md index 96d0aea..a1beab8 100644 --- a/README.zh-TW.md +++ b/README.zh-TW.md @@ -4,7 +4,7 @@ > 原生 Windows 終端機工作台(C# .NET 8 WinForms)—— 一個視窗整合 **SSH**、**Serial Port**、**本機 Shell (ConPTY)** 連線,內建從 MyTeraTerm 移植的 **TTL 腳本引擎**做自動化,並提供選用的 **Serial MCP server**,讓 AI agent(Kiro CLI / Claude CLI)直接操作 serial port。單機、無雲、無登入系統。 -![version](https://img.shields.io/badge/version-0.3.2-blue.svg) ![platform](https://img.shields.io/badge/platform-Windows-0078D6.svg?logo=windows&logoColor=white) ![.NET](https://img.shields.io/badge/.NET-8.0-512BD4.svg?logo=dotnet&logoColor=white) ![UI](https://img.shields.io/badge/UI-WinForms-5C2D91.svg) ![SSH](https://img.shields.io/badge/SSH-SSH.NET-success.svg) ![Serial](https://img.shields.io/badge/Serial-System.IO.Ports-success.svg) ![status](https://img.shields.io/badge/status-beta-yellow.svg) ![license](https://img.shields.io/badge/license-MIT-green.svg) +![version](https://img.shields.io/badge/version-0.3.3-blue.svg) ![platform](https://img.shields.io/badge/platform-Windows-0078D6.svg?logo=windows&logoColor=white) ![.NET](https://img.shields.io/badge/.NET-8.0-512BD4.svg?logo=dotnet&logoColor=white) ![UI](https://img.shields.io/badge/UI-WinForms-5C2D91.svg) ![SSH](https://img.shields.io/badge/SSH-SSH.NET-success.svg) ![Serial](https://img.shields.io/badge/Serial-System.IO.Ports-success.svg) ![status](https://img.shields.io/badge/status-beta-yellow.svg) ![license](https://img.shields.io/badge/license-MIT-green.svg) --- @@ -404,6 +404,11 @@ ETTerms/ ## 📜 版本紀錄 +### v0.3.3 + +- **終端機輸入修正** —— 終端機印過輸出後(Serial 或 PowerShell),切走再切回(縮小視窗、或點其他程式)可能導致無法打字或按 **Enter**,只能重開 session;閒置時則不受影響 +- 原因:輸出累積出 scrollback 後,視窗重新取得焦點時終端機捲軸可能搶走鍵盤焦點。捲軸已改為純滑鼠操作、永不吃焦點,無論印出多少都能正常輸入 + ### v0.3.2 - **Status → PDU 分頁** —— 新增 `Status` rail 檢視,PDU 面板移到此處:輸入 IP 連線後每 3 秒自動輪詢全部 12 個插座(背景執行緒,免手動 Refresh),即時顯示電流 / 功率 diff --git a/docs/release-notes/v0.3.2.md b/docs/release-notes/v0.3.2.md new file mode 100644 index 0000000..3f2248b --- /dev/null +++ b/docs/release-notes/v0.3.2.md @@ -0,0 +1,40 @@ +# v0.3.2 — Status page with PDU outlet control + +## ✨ New features + +**Status page — control PDU outlets with buttons** +* New **Status** view (the **⚡** icon on the left, between Terminal and Settings) with a **PDU** tab — + connect to your PDU by IP and see every outlet at a glance: state, current (mA) and power (W). +* Each outlet row now has its own **Control** button: the label tracks the live state + (**Turn ON** when off, **Turn OFF** when on), so a single click flips that port. The SNMP command + runs off the UI thread, the grid refreshes after the change, and it resets cleanly on disconnect. +* Outlet status **auto-refreshes every 3 seconds** in the background — no more manual Refresh button. +* The PDU panel moved out of **Settings** into its own Status tab (Settings now keeps just + **Terminal / AI MCP**), and the layout is ready for more Status tabs later. + +## 🐛 Bug fixes + +**Local Shell startup** +* Fixed: the local Shell no longer fails to start when its saved working folder is gone + (e.g. an unplugged USB drive or a deleted folder), which previously caused + `CreateProcess failed: 267 (ERROR_DIRECTORY)`. It now falls back to your home folder, + matching Windows PowerShell behavior. + +## 📦 Downloads + +Two builds are produced: + +| Build | Needs .NET 8 Desktop Runtime? | Notes | +|-------|-------------------------------|-------| +| **Standard** (`ETTerms_v0.3.2`) | ✅ Yes | Smaller; for machines that already have the runtime | +| **Portable** (`ETTerms_v0.3.2_portable`) | ❌ No | Runtime bundled — unzip and run, no install / admin needed | + +Run `ETTerms v0.3.2.exe`. + +## 🔗 Links +* PDU MCP & Serial MCP setup guide: + [docs/serial-mcp-guide.md](https://github.com/ETWen/ETTerms/blob/main/docs/serial-mcp-guide.md) +* TTL reference: + [docs/ttl-script-reference.md](https://github.com/ETWen/ETTerms/blob/main/docs/ttl-script-reference.md) + +**Full changelog:** [v0.3.1...v0.3.2](https://github.com/ETWen/ETTerms/compare/v0.3.1...v0.3.2) diff --git a/docs/release-notes/v0.3.3.md b/docs/release-notes/v0.3.3.md new file mode 100644 index 0000000..09baaff --- /dev/null +++ b/docs/release-notes/v0.3.3.md @@ -0,0 +1,32 @@ +# v0.3.3 — Terminal input no longer dies after activity + +## 🐛 Bug fixes + +**Terminal stops accepting input after you switch away and back** +* Fixed: once the terminal had printed some output (on a **Serial** or **PowerShell** tab), + switching away and back — minimizing the window, or clicking another app — could leave the + terminal unable to accept any typing or **Enter**. Previously the only way out was to close + and reopen the session (re-open the COM port / start a fresh PowerShell). +* While the session sat idle, this never happened — it only showed up after enough output had + scrolled by, which is exactly when it bit you mid-task. +* Cause: after enough output built up scrollback, the terminal's scrollbar could grab the + keyboard focus when the window regained focus, and the scrollbar has no keyboard handling — + so your keystrokes went nowhere. The scrollbar is now mouse-only and never takes focus, so + the terminal keeps working no matter how much it has printed. + +## 📦 Downloads + +Two builds are produced: + +| Build | Needs .NET 8 Desktop Runtime? | Notes | +|-------|-------------------------------|-------| +| **Standard** (`ETTerms_v0.3.3`) | ✅ Yes | Smaller; for machines that already have the runtime | +| **Portable** (`ETTerms_v0.3.3_portable`) | ❌ No | Runtime bundled — unzip and run, no install / admin needed | + +Run `ETTerms v0.3.3.exe`. + +## 🔗 Links +* PDU MCP & Serial MCP setup guide: + [docs/serial-mcp-guide.md](https://github.com/ETWen/ETTerms/blob/main/docs/serial-mcp-guide.md) + +**Full changelog:** [v0.3.2...v0.3.3](https://github.com/ETWen/ETTerms/compare/v0.3.2...v0.3.3)