Immutable
release. Only release title and notes can be modified.
0.4.5
For live updates on Fresh, follow me on X.
Most options below can be changed in the Settings UI - run Open Settings from the command palette (
Ctrl+P).
Terminal input parsing was rewritten
Keyboard and mouse input is now parsed by our own fresh-input-parser crate instead of crossterm, to work around crossterm limitations that caused real bugs: dropped modified F1-F4 keys (Shift+F3 did nothing, #699), unchecked mouse-coordinate math (a crash, #2732), and desyncing on input split across reads (mouse sequences leaking into terminals, #2745). This touches core input handling broadly, so if anything feels off with keyboard or mouse input, please report it.
Features
- Option for in-editor self-update - update Fresh from the status-bar indicator, or via
fresh --cmd update. Detects your install method and runs the appropriate, platform specific, update command. - Syntax highlighting inside embedded code blocks - a fenced code block in a Markdown file (e.g.
```rust) now highlights with that language's own grammar instead of one flat color; the same mechanism also fixes Vue's<script>/<style>blocks (#2689, requested by @asukaminato0721). - Better Bazel/Starlark highlighting - functions, operators, punctuation, and built-ins are now highlighted, and
.bazel/MODULE.bazelfiles are recognized (contributed by @asukaminato0721). - Orchestrator: agents & workspaces
Run Agent…command launches a terminal or a coding agent (claude,codex,opencode,aider) in your current workspace or a new one, without the full New Workspace dialog.- Non-blocking workspace creation - creating a workspace no longer freezes the editor; choose Create & Visit or Create in Background and keep working while it comes up.
- Classic Mac (CR) line endings are now fully supported (#2736, requested by @720720).
.editorconfigsupport -indent_style/indent_size/tab_widthare picked up automatically (#959, requested by @nyurik).- Save All - save every modified buffer at once from the File menu (#2289, requested by @alspaughb).
Bug Fixes
- Orchestrator & dock
- Codex "Auto mode" works again (it was passing a flag recent Codex CLI rejects).
- Dock rows are fully clickable in compact (list) view, ordered by recency, and auto-name themselves from their terminal.
- Fixed a crash when navigating to an unreachable remote workspace.
- Terminal
- Tabs & splits
- A long filename no longer hides other tabs, and per-split scrolling is fixed (#2650, reported by @dmknght).
- Closing a split now asks for confirmation first.
- Closing the last editor tab no longer swallows the Utility Dock into the main tab bar (#2283, reported by @lizdeika).
- Plugin split APIs (
setSplitRatio,openFileInSplit) no longer crash or silently no-op on an invalid split (#2769, #2770, #2783, reported by @RetributionByRevenue).
- LSP
- Misc
- On-save actions no longer desync from disk on rapid saves (#2711, #2706, reported by @720720).
- Settings' Theme dropdown lists every installed theme (#2738, reported by @720720).
- Fixed a spurious devcontainer parse error on startup (#2709, reported by @720720).
- The ruler now draws past the last written line (#2631, reported by @akarinotomoshibi).
- Edit menu's "Replace..." is now correctly labeled "Query Replace..." (#2135).
Internals
- Split the monolithic plugin-dispatch and update/release-checking code into focused modules, alongside a round of flaky-e2e-test stabilization.