Releases: vipmax/anydiff
Releases Β· vipmax/anydiff
Release list
AnyDiff v1.6.0
π² Git Commit Graph & History Inspector
- Interactive Visual Commit Graph:
- Native multi-lane Git commit graph with zero-alloc branch and merge line rendering directly in the history list.
- Detail popover displaying author metadata, relative and exact timestamps, and a copy button for the full commit SHA (visible on hover).
- Compact file count badge with tooltip summary.
- Live watcher integration: commit history automatically reloads when git repository references or HEAD change.
- Fast & Responsive History Search:
- Debounced search queries with background graph layout offloading to keep the UI at 120 FPS.
- Lane leak and stair-stepping prevention when rendering filtered search results.
- Quick dismiss and clear search on
Escapekey press. - Seamless commit diff viewing: eliminated black screen flash when switching between commits by avoiding eager buffer clears.
π Virtualized File Tree & Standalone File Editing
- High-Performance File Tree (
FilesPanel):- Virtualized workspace file tree capable of smoothly navigating large repositories.
- Added dedicated
Filespanel support to the flexible 3-panel layout system. - Standalone file viewing and direct editing of non-modified workspace files directly from the tree.
π€ AI Agent & Chat Navigation Enhancements
- Direct Chat-to-Editor File Navigation:
- Interactive file paths and line anchor links in agent messages jump directly to corresponding editor lines.
- Robust
FileLinkParsersupporting custom schemes and markdown anchor formats.
- Live Diff & Tool Call Improvements:
- Asynchronous live diff calculation with debouncing during agent tool execution.
- Fallback to parent message
rawDiffDatafor edit/create tool cards with reactive updates. - Agent tool call location previews, theme focus accent, and header background alignment.
- Attachments & Session Persistence:
- Deduplicated macOS screenshot drops and broadened drag-and-drop file type support.
- Model, mode, and effort configuration persisted across sessions with boolean toggle controls.
- ACP protocol fixes handling client capabilities duality and pagination in
fs/read_text_file.
- Chat Scrolling & Cursor Fixes:
- Eliminated cursor flickering between I-beam and arrow during scrolling by intercepting tracking areas.
- Eliminated view hierarchy churn and drag region recalculation during rapid chat scrolling.
ποΈ Editor & Window Polish
- Scroll Anchor Preservation:
- Preserved scroll anchor position across external file modifications and filesystem watcher reloads.
- Window Layout & Controls:
- Left sidebar toggle button aligned to the leading edge next to macOS window traffic lights.
- Restored and reinforced crisp vertical dividers between panels across dynamic window appearance changes.
π§ͺ Tests & Quality
- Expanded automated test suite to 310 passing unit & integration tests.
AnyDiff v1.5.1
π₯οΈ Native Intel (x86_64) Architecture Support
- Dual Architecture Distributions:
- Added full native release support for Intel Macs (
x86_64) alongside Apple Silicon Macs (arm64). - Separate, highly optimized release archives (
AnyDiff-macOS-arm64.dmg/.zipandAnyDiff-macOS-x86_64.dmg/.zip). - Size-optimized builds with dead-code stripping, minimal reflection symbols, and symbol stripping (<2 MB per archive).
- Added full native release support for Intel Macs (
- Multi-Architecture Homebrew Cask:
- Updated
vipmax/tap/anydiffformula with automatic architecture detection (arch arm: "arm64", intel: "x86_64").
- Updated
- One-Line Installer (
scripts/install.sh):- Automatically identifies host CPU architecture (
arm64vsx86_64) and downloads the matching binary.
- Automatically identifies host CPU architecture (
AnyDiff v1.5.0
π§© Configurable 3-Panel Layout & Docking System
- Flexible Panel Assignment:
- Introduce
PanelLayoutManagerallowing arbitrary configuration of Left, Center, and Right slots withChanges,Editor, andAgentpanels. - Interactive panel headers with quick-switch menus, dock actions, and empty slot placeholder views.
- Automatic panel content movement preventing duplicate views across slots.
- Panel configuration persisted in
UserDefaults(anydiff_panel_slot_*).
- Introduce
- Enhanced Window & Status Bar Controls:
- Right panel collapsible toggle with animated transitions and state persistence.
- Status bar quick panel toggles and visual indicators.
- Menu bar commands for showing/hiding and switching panel contents.
π‘οΈ Automated Release Pipeline & Homebrew Integrity
- Zero Checksum-Mismatch Automation:
- Added
scripts/release.shandjust publish <version>for automated, atomic release generation and Homebrew tap synchronization. - Protected GitHub Actions CI workflow from clobbering release archive hashes.
- Added
π§ͺ Tests & Quality
- Expanded automated test suite to 259 passing tests with full test coverage for
PanelLayoutManagerand layout slot transitions.
AnyDiff v1.4.0
π Side-by-Side (Split Diff) Layout Mode
- Two-Column Virtualized Editor:
- Full side-by-side split diff viewing mode with independent left (original/deleted) and right (modified/added) column rendering.
- Dedicated
SplitDiffEngineperforming line pairing, deletion/addition block alignment, and synthetic spacer row insertions. - Independent column text selection, cursor positioning, and clipboard copying.
- Smooth layout toggling via
Cmd + D, custom toolbar button with animated pill transitions, and theView -> Diff Layoutmenu. - State persistence across sessions (
DiffLayoutModein@AppStorage) with cursor and scroll anchor preservation.
β‘ Patience Anchor Myers Diff & Lazy Word Diffs
- Divide-and-Conquer Myers Algorithm:
- Integrated Patience diff technique via
computeMyersDiffWithAnchors: searches for unique matching anchor lines to partition the diff space before running Myers. - Drastically reduces diff calculation time and eliminates visual noise on large multi-line refactors.
- Integrated Patience diff technique via
- Lazy Slice-Based Word Diffing:
- Intra-line character and word highlighting is now evaluated lazily only for the active visible slice rather than the entire document ahead of time.
πΎ Sub-Microsecond Zero-Alloc Disk Sync (FileDiskState)
- Fast POSIX
stat()Snapshotting:- Direct Darwin
stat()query checking nanosecond-precisionmtimeand file size without intermediate memory allocations or reading file text into memory. - Differentiates AnyDiff self-saves from external modifications (e.g., git checkouts or other editors) in ~1 microsecond.
- Tuned autosave debounce delay to 600 ms for optimal responsiveness during intensive typing.
- Direct Darwin
ποΈ UI & Agent Panel Refinements
- Panel Visibility Persistence & Shortcuts:
- Persist toggle state for Left (File Tree / Sidebar,
Cmd + Ctrl + S) and Right (AI Agent,Cmd + Option + A) panels. - Fixed duplicate user message echoes during active ACP streaming sessions.
- Persist toggle state for Left (File Tree / Sidebar,
π§ͺ Tests & Quality
- Expanded automated test suite to 243 passing unit & integration tests, including tests for
SplitDiffEngine,DisplayMapSplit, and split-mode selection navigation.
π¦ Downloads
- DMG Installer: AnyDiff.dmg
- ZIP Archive: AnyDiff-macOS.zip
AnyDiff v1.3.0
π€ ACP Agent Registry & Virtualized Agent Views
- ACP Registry Integration (
ACPRegistryService):- Direct integration with the official ACP Agent Registry to browse, discover, install, and manage certified ACP agents.
- Automatic architecture-aware binary downloader (
ACPRegistryBinaryDownloader) with progress reporting and caching. - Support for pre-packaged binary agents, local CLI tools, and npx/uvx/docker commands.
- Virtualized Session & Agent Browsing:
VirtualizedSavedSessionsListViewwith smooth 120 FPS virtualization for hundreds of past sessions.- Streaming pagination support in
AgentSessionCoordinatordelivering session items progressively. - Instant session resumption, relative timestamps, working directory badging, and search filtering.
VirtualizedAgentRegistryListViewwith category filtering, search, and one-click install/uninstall.
- Redesigned Agent Start Screen:
- Modernized card layouts with responsive hover interactions, custom command input, and contextual management.
- Dynamic brand icons and accent colors matching the selected agent preset across toolbar and panels.
π§ͺ Tests & Quality
- Expanded automated test suite to 213 passing unit & integration tests including registry parsing, caching, and downloading tests.
π¦ Downloads
- DMG Installer: AnyDiff.dmg
- ZIP Archive: AnyDiff-macOS.zip
AnyDiff v1.2.0
π Full-Text Project Search & Streaming MultiBuffer
-
High-Performance Search Engine (
ProjectSearchEngine):- Full-text search across entire repository with regex (
.*), match whole word (\b), case sensitivity (Aa), and glob include/exclude filters. - Automatic filtering of binary files (null byte scan) and files over size threshold.
- Multi-encoding fallback support (UTF-8, Latin-1 / ISO-8859).
- Full-text search across entire repository with regex (
-
Streaming Delivery & Context Clustering:
- Progressive batch streaming delivering initial search matches immediately without waiting for full directory scan.
- Intelligent context clustering with configurable padding lines merging nearby matches into single excerpts.
-
$O(1)$ lazy MultiBuffer slicing and in-memory match recalculation during live typing.
-
Native Search Bar UI & Navigation:
- AppKit/SwiftUI
ProjectSearchBarViewwith keyboard navigation:Cmd + F(find in project),Cmd + Shift + F(find with prefilled selection),Cmd + G(next match),Cmd + Shift + G(previous match),Esc(dismiss). - Search hit counter, active match pulsing, and instant match jump navigation.
- Integrated into the main macOS application menu.
- AppKit/SwiftUI
π Unicode & Internationalization
- Full international path, Cyrillic, and multi-scalar emoji selection support across virtualized editor.
π§ͺ Tests & Quality
- Expanded automated test suite to 208 passing unit & integration tests.
- Swift 6 strict concurrency modernization.
π¦ Downloads
- DMG Installer: AnyDiff.dmg
- ZIP Archive: AnyDiff-macOS.zip
AnyDiff v1.1.1
π Full Unicode, Emoji & Multi-Language Support
-
Pixel-Perfect Selection & Caret Alignment:
- Implemented exact bidirectional mapping between Swift
Charactergrapheme clusters and CoreTextUTF-16code units. - Double-clicking words and dragging selections now highlight the exact glyph boundaries on lines containing emojis, Cyrillic, CJK (Chinese, Japanese, Korean), Arabic RTL, Hindi, and mathematical symbols.
- Retained an
$O(1)$ zero-allocation fast-path for standard ASCII lines (utf8.count == count).
- Implemented exact bidirectional mapping between Swift
π International Git Path & Octal Unescaping
- Native Support for Quoted & Octal-Escaped Git Paths:
GitDiffParserandStreamingGitDiffParsernow unescape C-style octal byte sequences (\320\237...) and quoted paths generated by Git for non-ASCII or spaced filenames.- Correctly parses file headers,
---/+++, renames (rename from/rename to), and untracked file discovery (git ls-files) with Russian, Chinese, Japanese, and emoji filenames. - Fully optimized for streaming with zero intermediate string allocations.
π°οΈ Atomic WordDiff for Complex Emojis
- Grapheme-Aware Word Tokenization:
WordDiffEnginetokenizes atomicCharactergrapheme clusters rather than isolated Unicode scalars.- Complex multi-scalar emojis (ZWJ sequences
π¨βπ©βπ§βπ¦, flagsπ·πΊ, and variant selectorsπ°οΈ) stay unified as single tokens with exact UTF-16 code unit ranges.
π¬ Agent Chat Selection & Concurrency Improvements
- Unicode-Safe Chat Interactions:
- Selection ranges and word boundary expansions in
AgentChatScrollViewnow respectCharacterboundaries, preventing surrogate pair splits. - Corrected
NSLayoutManagerglyph measurement usingutf16.countfor message end-bounds.
- Selection ranges and word boundary expansions in
- Swift 6 Concurrency & CI Modernization:
- Dispatched file system change events to
@MainActorinMainWindowViewfor thread safety. - Cleaned up CoreText import attributes and updated GitHub Actions workflows to
actions/checkout@v5(Node.js 24).
- Dispatched file system change events to
- File Icons:
- Separated plain text (
.txt/doc.text.fill) from Markdown (.md/[Mβ]).
- Separated plain text (
π¦ Downloads
- DMG Installer: AnyDiff.dmg
- ZIP Archive: AnyDiff-macOS.zip
AnyDiff v1.1.0
π€ Embedded AI Agent (ACP Protocol)
- Agent Client Protocol (JSON-RPC 2.0):
- Native embedded side panel (
Cmd + Option + A) supporting full agent lifecycle over stdio JSON-RPC. - Multi-provider presets: OpenAI / Codex, Anthropic / Claude Code, Google Gemini / Antigravity CLI, and Custom ACP Agent commands.
- Offline Mock Mode for rapid UI iteration and testing without external processes.
- Native embedded side panel (
- Multimodal Image Attachments & Zoom Preview:
- Drag-and-drop or clipboard paste (
Cmd + V) of screenshots directly into prompts. - Live attachment thumbnails and full-screen zoomable modal view.
- Drag-and-drop or clipboard paste (
- Interactive Tool Call & Diff Jumps:
- Real-time expandable tool call cards for file reads, directory listings, and bash commands.
- Edited Files Card: live tracking of files modified by the agent with instant jumps to specific file diffs in the editor.
- Reasoning & State Management:
- Streaming thinking thoughts and customizable reasoning effort levels (Low / Medium / High).
- Context & token usage gauge with live capacity tracking.
- Saved chat session history drawer per workspace with thread switching, renaming, and persistence.
- Granular client-side permissions for disk writes and terminal command executions.
π¨ Rich Vector File Icons (Devicon SVGs)
- 30+ Devicon Brand Vector Icons:
- High-resolution SVG vector icons for TypeScript, React/TSX, JavaScript, Python, Rust, Go, Swift, Kotlin, Java, C++, C#, Docker, Git, SQL, Markdown, YAML, TOML, GraphQL, Shell, and more.
- Zero-dependency AppKit SVG rendering with
NSCachefor 120 FPS scrolling performance.
β‘ WordDiff & Display Engine Optimizations
- Added intra-line word diff render caching (
WordDiffRenderCache) for instant zero-copy hunk display. - Enhanced Cyrillic and international UTF-8 intra-line Myers diff highlighting.
- Expanded test suite to 176 passing tests.
π¦ Downloads
- DMG Installer: AnyDiff.dmg
- ZIP Archive: AnyDiff-macOS.zip
AnyDiff v1.0.1
Changelog
All notable changes to AnyDiff will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[1.0.1] - 2026-08-18
π Mega-Diff & 1M+ Lines Memory Optimization
- Ultra-Low Memory Footprint (~250 MB on 1M+ LOC PRs):
- Validated on Bun's mega pull request (
41.3 MB diff,2,188 files,1,029,583 lines of code). - Active memory consumption reduced to ~250 MB RSS (compared to ~2.2 GB in Zed and standard diff viewers β ~9x less RAM).
- No memory leaks or runaway growth during extreme scrolling across 1,000,000+ lines.
- Validated on Bun's mega pull request (
β‘ 64 KB SIMD Streaming Git Diff Parser
- 18x Faster Time-To-First-File (TTFF):
- Subprocess streaming through
GitStreamReaderand 64 KBChunkLineSplitterdelivers the initial UI frame in ~400 ms whilegit diffcontinues reading in the background.
- Subprocess streaming through
- 5.5x Parser Throughput:
- Vectorized contiguous byte scanning processes >950,000 diff lines/sec (>38 MB/s).
π¦ Low-Level CPU Register & Cache Line Packing
-
8-Byte Coordinate Structures:
-
MultiBufferPoint&BufferPointcompressed from 16 bytes to 8 bytes (Int32storage with@inlinableIntaccessors). - Passes in a single 64-bit ARM64 CPU register (
x0), eliminating register spilling and stack allocation during high-frequency cursor/selection operations.
-
-
Virtual Range Index Packed to 33 Bytes:
-
DisplayMap.ExcerptSliceRangecompressed from 96 bytes to 33 bytes (stride: 36 bytes) withExcerptFlags: OptionSet. - Fits inside half of a single 64-byte L1 CPU Cache Line, significantly accelerating
$O(\log N)$ binary search coordinate translations.
-
π§ Intra-Line WordDiffEngine (L1-Cache LCS & Zero Heap Allocations)
- 40 KB L1-Cache LCS Matrix:
- LCS dynamic programming matrix converted to a flat 1D stack-allocated
[UInt8]buffer (withUnsafeTemporaryAllocation). - Working memory shrunk from 323 KB to 40.4 KB (an 8x reduction), ensuring 100% data locality inside the Apple Silicon L1 Data Cache.
- LCS dynamic programming matrix converted to a flat 1D stack-allocated
- Zero-Allocation UTF-8 Pointer Tokenization:
- Replaced
Array(text)with direct contiguous UTF-8 pointer iteration (withContiguousStorageIfAvailable), eliminating heap allocations per tokenized code line.
- Replaced
ποΈ Smooth 120 FPS ProMotion Viewport Virtualization
- Virtual Line Synthesis:
- Removed flat line arrays in favor of on-demand viewport synthesis from
ExcerptSliceRangeprefix sums. - Achieved simulated 465+ FPS during rapid scrolling across 1,000,000+ line diffs with instantaneous frame times.
- Removed flat line arrays in favor of on-demand viewport synthesis from
π§ͺ Benchmarks & Tests
- Expanded automated test suite to 56 passing unit & integration tests.
- Added dedicated
MemoryPackingBenchmarkTestssuite for continuous memory layout and micro-benchmark verification.
[1.0.0] - 2026-08-16
π Initial Release
- MultiBuffer architecture for multi-file Git diffs and PR reviews.
- Native AppKit & CoreText high-performance rendering engine.
- Safe in-place editing with disk auto-save and file change tracking.
- Context folding, excerpt expansion, and sticky headers.
- GitHub Pull Request, commit, and compare URL loading.
- Inline review comments and tokenized syntax highlighting.
AnyDiff v1.0.0
AnyDiff v1.0.0 Release
- β‘οΈ Lightning fast Git & Remote Diff viewer for macOS.
- π Modern unified Open Project / Remote PR view.
- π Seamless Drag-and-Drop support anywhere across the app window.
- β±οΈ Frecency-sorted recent projects with hover deletion.
- β¨οΈ Double Cmd+O folder picker shortcut.
- π¨ Optimized SwiftUI rendering pipeline.