Files
GitLite/CHANGELOG.md
T
Christoph 8bac03e3fc feat(status): localize selection count and stage/unstage buttons
Replace hard-coded "X selected" and "Stage/Unstage X" labels in the status panel
with i18n lookups. Adds three message keys with English and German texts:
- status.selectionCount
- status.stageCount
- status.unstageCount

StatusPanel.svelte now uses t(...) with the count for the selection badge and the
stage/unstage action buttons. CHANGELOG.md was also updated (Unreleased and
recent release entries).
2026-09-22 18:50:24 +02:00

475 lines
18 KiB
Markdown

# 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`.
## [Unreleased]
### Added
- Ctrl/Cmd + 1 to 4 switch between Dashboard, Repositories, Pull Requests,
and Issues & Boards.
- Ctrl/Cmd + A selects every file in the focused status lane; Esc clears the
selection again.
- Issues can be assigned to people, and labels are managed directly from the
Issue Center.
### Changed
- The description field of the Create Issue dialog uses the full comment
editor instead of a plain text area.
- The help center no longer carries a "What's new" section. Release notes are
maintained in this file.
### Fixed
- Long file paths no longer displace the header controls of the file history
dialog.
## [2026.9.8] - 2026-09-18
### Added
- Submodule management: submodules are listed, initialized, updated, and
cloned recursively, including authentication and checkout of a specific
submodule revision.
- Worktrees and tags are available as collapsible panels in the left sidebar,
and a section menu toggles which panels are shown.
- Individual lines can be restored from a historical commit instead of
restoring the whole file.
- The branch panel supports filtering, remembers its view state, and groups
branches with their own accent color.
- Pull request merges offer a merge-method selection with provider-specific
payloads and can delete the source branch automatically.
- The Review Center filters by repository, and select menus show repository
details next to each option.
### Changed
- File history marks the entry that is identical to the working tree.
- Confirmation dialogs are centralized, translated, and can carry inputs,
checkboxes, and multi-selection actions.
- Left sidebar panels share one sizing and resize implementation, and global
scrollbar styles were consolidated.
- Status colors, overlay tints, and theme tokens for ink and accent moved to
CSS variables.
### Fixed
- The repository selector in the tab bar shows a pointer cursor.
## [2026.9.7] - 2026-09-11
### Added
- Pull request drafts can be generated with AI; all AI settings live on one
page.
- The commit history resolves visible parents, which keeps the graph correct
when commits are filtered.
### Changed
- Dialogs share unified header chrome.
- Provider icons were restyled and share one implementation.
### Fixed
- Switching to the Management view no longer opens a repository on its own.
## [2026.9.6] - 2026-09-11
### Added
- Workspaces group repositories into sessions that can be saved, switched,
and managed; their UI filters persist.
- Repository tabs can be reordered by drag and drop.
- Issues can be created from the app, including Azure DevOps work items with
state management.
- Gitea repositories are grouped in the Clone dialog like the other
providers.
### Changed
- Undoing the last commit uses a soft reset, so the changes stay staged.
- Behind segments in the commit graph use the lane color supplied by the
graph.
## [2026.9.5] - 2026-09-09
### Changed
- All main views share one page-header layout.
- The integration board view was refined, and assignees are displayed more
compactly.
## [2026.9.4] - 2026-09-08
### Added
- Boards and issues from multiple providers, including moving cards between
columns.
- Pull requests can be created from the app; the dialog loads the repository
branches and suggests the current local branch.
- Repository tabs became a workspace navigation bar.
- Pull request status is loaded separately and surfaced as badges.
### Changed
- The Review Center table and toolbar adapt to narrow windows.
## [2026.9.3] - 2026-09-08
### Added
- The dashboard offers a list and a card view, and remembers the choice.
- A notice shows the progress of a running merge.
### Changed
- The line patch dialog was redesigned.
- Sync colors are defined once as CSS variables.
## [2026.9.2] - 2026-09-07
### Added
- Guided Git bisect with a dedicated dialog for the commit range.
- The Review Center loads pull requests from the configured integrations,
with a detail panel, actions, and search.
- Conflicts from a pull request merge can be resolved locally; the merge
continues automatically and the provider is polled after the push.
- The dashboard shows pull request badges and links into the Review Center.
### Changed
- Repository management moved into its own dashboard component.
- Credentials use the Linux keyring.
## [2026.9.1] - 2026-09-01
### Added
- A dialog for initializing a repository.
- A Merge Branch dialog with a confirmation step.
- Advanced clone options: shallow, sparse, blobless, and custom flags.
## [2026.8.10] - 2026-08-31
### Changed
- The Clone dialog was redesigned and groups Azure DevOps repositories by
project.
- Tab and dialog close buttons were visually refined.
### Fixed
- The Clone dialog no longer breaks its layout or scrolling on small windows.
- The loading overlay accounts for the repository tab bar.
## [2026.8.9] - 2026-08-30
### Added
- Pulling histories without a common ancestor is possible as an explicit
opt-in.
### Changed
- The AI commit flow was simplified; local models are no longer supported.
## [2026.8.8] - 2026-08-29
### Added
- Git hosting integrations for GitHub, GitLab.com, GitLab Self-Managed,
Azure DevOps, and Gitea. Personal access tokens are stored separately in
the operating system keychain.
- Azure DevOps supports multiple independently configurable organizations,
each with its own display name, organization URL, username, and token.
- The Clone dialog has an Integrations tab that loads all repositories
available to the selected account, supports filtering and refresh, sorts
repositories alphabetically, and clones the selected repository directly
with its stored credentials.
### Changed
- Repository tabs use a more compact Git-client-style bar. Close buttons
remain visible and turn red only while hovered.
- The integration repository list uses a narrow custom scrollbar that grows
only slightly on hover and no longer covers repository names or metadata.
- Repository loading and status overlays use theme-aware design tokens with
improved contrast and a more compact presentation.
### Fixed
- Clearing sync settings on a branch that never had an upstream is now a safe
no-op instead of failing with a fatal Git error.
## [2026.8.7] - 2026-08-23
### Added
- Appearance settings now offer Modern, Classic, and Custom styles. Custom
themes can define their own persisted color palette, while a complete light
theme is available alongside the refreshed dark appearance.
- The branch visibility dialog groups local and remote branches into
collapsible sections with selected-branch counts. Local branches open by
default, while the remote group starts collapsed for quicker navigation.
### Changed
- Dark-theme colors, surfaces, controls, and focus outlines have been refined
for clearer interactive boundaries and more consistent contrast throughout
the application.
- The branch visibility dialog follows the responsive layout and visual
language of the rest of Gitty more closely.
## [2026.8.6] - 2026-08-18
### Changed
- Activating LFS or adding a tracking pattern now ensures that a root
`.gitattributes` file is not hidden by Git ignore rules. When necessary,
Gitty adds the scoped `!/.gitattributes` exception to `.gitignore`.
- The standard Tauri development launcher now removes an injected non-routing
`127.0.0.1:9` proxy and blocking SSH placeholder from the debug child
process, while preserving real user and company proxy settings.
### Fixed
- Root `.gitattributes` LFS patterns remain visible while the file is
untracked or ignored, instead of disappearing from the LFS dialog.
- Git LFS pushes rejected with HTTP 413 are retried once with a command-scoped
HTTP/1.1 override, which works around Azure DevOps' large HTTP/2 upload
behavior without changing repository or global Git settings.
- LFS and other generic push failures no longer trigger the unrelated
Pull/Push retry flow intended only for non-fast-forward rejections.
## [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.
- Files and folders in the Changes panel now have context-menu actions for
staging or unstaging their scope and for creating a stash containing only
the selected file or folder. New and untracked items can also be added to
the repository `.gitignore` from Changes or the File Explorer as an exact
file, a complete folder, or an extension-wide pattern. Folder rules are only
offered for folder selections. Tracked files and folders can be removed from
the Git index without deleting their working-tree contents.
- Gitty can open a repository directly at startup through the `--repo PATH` or
`--repo=PATH` command-line argument.
- The executable can clone and immediately open a repository with
`clone REMOTE TARGET`, `--clone REMOTE TARGET`, or `--clone=REMOTE TARGET`.
Relative targets use the caller's working directory, and requests are also
forwarded to an already-running Gitty instance.
### Changed
- Successful clones and pulls now detect repositories that use LFS and
download the required LFS objects automatically with the same remote and
credentials. Fresh clones also activate LFS locally before they are opened.
- 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.
- File and folder context menus now separate the selected name from its parent
path, show the affected file count, and present stage, unstage, and stash
actions with clearer icons and descriptions.
- 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.8]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.8.8
[2026.8.7]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.8.7
[2026.8.6]: https://git.cbsk-tech.de/Christoph/GitLite/releases/tag/2026.8.6
[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