• v0.7.2 c49ccd2cb2

    etwen released this 2026-07-16 13:46:42 +08:00 | 0 commits to main since this release

    🐛 Bug fixes

    Buttons and panels no longer get clipped at Windows display scaling above 100%

    • Fixed: on machines set to 125% or 150% scaling (most laptops), text grew with the scale but
      many controls didn't — the Log / Script / Stop buttons on each session tab were truncated
      or hidden, the AI Chat toolbar button lost its bottom edge at 150%, and dialogs like
      Quick Connect could clip or overlap their fields.
    • Every fixed pixel size in the app now converts to your actual display scale, the same way
      text always did: the sidebar, toolbars, tab strips, all Settings inputs and tables, the PDU
      status grid, the AI chat pane, dialogs, the Ctrl+F search bar — even the scrollbar width.
    • Buttons that change their text (like ⏺ Log → ⏺ Logging) now size themselves from the
      actual rendered text width, so they can never truncate again at any scale.
    • At 100% scaling nothing changes — the conversion is exact there, so existing setups look
      identical to before.

    Known limitation

    • If you change the Windows display scaling while ETTerms is running, restart the app to
      re-layout at the new scale.

    📦 Downloads

    Two builds are produced:

    Build Needs .NET 8 Desktop Runtime? Notes
    Standard (ETTerms_v0.7.2) Yes Smaller; for machines that already have the runtime
    Portable (ETTerms_v0.7.2_portable) No Runtime bundled — unzip and run, no install / admin needed

    Run ETTerms v0.7.2.exe.

    🔗 Links

    Full changelog: v0.7.1...v0.7.2

    Downloads
  • v0.7.1 90c1c45a56

    etwen released this 2026-07-16 10:13:27 +08:00 | 3 commits to main since this release

    New features

    sendlnretry — send a command, confirm it ran, resend if it didn't

    • New TTL command: sendlnretry '<text>' '<confirm keyword>' [max attempts].
      It sends the text, then waits for proof the device actually ran it, and resends if that
      proof never arrives. Leave the attempt count out and it retries until it gets through.

    • Drop it in wherever you send a command right after a boot — the fragile
      pause + sendln + wait dance becomes one line:

      wait 'root@(none):/#'
      sendlnretry 'tpm2' 'TPM 2p0'      ; retry until the device really runs it
      wait 'PASS'
      
    • Cap the attempts and handle the failure yourself — on success result is 1;
      when the attempts run out result is 0 and the script carries on instead of dying:

      sendlnretry 'tpm2' 'TPM 2p0' 3
      if result = 0 then
          dispstr 'tpm2 got no response after 3 tries'
      endif
      
    • Pick the confirm keyword from the command's own output (TPM 2p0), not its echo (tpm2) —
      an echo is produced by the device's tty and doesn't prove the shell ever read the line.

    • Each attempt waits 3 seconds by default, or your timeout / mtimeout if you've set one.
      (Unlike wait, 0 doesn't mean "wait forever" here — that would mean never retrying.)

    🐛 Bug fixes

    Scripts no longer hang forever when a booting device swallows a command

    • Fixed: a device that is still booting can silently discard console input the moment its shell
      takes over the tty. The line you sent is gone — the device never echoes it and never runs it —
      so the wait that follows blocks forever and the test rig sits dead until someone notices.
    • This is a race, not a delay: adding pause before sendln only lowers the odds of hitting the
      window, it can never close it. In one overnight 45-cycle power-cycle run, 3 cycles hung this
      way
      — and the swallowed sends landed at exactly the same moment as the 42 that worked.
    • Use the new sendlnretry above to make these sends reliable.

    📦 Downloads

    Two builds are produced:

    Build Needs .NET 8 Desktop Runtime? Notes
    Standard (ETTerms_v0.7.1) Yes Smaller; for machines that already have the runtime
    Portable (ETTerms_v0.7.1_portable) No Runtime bundled — unzip and run, no install / admin needed

    Run ETTerms v0.7.1.exe.

    🔗 Links

    Full changelog: v0.7.0...v0.7.1

    Downloads
  • v0.7.0 4f1aff07be

    etwen released this 2026-07-06 00:06:22 +08:00 | 7 commits to main since this release

    New features

    A proper chat UI for the AI Assistant

    • The AI Chat pane now renders real chat bubbles — your messages on the right, the AI's on the left — with full Markdown: code blocks, tables, lists and inline code all display cleanly.
    • When you send a prompt, an animated "…" thinking bubble appears while the AI works and disappears the moment the reply lands, so you always know it's running.
    • Built on WebView2 (part of Windows 11). The model dropdown, [AI] serial tagging, and PDU confirmations all work exactly as before.

    Control how far the AI runs

    • New setting Max tool calls / message (Settings → AI Assistant): how many tool calls the assistant may chain before it stops — a runaway-loop guard. Default is 30.
    • Set it to 0 for unlimited, handy for long automation runs you leave going for hours.
    • While the AI is working, the Send button turns into Stop so you can abort any run — bounded or unlimited — at any time.

    📦 Downloads

    Build Needs .NET Runtime? Notes
    ETTerms_v0.7.0 (Standard) Requires .NET 8 Desktop Runtime Smaller download
    ETTerms_v0.7.0_portable (Portable) Runtime included Unzip and run anywhere, no admin

    Run ETTerms v0.7.0.exe. (The WebView2 Runtime ships with Windows 11; both builds include the native loader.)

    🔗 Links

    Full changelog: v0.6.0...v0.7.0

    Downloads
  • v0.6.0 cf1fd2c345

    etwen released this 2026-07-05 22:37:32 +08:00 | 12 commits to main since this release

    

    New features

    Built-in AI Assistant — drive serial & PDU in plain language

    • New AI Chat button in the workspace toolbar opens an AI pane. Ask things like "list the open serial sessions", "attach to COM3, send help and show me the reply", or "connect to the PDU and power-cycle outlet 3" — the assistant calls the right tools for you.
    • Whatever the AI sends to a serial port shows up in that terminal tagged [AI], so you always see exactly what it did — no hidden actions.
    • Runs entirely against your own machines: it talks to the serial session ETTerms already has open, and to the PDU over SNMP.

    Sits right next to your terminal — like Claude Code / Kiro

    • The AI Chat is a normal workspace pane, so you can use Layout (1×2, 2×2…) to put it side-by-side with a live Serial session — chat on one side, watch the device output on the other.
    • Clean transcript layout that matches the terminal: your messages align right, the AI's replies read left, and tool activity stays as quiet gray notes. "Thinking" is folded into the Send button instead of spamming the log.

    Bring your own AI endpoint (nothing baked in)

    • Point it at any OpenAI-compatible endpoint — a local Ollama, a LiteLLM gateway, your company's gateway, or OpenAI. Set the Base URL and API key once in Settings → AI Assistant; leave it blank and the assistant simply stays off.
    • Pick the model from a dropdown in the bottom-right of the chat pane — it lists whatever your endpoint offers and switches on the fly, no trip back to Settings. Your choice is remembered.
    • Your API key is stored in Windows Credential Manager, never in a settings file — and no endpoint ships inside the app, so a copy you hand to a colleague has the assistant disabled by default.

    Safe by design

    • Turning a PDU outlet off or power-cycling always asks you to confirm first — the AI can't cut power on its own. Every tool call is written to the app log.
    • This is separate from the existing Serial/PDU MCP servers (Settings → AI MCP), which keep working for external AI CLIs like Claude Code / Kiro.

    📦 Downloads

    Build Needs .NET Runtime? Notes
    ETTerms_v0.6.0 (Standard) Requires .NET 8 Desktop Runtime Smaller download
    ETTerms_v0.6.0_portable (Portable) Runtime included Unzip and run anywhere, no admin

    Run ETTerms v0.6.0.exe.

    🔗 Links

    Full changelog: v0.5.0...v0.6.0

    Downloads
  • v0.5.0 4e9b13f9be

    etwen released this 2026-07-02 16:08:20 +08:00 | 18 commits to main since this release

    New features

    Find text in your scroll-back (Ctrl+F)

    • Press Ctrl+F to open a search bar right inside the terminal and find any text in the
      scroll-back history — Enter jumps to the previous match, Shift+Enter to the next,
      F3 repeats, Esc closes.
    • Every match is highlighted in yellow, the current one in orange, and matches stay
      anchored to the right line even as old output scrolls off the top of the buffer.

    Keyword highlighting + per-tab alerts

    • Define your own keyword list under Settings → Highlight (add, remove, and enable/disable
      each one). Matching text is highlighted on screen wherever it appears, case-insensitive.
    • When a keyword shows up on a tab you're not currently looking at, that tab's dot turns
      red so you notice it — switching to the tab clears the alert. Great for watching several
      sessions at once for an error string.

    A much bigger, TeraTerm-compatible TTL scripting language

    • The TTL engine now understands a large set of TeraTerm-compatible commands, so many
      existing TeraTerm macros run with little or no change.
    • New control flow — for/next, do/loop, while/until, call, goto, break,
      continue, include — plus a real expression parser (parentheses, logical & comparison
      operators, hex 0x / $), and dozens of new string, file/folder and utility commands
      (sprintf, strsplit, filereadln, getdate, random, crc32, inputbox, yesnobox, …).
    • New serial-specific script commands: sendbreak, setbaud, setdtr, setrts, sendfile.
    • Note: a single-string wait keeps ETTerms' existing settle-and-timeout behavior; multi-string
      wait follows TeraTerm semantics (times out and continues with result=0).

    See — or hide — what your scripts are doing

    • Scripts now echo their progress (waits, sends, errors) in grey directly in the terminal,
      and you can switch this off under Settings → Terminal (Show script trace).
    • The trace is display-only: it never reaches your session log, the AI bridge, or the device,
      so your captured machine logs stay clean.

    📦 Downloads

    Two builds are produced:

    Build Needs .NET 8 Desktop Runtime? Notes
    Standard (ETTerms_v0.5.0) Yes Smaller; for machines that already have the runtime
    Portable (ETTerms_v0.5.0_portable) No Runtime bundled — unzip and run, no install / admin needed

    Run ETTerms v0.5.0.exe.

    🔗 Links

    Full changelog: v0.4.0...v0.5.0

    Downloads
  • v0.4.0 c9671c819f

    etwen released this 2026-07-02 11:23:05 +08:00 | 22 commits to main since this release

    New features

    Terminal performance overhaul

    • Heavy output (long boot logs, big file dumps) now renders much more smoothly — drawing was
      reworked to stop re-creating fonts and brushes on every frame.
    • Scroll-back history storage was rebuilt so the terminal stays fast no matter how much output
      has accumulated; previously it got slower and slower once the history buffer filled up.

    Full-screen apps (vim / htop) behave like a real terminal

    • The mouse wheel now scrolls inside full-screen tools like vim and htop instead of doing nothing.
    • Tools that ask the terminal "where is the cursor?" now get an answer — fixes full-screen apps
      that could hang on startup or draw at the wrong position.

    Connection status you can actually see

    • When an SSH connection drops or hits an error, a message now appears right in the tab —
      no more sessions that silently stop responding.
    • When the local shell exits (e.g. you type exit), the tab shows
      [ETTerms] shell process exited instead of just going dead.

    Faster PDU status (GUI and AI)

    • Outlet polling now bundles all 12 ports into a few SNMP requests instead of 36 separate ones —
      the Status page refreshes faster, and an unreachable PDU no longer stalls the poll for minutes.
    • The AI pdu_status tool gets the same speed-up.

    🐛 Bug fixes

    Garbled Chinese / non-English text

    • Fixed: multi-byte characters could occasionally turn into garbage when text was split
      across data chunks — this affected TTL script wait matching, what the AI reads over the
      serial bridge, and saved session log files. All three now decode correctly.

    Scrolling

    • Fixed: while you were scrolled back reading history, any new output yanked the view down to
      the bottom. The view now stays where you are and only follows when you're already at the bottom.

    Resource & stability

    • Fixed small memory and handle leaks when opening and closing many local shell tabs over a
      long session.
    • Fixed: typing into an SSH session after the connection died could crash the window — it now
      just prints a short "write failed" note in the tab.

    📦 Downloads

    Two builds are produced:

    Build Needs .NET 8 Desktop Runtime? Notes
    Standard (ETTerms_v0.4.0) Yes Smaller; for machines that already have the runtime
    Portable (ETTerms_v0.4.0_portable) No Runtime bundled — unzip and run, no install / admin needed

    Run ETTerms v0.4.0.exe.

    🔗 Links

    Full changelog: v0.3.3...v0.4.0

    Downloads
  • v0.3.3 9628609eea

    etwen released this 2026-06-16 16:24:52 +08:00 | 26 commits to main since this release

    🐛 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

    Full changelog: v0.3.2...v0.3.3

    Downloads
  • v0.3.2 260f5b57d5

    etwen released this 2026-06-11 09:03:53 +08:00 | 28 commits to main since this release

    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

    Full changelog: v0.3.1...v0.3.2

    Downloads
  • v0.3.1 9addc5f2d9

    etwen released this 2026-06-08 16:14:08 +08:00 | 30 commits to main since this release

    🐛 Bug fixes

    Terminal scrolling

    • Added a dark vertical scrollbar on the right of the terminal — drag the thumb or click the track
      to page through long output, instead of long mouse-wheel scrolling. The owner-drawn bar (slim, rounded
      thumb) matches the KKTerm dark theme, and the content area excludes it so text is never covered.

    Multi-line paste

    • Fixed pasting multiple lines into Kiro CLI / PSReadLine: the whole block is now pasted as a
      single unit instead of each line being submitted immediately. ETTerms now honors bracketed paste
      (DEC mode 2004) and wraps pasted text in ESC[200~ … ESC[201~ when the app enables it.

    Copy feedback

    • After a right-click copy, the highlight now clears — so you get clear visual confirmation that
      the selection was copied.

    📦 Downloads

    Two builds are produced:

    Build Needs .NET 8 Desktop Runtime? Notes
    Standard (ETTerms_v0.3.1) Yes Smaller; for machines that already have the runtime
    Portable (ETTerms_v0.3.1_portable) No Runtime bundled — unzip and run, no install /
    admin needed

    Run ETTerms v0.3.1.exe.

    🔗 Links

    Full changelog: v0.3.0...v0.3.1

    Downloads
  • v0.3.0 6a85a48e6d

    etwen released this 2026-06-08 10:12:31 +08:00 | 33 commits to main since this release

    New features

    AI-driven PDU power control (MCP)

    • New ETTerms.PduMcp server lets AI agents (Kiro CLI / Claude CLI) control an SNMP PDU
      directly — power outlets on/off, read status, and power-cycle a DUT during automated tests.
    • Unlike the Serial bridge, the PDU runs over SNMP (UDP), which is non-exclusive, so the AI talks to
      the PDU directly — the ETTerms GUI does not need to be running.
    • Tools: pdu_connect / pdu_list / pdu_set_port / pdu_get_port / pdu_status /
      pdu_power_cycle / pdu_disconnect.

    One-click setup for both MCP servers

    • Settings → AI MCP now registers both etterms-serial and etterms-pdu into your AI CLI's
      user-level config with a single Setup (and removes both with Remove). Each card shows the
      resolved server paths and the CLI verify command.
    • Publishing the GUI auto-bundles both MCP servers into the app folder
      (\ETTerms.SerialMcp\ and \ETTerms.PduMcp\), so the registered paths always resolve.

    📦 Downloads

    Two builds are produced:

    Build Needs .NET 8 Desktop Runtime? Notes
    Standard (ETTerms_v0.3.0) Yes Smaller; for machines that already have the runtime
    Portable (ETTerms_v0.3.0_portable) No Runtime bundled — unzip and run, no install / admin needed

    Run ETTerms v0.3.0.exe.

    🔗 Links

    Full changelog: v0.2.2...v0.3.0

    Downloads