github sinelaw/fresh v0.4.5
fresh-editor 0.4.5

6 hours ago

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.bazel files 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).
  • .editorconfig support - indent_style/indent_size/tab_width are 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
    • Scrollback no longer loses output or gets stuck mid-scroll (#2649, reported by @dmknght).
  • 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
    • Hover now merges results from every configured server instead of only the first (#2635, reported by @hkngoc).
    • Fixed hover occasionally showing another buffer's content (#2572, reported by @asukaminato0721).
    • Inlay hints now refresh after an edit instead of freezing (#2744, reported by @P1C4550).
  • 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.

Don't miss a new fresh release

NewReleases is sending notifications on new releases.