Releases: oxdingzg/mtty
Release list
v0.1.8
mtty v0.1.8
Fixes
- Tab titles survive a restart. A tab that was never renamed shows an
automatic title — the pane's OSC program name, then the current folder, then
shell N. That title was not stored in the session, so after a restart the
fresh shell's title replaced it and tabs came back as the running program's
name instead of the title they had before. The displayed title is now saved
and restored, so a restart shows the same title; a tab you renamed still keeps
your chosen name.
Verification
The source snapshot passes the workspace test suite, Clippy, formatting, and
privacy checks on CI, followed by the four-runner packaging and installer
checks (macOS both architectures, Linux AppImage/deb, Windows ZIP/MSI) with
detached minisign signatures. The title precedence is covered by a unit test.
Apple Developer ID notarization and Windows Authenticode signing remain
dependent on owner credentials.
v0.1.7
mtty v0.1.7
Features
- Right-click pane context menu. Terminal panes now open a context menu on
right-click, replacing the old copy-or-paste behavior. It offers Copy
(when there is a selection), Paste, Copy / Paste as (as ANSI
colours, or paste shell-escaped), Composer, Send to Agent…,
Select All, Search…, About This Line (the row, column, character
and text under the pointer), Split Pane and Clear Scrollback. Every
item reuses the same command as the palette and shortcuts, so nothing behaves
differently from the keyboard path. - Split Left and Split Up. The split menu (and the command palette) adds
Left and Up to Right and Down; the new pane lands on the near side.
Fixes and integration
- The Windows PowerShell 5.1 command-history fix is now verified end to end on
a logged-on Windows desktop (a scripted acceptance that types marked commands
into a 5.1 pane and reads them back over MTP). See
WINDOWS-PS51-HISTORY.md. - Desktop-only acceptance notes for the IME candidate anchor and inline-image
session restore are recorded in ACCEPTANCE.md.
Verification
The source snapshot passes the workspace test suite, Clippy, formatting, and
privacy checks on CI, followed by the four-runner packaging and installer
checks (macOS both architectures, Linux AppImage/deb, Windows ZIP/MSI) with
detached minisign signatures. The pane context menu was checked in a real macOS
window. Apple Developer ID notarization and Windows Authenticode signing remain
dependent on owner credentials.
v0.1.6
mtty v0.1.6
Features
- Full kitty keyboard protocol. The terminal now honours all five
enhancement flags: disambiguate escape codes, event types (including
release), alternate keys and associated text, plus all keys as
escape codes. Shift+a is reported asCSI 97:65;2u, Shift+2 as
CSI 50:64;2u, a Cyrillic ctrl+с still reaches the program as ctrl+c, and
the bytes a key produced travel as the text sub-field. Read it in
PRODUCT.md. - Inline images keep their layer. Kitty graphics placements now carry their
z-index, so negative-z images draw behind the text grid while z≥0 images draw
above it, still clipped to their pane. - Images come back with a session. A restored pane brings its inline
images back with the restored scrollback, anchored to the same text row, when
the pane returns at the same width. Images larger than the store cap or
older than the captured rows are dropped, and a Kitty animation returns as a
still frame. - Search inside files and scrollback. Open Quickly (
⌘⇧O) now matches text
inside files in the current directory and inside the active pane's
scrollback, off the UI thread and bounded by file count, size and time; a
file hit opens the editor at the line, a scrollback hit scrolls and
highlights the match. - Remote editing follows the remote file. An editor pane over ssh now polls
the remote file's length and mtime in the background and reloads in place
when it changes underneath the pane and there are no unsaved edits — the
same behavior local files already had. - Whole folders over FTP. The FTP/FTPS browser uploads and downloads whole
directories recursively, creating local folders before fetching and remote
folders before sending. - Opt-in SSH reconnect.
ssh-auto-reconnect = trueconnects restored SSH
tabs on startup instead of waiting for Enter (default off, host-key
verification unchanged).
Fixes
- Wide-character copy. Copying a selection that began on the trailing half
of a CJK character dropped it while the mirror-image drag kept it; both
directions now keep the character whole, and a wrapped character's leading
spacer can no longer leak in. - PowerShell 5.1 history. Windows PowerShell 5.1 now records command
history through the samePSConsoleHostReadLinehook as 7.x. - Render pacing and glyph atlas. Hidden, minimized and occluded surfaces no
longer submit GPU work; redraws are coalesced and timer wakes are compacted;
the previous frame's glyph atlas pins are released every frame so the LRU can
evict; renderers for closed panes are dropped.
Chores and documentation
- The repository, its engine crates and the crate directories are now
mtty-*. - Release notes are English with a Simplified Chinese link; third-party
terminal references are removed; the roadmap records the real mosh
verification.
Verification
The source snapshot passes the workspace test suite, Clippy, formatting, and
privacy checks on CI, followed by the four-runner packaging and installer
checks (macOS both architectures, Linux AppImage/deb, Windows ZIP/MSI) with
detached minisign signatures. Apple Developer ID notarization and Windows
Authenticode signing remain dependent on owner credentials.
v0.1.5
mtty v0.1.5
Features
- Themes and chrome. A selectable mtty preset (navy window and
chrome,#171b24/#212733/#2b333e) joins Nord (default), Dracula and
Gruvbox. The file tree gains per-type colored icons (folder, code, doc,
config, lock, database), and the New SSH Session form is reworked into
quick-connect, saved-host fields, an Advanced section, and
Connect / Save & Connect actions. See CONFIG.md. - Agent tab markers. The tab marker now distinguishes a running turn from
idle and waiting: idle is an empty ring, executing is a rotating accent arc
(animated, so a long turn never looks stalled), and waiting is a ring with a
solid core apart from the finished disc. - Startup update check. mtty checks for a newer release once at launch
(configupdate-auto-check, on by default) and shows it in the status line.
Setupdate-auto-check = falseto make no request until you ask.
Fixes
- macOS tab dragging. The transparent, full-size title bar made macOS start
a window drag on any press in the title strip, so dragging a tab chip moved
the whole window instead of reordering tabs. System drag is now off for the
window and the app keeps its own region-based dragging. - Editor gutter underflow. A windowed large-file view could subtract the
line number's width from the gutter below zero — a debug build panicked
inside the draw callback, a release build wrapped to a garbage offset. The
last cells are clamped instead, counted by character so a fold marker is
never split.
Chores and documentation
- A pull-request workflow for the protected
main(CI, squash merge,
conventional titles), with CODEOWNERS, a PR template and a standards check. scripts/session-worktree.shto isolate parallel sessions in disposable git
worktrees, documented in AGENTS.md.- An app-managed SSH tunnel lifecycle proposal, and refreshed CI performance
baseline.
Verification
The source snapshot passes the workspace test suite, Clippy, formatting, and
privacy checks on CI, followed by the four-runner packaging and installer
checks (macOS both architectures, Linux AppImage/deb, Windows ZIP/MSI) with
detached minisign signatures. Apple Developer ID notarization and Windows
Authenticode signing remain dependent on owner credentials; Claude ACP still
needs provider authentication for a real prompt.
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
v0.1.4
mtty v0.1.4
Fixes and improvements
- Responsive terminal shutdown. Child termination and reaping run off the UI
thread. Unix shells that ignore SIGHUP are forcefully terminated; Windows
process-tree termination also runs in the background. - Bounded resource diagnostics. A background recorder samples process CPU,
RSS and render activity every 30 seconds. Resource logs are capped at 64 MiB;
panic logs are capped at 2 MiB, including backups. Disable sampling with
MTTY_MONITOR=0. See Troubleshooting. - Transactional Windows updates. ZIP updates validate and stage all three
executables before replacement, retain backups, and roll back failed updates.
MSI exit codes are checked. ZIP extraction uses .NET Unicode paths, including
on English Windows systems. See ADR 0043. - Agent editing and ACP. Deleted proposal rows remain visible for review
without entering copied or saved text. Whole-file proposals preserve unchanged
context. ACP adds authentication, session loading and terminal callbacks;
client file writes require review and saving, and commands require permission.
Output and process counts are bounded. - Clipboard and transports. Clipboard image forwarding supports Windows and
X11 PNG encoding and text-paste cleanup; Wayland uses the existing data device.
Serial reads retry idle timeouts and interruptions, and closing a pane stops
its idle byte-pipe reader. - Documentation and third-party licence notices refreshed.
Verification
The source snapshot passed 531 macOS workspace tests, Clippy, formatting,
privacy checks and 14 release performance tests on a remote build host. Three
native Windows ConPTY tests passed. The release pipeline additionally checks
both macOS architectures, Linux AppImage/deb and Windows ZIP/MSI packaging,
installer contents and detached minisign signatures.
Further platform acceptance evidence and limits are recorded in
ACCEPTANCE.md. Apple Developer ID notarization and Windows
Authenticode signing remain dependent on owner credentials; detached minisign
signatures are provided separately. Claude ACP still needs provider authentication
for a real prompt.
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
v0.1.3
mtty v0.1.3
- The bundled font is now the default. mtty ships JetBrains Mono but the
font system fell back to Courier New, which lacks box-drawing U+2503 (┃,
the left border miao draws on messages) and the tool marker U+23BF (⎿).
On Windows the missing┃showed as a strayzon every message line.
JetBrains Mono is now the monospace default, and⎿stands in as└.
Verification runs on GitHub Actions: full workspace CI and performance gates,
followed by four-runner packaging and installer checks.
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
v0.1.2
mtty v0.1.2
- Chinese IME punctuation on macOS. Typing
.with the built-in Pinyin
input method inserted the full-width。(and a visual gap) instead of.:
winit dropped the IME's direct commit and sent the keyboard layout's own
character, and mtty's IME reply path never saw the real one. mtty now carries
a patched winit that keeps the IME's committed string, so1.0.0types as
1.0.0. Regular (non-IME) input is unchanged. Upstream: winit #3925.
Verification runs on GitHub Actions: full workspace CI and performance gates,
followed by four-runner packaging and installer checks.
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
v0.1.1
mtty v0.1.1
- The Resume picker shows when a session was last seen. Every reported
session now carries a timestamp, and Resume Agent Session… shows a relative
age (5m ago,2h ago, …) next to each one. - Adjustable quota warning.
agent-quota-warninconfig.toml(default
80, clamped to 0–100) sets the percentage at which the Agent tab marks an
agent-reported quota.
Verification runs on GitHub Actions: full workspace CI and performance gates,
followed by four-runner packaging and installer checks.
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
v0.1.0
mtty v0.1.0
- Resume an agent session. Resume Agent Session… lists the sessions
agents have reported (agent, session id, directory, most recent first) and
relaunches the chosen one in the directory it ran in.mtty-cliand MTP
gainagent.sessionsandagent.resume(newagent.resumecapability);
the agent hook now reports its working directory. - Agent quota at a glance. When an agent reports its usage, the Agent tab
shows one compact line (used/limit, the window, and a ⚠ past 80%); mtty
never calls a model or account API.mtty-cli state --quota FILE|-forwards
a JSON quota with a state report.
Verification runs on GitHub Actions: full workspace CI and performance gates,
followed by four-runner packaging and installer checks.
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
v0.0.25
mtty v0.0.25
- Windows text is no longer garbled. Each pane's console now runs on a
UTF-8 code page (cmd, PowerShell and Git Bash), so a program that writes
UTF-8 bytes instead of going throughWriteConsoleW— Bun and the native
TUI renderers, such as the one behind miao — no longer shows CJK as mojibake. - Open Externally. A new command (and View-menu item) hands the active
editor's file to the system's default application; a terminal pane falls back
to its own directory. - Jump-to-line highlight. Go to Line, Go to Symbol, Jump to Selection and
MTPapp.edit/app.viewflash the line they land on. - More of the kitty keyboard protocol. Event types (including release) and
"report all keys as escape codes" are honoured on top of disambiguation.
Verification runs on GitHub Actions: full workspace CI and performance gates,
followed by four-runner packaging and installer checks.
Free code signing provided by SignPath.io, certificate by SignPath Foundation.