Skip to content

fresh-editor 0.4.7

Latest

Choose a tag to compare

@github-actions github-actions released this 07 Aug 05:56
Immutable release. Only release title and notes can be modified.
94bcfd0

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