Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 19 Jun 18:12
v0.4.0
e8303d9

[0.4.0] - 2026-06-19 (79.2%)

Added

  • tmux integration (auto-detected, guest-only): wf add gives each new workspace a real tmux window in your current session, one window per workspace
  • wf close closes a workspace's tmux window while keeping the worktree and branch
  • wf resurrect recreates tmux windows for every tracked workspace after a tmux or computer restart
  • wf sidebar shows a live strip of the workspace windows open right now (run it in a split pane)
  • Dashboard: press t to jump to a workspace's tmux window, and a marks workspaces whose window is open right now
  • Added backlink to repo in yaml file in project created by init
  • New documentation website (VitePress) covering the guide and command/configuration reference; its Changelog link points to the repository's CHANGELOG.md on GitHub
  • wf edit opens a workspace in an editor: it discovers the IDEs and editors installed on this machine (VS Code, JetBrains IDEs, Sublime, Zed, Vim, and more) and shows a picker to choose one — arrow keys to move, Enter to launch
  • Per-project default editor: set default_ide in a repo's .workFlow.yaml (or pin it from the picker) so each project can prefer its own IDE, with optional autolaunch to open it without the picker
  • Custom editors can be added under ides: in the global config so the picker can launch an editor wf doesn't ship in its catalog
  • Dashboard: e opens the editor (autolaunching the project default when set, else a picker) and o configures it; the picker appears as a popup over the ledger
  • wf edit --list prints the editors detected on this machine and their ids
  • Editor discovery finds snap-packaged IDEs via their Ubuntu menu entries and skips stale JetBrains Toolbox launcher scripts that point at a removed snap revision, so the picker resolves a launcher that actually works
  • Launching a GUI editor reports a real error when the launcher fails to start (e.g. a broken wrapper script) instead of falsely reporting that it launched
  • Live agent status for each workspace, shown inside the tmux tab (a working/waiting/idle icon prefixed to the window name, with the tab recolored by state), in the dashboard, and in the sidebar
  • wf hooks install / uninstall / print to manage the Claude Code hooks that report agent status (works with any agent that can run a command on its lifecycle events)
  • status: config block to customize the status icons and colors (presets nerdfont/emoji/ascii, per-state glyph/color overrides, tmux color mode, and a staleness TTL)

Changed

  • wf open now jumps to the workspace's tmux window when run inside tmux (creating it on demand); use --editor to open the editor instead. Outside tmux it opens the editor as before
  • wf merge and wf rm now also close the workspace's tmux window as they clean up
  • Dashboard ledger now shows a labelled column header and a legend explaining every status glyph and column
  • Dashboard workspace rows are accent-coloured per field (status, commit gap, diff counts, dirty and tmux markers) rather than colouring the whole line, so colour flags a specific status instead of the entire row
  • Dashboard shows each branch's commit gap to base as a single labelled "behind|ahead" column, replacing the unlabelled arrow pair
  • Renamed the clean workspace state in the dashboard from "done" to "clean" and gave it its own colour, so it reads as a normal state alongside "active" rather than a finished one
  • Dashboard: the x (remove) confirmation now checks the workspace first — it warns in red and spells out what would be lost (uncommitted changes and/or unmerged commits) when there is work at risk, and reassures in green that the branch is safe to drop when there isn't
  • Outside tmux, wf open now launches the workspace's default editor instead of a single configured editor command
  • The dashboard now updates agent status live (no manual refresh) and the sidebar's agent-status slot is filled instead of showing a placeholder

Removed

  • Removed the global editor config field (superseded by the discovered-editor model and per-project default_ide); a leftover editor: key is ignored and dropped on the next config save

Fixed

  • Dashboard: long branch names no longer break the table — the branch column is wider, and any name still too long is truncated with a , so the state, ahead/behind, diff, and base columns stay aligned