New Text Engine & Folding
- Rebuilt the editor on TextKit 2. Layout and drawing now share the same geometry, eliminating the code-folding overlap bug where collapsing a large or deeply-nested section painted garbled text over the folded header.
- Reworked code folding. Folds collapse cleanly to the last line — no leftover blank line, no stray fold chip through nested collapses.
- Consistent line height for mixed Korean/Latin text, adaptive gutter width, and the minimap, all reimplemented on the new engine.
- Leaner internals — the old TextKit 1 code paths were removed.
Faster Typing
- Noticeably snappier typing. Per-keystroke work in the editor was profiled and trimmed across the board — even short documents used to accumulate small stalls on every key press.
- Instant autocompletion popup. The command palette is pre-built at launch and stays resident between uses, so typing
\no longer pays a window round-trip to reopen it. While you narrow a command, it updates only what actually changed instead of rebuilding on every letter. - No more hitch when you resume typing. The outline and label lists are now parsed in the background — they used to rescan on the main thread right after each typing pause, exactly when you were about to type again — and the sidebar skips redrawing when nothing changed.
- Smoother Korean input. Fixed an intermittent lag while composing Hangul (the delay mid-syllable as a character formed).
- Internal caret diagnostics were removed from the keystroke path (still available behind a hidden preference for debugging).
AI Assistant
- Renamed “AI Agent” → “AI Assistant” across the panel, tab, menus, and settings.
- Refined look. The panel shares the editor’s background so the two feel like one workspace; replies sit in clean cards, and the input field has a rounded border.
- File attachments. A new attach button adds files: text files (
.tex,.bib,.cls, …) are inserted inline into your prompt, while images and PDFs are sent as real attachments to Claude, ChatGPT, and Gemini. Staged files show as removable chips. - Smoother streaming. Responses render in steady batches instead of stuttering as the message grows.
- Auto-follow & “Jump to latest.” New content keeps the view pinned to the bottom while you’re there; a bottom-center button brings you back when you’ve scrolled up.
- Errors as chat bubbles. API/network failures now appear inline as a distinct error bubble with a readable message, instead of a banner that scrolls away.
- Faster to open with a long chat history — the transcript now renders lazily instead of building every past message up front.
- Larger send/stop button.
Editor & Files
- Fixed a scroll jump while typing in long documents — the viewport no longer lurches and snaps back on each keystroke.
- Large pastes stay in sync. Pasting a big block now highlights the whole thing right away, and the scrollbar and minimap match the real document length — no more bottoming out while text remains below, blank regions in the lower minimap, or a one-time scroll jump after the paste settles.
- Stable editor width across monitors. Moving the mouse to another display could flip the scrollbar between overlay and classic styles, changing the editor’s width and re-wrapping the whole document. The scrollbar now always overlays the text, so line wrapping stays put.
- Find & Replace persists across tabs — mode (Find vs Replace) and search string carry over on tab switches, and each match flashes a find indicator (even when off-screen).
- Redesigned minimap. The overview strip now draws a syntax-colored silhouette of your document — commands, comments, and math show in their editor colors. While typing it repaints only what changed, and full re-renders happen in the background, so the minimap never delays a keystroke even in very long files.
- Comment toggle keeps the caret aligned with the inserted/removed
%. - Save All (⌥⌘S) writes every open document at once.
- Steadier terminal text. The built-in terminal now uses a fixed font size (matching the AI Assistant) instead of scaling with the editor’s font-size setting.
- Tighter spacing between the sidebar / bottom-panel toggle icons.
Sessions
- Your tabs survive a crash. The open-tab set is now saved as you work — on tab changes and whenever the app leaves the foreground — not just on quit, so an unexpected shutdown no longer loses your session.
- Clear Session. A new File ▸ Clear Session command closes every tab and wipes the saved session, so the next launch starts fresh.