# Changelog All notable user-facing changes to Gitty are documented in this file. The project uses calendar-style versions in the form `YYYY.M.PATCH`. ## [2026.8.5] - 2026-08-17 ### Added - Integrated Git LFS management now detects the available extension and the repository setup, shows tracked patterns and checkout objects, and provides actions for local activation, tracking and untracking patterns, downloading objects, and pruning the local cache. Desktop installers bundle Git LFS, while Arch packages declare it as a dependency. - The Changes panel now offers a List/Tree switch. Tree view groups staged and unstaged files into independently collapsible folders while retaining all existing file actions. - Gitty can open a repository directly at startup through the `--repo PATH` or `--repo=PATH` command-line argument. ### Changed - A successful Git pull now detects repositories that use LFS and downloads the required LFS objects automatically with the same remote and credentials. - Unstaged and staged changes use an equal-width side-by-side layout with independent scrolling, directional stage/unstage actions, and a responsive vertical fallback. The List/Tree switch is centered above both areas. - Controls and surfaces use a more consistent square visual language while circular status markers, avatars, and branch shapes remain recognizable. - The built-in German and English help now includes Git LFS setup, tracking, troubleshooting, and everyday workflow guidance. ## [2026.8.4] - 2026-08-15 ### Added - Branch folders now have a context-menu action for deleting all contained local or remote branches at once. The top-level remote folder such as `origin` is protected, while its nested folders remain manageable. The currently checked-out branch is kept, and individual failures are reported after the remaining branches have been processed. ### Changed - The Compare selector is fully localized in German and uses the same visual language as the external-tool selectors for its fields, groups, typography, and dialog surfaces. - Repository-tab close buttons are square and have clearer spacing, hover behavior, and keyboard-focus feedback. ## [2026.8.3] - 2026-08-13 ### Added - Configurable external tools for editors, diff viewers, merge tools, terminals, and file managers, including automatic cross-platform discovery and presets for VS Code, JetBrains IDEs, Beyond Compare, and other common applications. - Repository and file actions for opening content in the configured external application. Supported tools open in a separate window. - A choice between Gitty's internal diff/merge views and the configured external applications. - Git Notes support for attaching editable notes to commits without rewriting commit history, including fetch and push synchronization. - A command palette for quickly opening repository actions, files, and commits. - Complete branch-to-branch comparisons for local and remote branches. The comparison dialog shows every changed file and its side-by-side diff. - Safe remote branch renaming from the branch context menu. ### Changed - Redesigned the settings window with tool categories, detected applications, preset dropdowns, and clearer explanations of where each tool is used. - Redesigned the history graph's branch presentation with compact labels, hover details, cleaner flag connectors, and branch visibility controls. - Reduced the minimum width of the commit history panel so the workspace can be resized more freely. - Local-only branches are now identified consistently in the toolbar, repository summary, status bar, and commit graph. Their first push is labeled Publish and configures the remote tracking branch automatically. - Git operations now run asynchronously to keep the application responsive during slower repository commands. ### Fixed - Closing supported external tools no longer reports their documented comparison result codes as application errors. - External tools that otherwise reuse an existing process are explicitly opened in a new window where supported. - Remote branch renaming uses an atomic push with lease checks, preventing an existing destination branch or a newly changed remote branch from being overwritten. ## [2026.8.2] - 2026-08-10 ### Changed - History graph colors remain stable across parent lanes, making longer and branching histories easier to follow. - Release artifacts are published to the matching Gitea release automatically without creating duplicate assets. - Application shutdown now completes telemetry cleanup more reliably. ## [2026.8.1] - 2026-08-04 ### Added - Paginated commit history that loads older commits on demand instead of limiting the visible repository history to the initial page. - A dedicated file-history dialog opened from the explorer context menu. - Windows and Ubuntu release publishing plus improved AUR packaging workflows. ### Changed - File history moved out of the permanent workspace panel into a focused, larger dialog. - Dialogs close more consistently with the Escape key. - Arch Linux installation documentation now uses the `gitty-desktop` AUR package. ### Fixed - AUR SSH setup, package installation timeouts, and clone/push retries are more robust in the release workflow. ## [2026.07.22] - 2026-07-22 ### Added - AI-assisted commit splitting for staged changes: - analyze the staged diff and propose an ordered set of logical commits; - generate an editable Conventional Commit message for every group; - move files between proposed commits before applying the plan; - create all accepted commits sequentially with **Commit all**. - Support for commit-splitting suggestions through OpenAI, Anthropic, and custom OpenAI-compatible endpoints. ### Changed - The commit-splitting dialog now explains why a plan cannot be applied and clearly marks AI-generated commit messages as editable. - Safety checks prevent applying a stale plan after the staged files change and reject files that contain both staged and unstaged changes. ### Fixed - **Commit all** now passes a plain state snapshot to the commit workflow instead of failing silently when cloning a reactive UI proxy. - Closing the active repository tab no longer allows an in-flight status or fetch response to reopen and reactivate the closed repository. ## [2026.07.21] - 2026-07-21 ### Added - Full Git worktree management: - create a worktree from an existing branch; - create a new branch and worktree together; - create a detached worktree at a commit; - open a worktree as a repository tab; - move, lock, unlock, repair, remove, and prune worktrees. - A dedicated **Worktrees** entry below **Tags** in the branch panel. - An **Open in new worktree** action in the local branch context menu. - Line-level patch selection with Shift-click range selection. - Stage, unstage, and discard actions for selected lines while retaining the existing whole-file and whole-hunk workflows. - Arch Linux package automation that builds from `PKGBUILD`, publishes the `.pkg.tar.zst` artifact, and updates the Pacman repository database on the CDN. - Detailed German and English help for worktrees, line-level staging, Pacman installation, and release changes. ### Changed - Branch deletion now uses a clearer confirmation dialog with more explicit branch and upstream information. - Dialog backdrops blur the application instead of covering it with a nearly black background. - Remote operations and authentication errors provide more actionable feedback. - Build diagnostics and resource handling for the Arch package pipeline are more robust. ### Infrastructure - Added centralized error notifications. - Added structured, privacy-conscious telemetry. - Stabilized the Arch Linux container build and `makepkg` workflow. ## [2026.7.20] - 2026-07-13 ### Added - AI-assisted review of staged changes before committing. - Optional automatic repository refresh. - Comprehensive German Git documentation in the built-in help. - Initial `PKGBUILD` and automated package version synchronization. ### Changed - Redesigned the repository action toolbar and workspace status presentation. - Improved repository tabs, diff styling, spacing, and panel structure. - Improved file-history state handling. [2026.07.22]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.7.22 [2026.07.21]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.7.21 [2026.7.20]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.7.20 [2026.8.5]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.8.5 [2026.8.4]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.8.4 [2026.8.3]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.8.3 [2026.8.2]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.8.2 [2026.8.1]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.8.1