etwen and Claude Fable 5
98fbd310d2
feat: v0.5.0 terminal search, keyword alerts, TeraTerm-compatible TTL
...
Search (Ctrl+F):
- in-terminal search bar over full scrollback + screen; all hits
highlighted, current hit emphasized; Enter searches upward,
Shift+Enter downward, F3/Esc shortcuts
- hits anchored via ScreenBuffer.DroppedLines so positions stay
correct as the ring buffer drops old lines
Keyword highlighting & tab alerts:
- new Settings -> Highlight page: user-defined keyword list with
per-rule enable and a global toggle (AppSettings.KeywordRules)
- keywords highlighted red in every terminal (visible rows only,
case-insensitive); background tabs flash a red dot when a keyword
appears, cleared when the tab is opened
TTL engine (TeraTerm macro compatibility):
- new TtlExpression parser: parens, and/or/xor/not, comparisons,
* / % + -, hex literals (0x/$), string/int values; legacy fallback
keeps old scripts working
- control flow: goto, call/return (inline, usable inside loops),
for/next, do/loop [while|until], until/enduntil, break, continue,
end, exit, include, mpause; one-line "if <expr> <statement>"
- waits: waitln, waitregex (matchstr/groupmatchstr1-9), recvln,
multi-string wait (TeraTerm semantics), mtimeout
- strings: strlen strcompare strconcat strcopy strinsert strremove
strmatch strscan strreplace strtrim strsplit strjoin tolower
toupper str2int int2str code2str str2code sprintf expandenv
- files: fileopen filereadln filewrite(ln) fileclose filecreate
filedelete filesearch basename dirname makepath foldercreate
folderdelete foldersearch getdir setdir
- misc: beep getdate gettime getenv setenv random exec getver
getttdir uptime ifdefined clipb2var var2clipb inputbox yesnobox
crc32 checksum8/16/32 dispstr
- serial: sendbreak setbaud setdtr setrts sendfile (SerialChannel
gains SendBreak/SetBaudRate/SetDtr/SetRts)
- script Output (incl. dispstr) now echoed gray into the terminal
- quote-aware comment stripping; case-insensitive variables
Docs:
- docs/ttl-script-reference.md rewritten: ETTerms-only commands
first, then the TeraTerm-shared set, with examples
Misc:
- version 0.5.0; About changelog; CLAUDE.md v0.5.0 notes
- restore ETTerms.PduCore ProjectReference in ETTerms/PduMcp csproj
(was dropped in the working tree; required to compile)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 14:47:06 +08:00
etwen
e5ed2dc688
feat(scripting): wait settles until device is idle before matching
...
After finding the keyword, wait requires the receive buffer to stay quiet for ~300ms (no new bytes) and consumes up to the LAST occurrence. This rejects matches on echoed command prompts (e.g. 'SVOS> help') mid-output, preventing the script from racing ahead. Applies to all wait-based loops without per-command markers.
2026-06-04 14:17:45 +08:00
etwen
2bfb2c6575
feat: initial release v0.1.0
...
- KKTerm-style UI: Activity Rail, Connection Sidebar, Tabbed Workspace
- Serial Port connection (System.IO.Ports)
- SSH connection (SSH.NET, password/key/keyboard-interactive)
- Local Shell via Windows ConPTY (PowerShell/Bash/Cmd)
- VT100/ANSI terminal rendering (owner-drawn, double-buffered)
- TTL script engine: send, sendln, wait, pause, timeout, if/while, messagebox
- Group execution: waitall, sendlnall, sendlngroup (Barrier sync)
- Run All / Run Group toolbar buttons
- SFTP file browser sidebar (SSH.NET SftpClient)
- PDU control via SNMP (pduconnect/pductrl commands)
- Settings: Terminal prefs, Shell config, PDU monitoring
- About page with changelog
- AppSettings persisted to %LocalAppData%\ETTerms\
- Dark theme throughout (KKTerm purple accent)
2026-06-03 17:09:55 +08:00