// changelog
What's new.
Every release, newest first. Update with Homebrew, or download it.
Worktree-first workspaces, context menus everywhere, Stop-hook message race fixed.
- Worktrees: docs, and the TUI's new-task dialog shows the real branch prefix
- Worktrees: their lifecycle
- Worktrees: workspaces are worktrees
- Worktrees: the daemon
- Context menus: every list with actions
- Context menus: files and the editor
- Context menus: the browser pane
- Context menus: git rows and commits, terminal, tabs
- Context menus: the engine, and a menu for text fields
- Daemon: the Stop hook's last message is set before the status turns done
Your phone reaches Tern from anywhere (Tailscale Funnel, Tern Relay); dictation crash fixed.
- Tern Relay: your phone reaches Tern from any network, end to end encrypted
- Funnel review fixes; the relay's design
- Remote access anywhere: Tailscale Funnel mode
- Remote access: Tailscale mode fails fast with what to do, and a setup checklist
SSH remote, runs, remote access from your phone, dictation, app icons.
- Remote: the ssh socket path budget counts ssh's temporary suffix
- Dictation: fix the crash, rewrite it cleanly, and keep its permissions
- Settings drops a revoked device at once; SSH test stops its host daemon
- Settings: Revoke works in Tern.app (click twice; the web view has no confirm())
- Review fixes for remote access, dictation and app icons
- Remote access: Tern on your phone, with end-to-end encrypted push
- Voice dictation: macOS's speech recognizer, ⌥⌘V tap or hold
- App icon variants: Ink, Paper, Terminal, Blueprint, Sunset
- Review fixes for runs and SSH remote
- SSH remote, part 2: a window on an SSH host
- App: the project's files, git, gh and formatters go through hostio
- SSH remote, part 1: tern bridge, tern --host, the host's files and commands
- Runs page: plans, live run graph, step detail and controls
- Orchestration: runs of agent steps, carried out by the daemon
- Daemon: an agent's first hooks wait for its session to be registered
- Updates: a card at the bottom right downloads, checks and installs a new Tern
- Debugger: Flutter hot reload only while the app runs (a paused web app waits forever); a real Flutter app test
- Debugger: any language — Dart, Flutter, JS/TS, Ruby, C/C++/Swift/Rust zero-config, your own adapters
- PR page: the Rerun button gets its own column (it wrapped into the dot's)
- Bottom bar: no F-key buttons; Shortcuts and the daemon on the right
- Right sidebar: icons for its tabs (names in the tooltips)
- PR page: clicks work again; big diffs load
- Fix what review found: a reply injection, a deadlock, and more
- Notes and prompts: a session in the diff's folder is found through /tmp links
- F1 help: the new keys
- Computer use: tern-desktop computer, for agents (with permission)
- Browser tabs: WebKit in a tab, and Grab Element for agents
- Welcome card and a tip a day
- Help ▸ Report an Issue: a bug report to look through, then share
- Updates: the newest release for a channel, and brew to install it
- Proxy: a Network setting for agents and for Tern itself
- Skills page: every agent's skills, installed and shared in one place
- Skill: tern new after the task example
- CLI: new, kill, split, open, agent-context; read --scrollback; send waits
- Keybindings: every shortcut by id, changed in Settings → Keys
- Markdown: Mermaid diagrams, contents, scroll sync, PDF export
- Viewers: images, PDFs, CSV / TSV tables, notebooks, SVG; image diffs
- Tabs: preview tabs, colours, ⌃Tab recent tabs; autosave
- Inline images in the terminal; a clear screen keeps rows exact
- Themes from Ghostty and Warp
- Floating terminal (⌥⌘A): a home shell over everything
- Terminal: find, prompt marks, links, clipboard, kitty keys, quick commands
- Automations, usage and accounts, issues and other forges
- Review and pull requests: notes to agents, AI commit messages, merge editor, graph, PR page
- Launch and workspaces: composer, agent catalog, trust, Yolo, teams, board, cleanup, ports
- Session vault: history, search, resume, continue/fork, auto names, sleep
- Attention: needs-you questions, unread, activity log, dashboard, native notifications
Workspaces sidebar, split panes, no dialogs, themes, markdown, terminal scrollback.
- Daemon test: wait for both sessions' frames together (a frame for B could be dropped while waiting for A)
- Panes: a pane left alone after its split closes fills the space again
- Desktop: workspaces sidebar, split panes, no dialogs, themes, markdown, terminal scrollback
- Daemon: split panes (session.watch, session.resize), scrollback, mouse wheel, sub-agents, agents typed into a shell
Debugger (Debug Adapter Protocol: debugpy, Delve, lldb-dap).
- Debugger: find versioned lldb-dap, CI job against real adapters, docs, exception names
- Gofmt
- Debugger: Debug Adapter Protocol client, desktop bindings and UI
- Brew cask: depends_on macos: :monterey (the string form is deprecated)
Multiple projects, go to definition, full-featured editor.
- Palette: keys typed right after ⌘P reach it, and ↵ opens the result for what was typed
- Editor: pure text helpers with unit tests; desktop tests in CI; docs
- Editor: completion, status line, live git gutter, Code menu, file operations, format
- Go to definition: docstring text is not a binding
- Daemon: survive import cycles, cache binder regexes, recover handler panics
- Go to definition: agree with jedi on every name in code-craft
- Go to definition for obj.attr by the object's type
- Bump the daemon feature level for the new definition lookup
- Go to definition for variables, parameters, imports and attributes
- Go to definition: ⌘-click or F12 in the editor
- Desktop tests: keep SetRoot off the real ~/.tern
- Desktop: several projects in one window
- Distribute from the public homebrew-tern repo; package Tern.dmg
- Desktop: colour syntax theme for the editor and diffs
- Desktop: collapsible sections
- Desktop: sidebars scroll and can be hidden from a button
- Desktop: a readable diff viewer
- Desktop: resizable, hideable sidebars
- Rename sessions (desktop, TUI, CLI)
- Show Tern's memory and the agents' apart
- CPU and memory per session
- Desktop: solid block cursor
- Desktop: clicks reach the empty state and doc pane, not the terminal
- Desktop: log to ~/.tern/run/desktop.log when started from Finder
- Recover from a replaced or restarted daemon
- Detect an old daemon by feature level, not build string
- Desktop: clear the terminal when the last session ends
- Fixes from end-to-end testing: TUI and desktop polish
- Desktop: editor, document tabs, closable sessions; end-to-end fixes
- Desktop: native menu bar so ⌘ shortcuts work
- Desktop: give the terminal the height
- Desktop: keys reach the session after clicking the terminal
- Desktop: fix typing in the native app
- Desktop: one-step terminal (Ctrl-` and empty-state button)
- Desktop: fix sidebar and key bar overflow
- Desktop: native graphical client (Tern.app) on the same daemon
- Redesign the console after the Tern Console Redesign canvas
- Adapt the console to narrow terminals
- Release tooling, upgrade, install, CI weight gates
- Scriptable CLI, agent skill, tern ssh
- Symbol search and references
- Review queue, conflict radar, merge, PR checkout
- Agent adapters, hooks, live status and approvals
- Worktree per task, tern.yaml, git actions
- Daemon, console shell, find and search
- Spikes for embedded terminal, hook injection, console skeleton