Repository navigation
The Big Quality Overhaul 🤖
This release closes out a 124-issue tracker sweep — 71 commits on release day alone, executed by a fleet of AI subagents working through the backlog wave by wave. It pairs a batch of new features with deep fixes for data loss, panics, security, performance, and Unicode correctness.
What's New
Agent Review Surface — TFE as the review layer for AI workflows
- Changes Mode (Ctrl+G): filter to git-modified/untracked files across the project
- Diff Preview: colorized git diff in the preview pane (toggle with
d) - Tab-Based Review: open changed files as persistent tabs (
t/T, Ctrl+W to close, Alt+arrows to cycle) - Diff-to-Clipboard: yank one diff (
y) or all diffs (Y) as markdown for AI review - Push-to-Clean: after
git push, the changes view clears and stale tabs close - Agent Conversation Viewer (Ctrl+A): browse Claude Code session JSONL files with color-coded rendering and live tailing
More new features
- fsnotify file watcher with a 3-layer debounce pipeline and atomic-write handling
- Menu bar reorganization: new Go, Git, and Settings menus; Profiles menu replaces the AI menu
- Settings panel (Ctrl+,) with quick toggles, backed by a new
~/.config/tfe/config.toml - Configurable theme system via
~/.config/tfe/theme.toml, plus light-theme contrast fixes - Tmux integration: spawn splits from context menus and keybindings
- Panel width lock (Ctrl+L) for dual-pane mode
- OSC 7 emission so your terminal tracks TFE's working directory
Quality Overhaul
Data-loss fixes
- Copying a file onto itself no longer truncates it to zero bytes
- Cross-device trash moves no longer lose files when rollback fails; restore works across filesystems
- Config/favorites/history/trash metadata written atomically; corrupted state files backed up instead of wiped
Security
- Bumped
golang.org/x/imageandgolang.org/x/netto fix reachable WEBP-panic and HTML-tokenizer vulnerabilities - File paths shell-quoted in viewer launch scripts
Stability
- Fixed panics in command-input cursor handling, short commit hashes, and watcher shutdown
- Fixed a data race in the markdown render goroutine
- Fixed file-watcher goroutine/watcher leaks
Performance
- File icons, directory counts, JSONL rendering, diff previews, and wrap counts are cached — no more per-row disk I/O or git subprocess spawns per frame
- Event-driven tree rebuilding; removed the permanent 50ms tick loop
- Hoisted styles, regexes, and map literals out of hot render loops
Unicode & width correctness
- Visual-width-aware truncation/padding across tree view, detail view, status bar, title bar, transcripts, and dropdowns
- Multibyte-safe backspace and cursor movement in all text fields
- Removed all emoji variation selectors; upgraded go-runewidth to v0.0.24
Refactoring
- Split the 2,617-line
handleKeyEventinto focused mode handlers - Deduplicated pane headers, scroll indicators, dialog dispatch, and display-mode switching
- Removed 12 unreachable functions and the dead async markdown pipeline
Installation
# One-line install
curl -sSL https://raw.githubusercontent.com/GGPrompts/TFE/main/install.sh | bash
# Or via Go
go install github.com/GGPrompts/tfe@v1.1.0Full Changelog
See CHANGELOG.md for complete details.
🤖 Generated with Claude Code