github sinelaw/fresh v0.4.7
fresh-editor 0.4.7

4 hours ago

0.4.7

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).

Features

  • Guided code tours - a codebase walkthrough played in the editor: steps on the left, the current step's explanation on the right, the code open and highlighted above. Tours are small JSON files (fresh --cmd help tour), VS Code CodeTour files play as-is, and an unfinished tour resumes on next launch. Full guide: Guided Code Tours.
  • Scripting the editor - fresh --cmd script run hands a running Fresh a TypeScript program with the full plugin API: open files, arrange panes, start a coding agent, open a tour. Teach agent the Fresh CLI briefs claude, codex and opencode (on by default). Full guide: Scripting the Editor.
  • Agents can customize Fresh end to end - fresh --cmd init reload re-reads init.ts, fresh --cmd command run "<name>" invokes any palette command, fresh --cmd help plugin documents the runtime.
  • Every settings toggle says what it changes - Toggle X = editor-wide, saved to config; Toggle X (Current Buffer) = this buffer only. Several toggles gained the missing variant.
  • Git-gutter hunks and unsaved edits show on the scrollbar (#2713, requested by @RetributionByRevenue).
  • The Orchestrator dock has a close button and a View → Orchestrator Dock menu row.
  • Thrift syntax highlighting (#2884, by @asukaminato0721).

Bug Fixes

  • TOML multiline arrays highlight correctly (#2887, by @asukaminato0721).
  • The cursor can reach the last column when the scrollbar is shown (by @ttenneb).
  • Editing
    • Replace-all finishes on files with tens of thousands of matches - used to run minutes or hang (#2893).
    • Two splits on the same file keep independent edit points - transpose, move-line and toggle-comment reset the other pane's cursor (#2878, reported by @FreekyFrank).
    • Opening a file straight to a line no longer breaks syntax highlighting.
    • Highlights taller than the window are drawn again.
  • Input
    • Shift works with "Keyboard Report All Keys As Escape Codes" - Shift+A typed a (#2880, reported by @akarinotomoshibi).
    • Pasting works in the New Workspace and Run Agent dialogs, in daemon mode too.
  • Settings & commands
    • Settings toggles actually stick
      • Eight toggles forgot your choice on restart.
      • Project configs silently overrode toggled values; toggles now write the owning layer.
      • Workspaces stamped stale settings back on open.
      • Config writes are atomic and no longer delete hand-written empty overrides.
      • Reset Buffer Settings really resets everything.
      • Toggle Tab Indicators no longer hides the space dots too.
    • Menus and the palette agree on what a buffer can do - no more Save on a terminal (it overwrote the backing file with scrollback), no more greyed-out commands while a terminal or the explorer has focus.
  • Git & live diff
    • Live diff never refuses a file - "file too large for live diff" is gone; the shared diff engine degrades detail instead of giving up.
    • Reverting a file outside Fresh refreshes the git gutter, live diff and conflict markers.
  • Panels & docks
    • Closing a file no longer pulls a dock panel into the editor split.
    • Plugin panels handle the mouse properly - clicks, wheel and scrollbars work in every widget panel.
    • A second Utility Dock panel renders like the first - no stray line-number gutter.
    • Reloading a plugin stops stacking duplicate panels.
  • Workspaces & agents
    • Renaming a workspace made with "Extract Tab to New Workspace" no longer renames its co-tenant.
    • A restored workspace's agent can still drive the editor - the script grant now survives a restart.
  • Self-update
    • Updates finish through the channel that installed Fresh
      • .deb/.rpm/.flatpak updates asked repos that never served Fresh ("already the newest version", forever).
      • Homebrew named a nonexistent formula; several other channels' commands fixed.
      • Show the update command prints without downloading anything.
    • Security hardening - closed a symlink race in the binary swap and a predictable staging path ahead of sudo dpkg -i.

Internals

  • Flaky-e2e stabilization, quieter plugin slow-handler warnings, repo-root cleanup (#2914).

Don't miss a new fresh release

NewReleases is sending notifications on new releases.