Replace self-referential CSS variables with explicit hex values for status tokens (--color-sync-ahead, --color-success, --color-warning) and change --color-on-status to white. This makes the theme colors deterministic (avoids circular var() references) and ensures consistent contrast.
Also increase the accent mix used for avatar backgrounds in the review center from 35% to 45% so avatars have a stronger accent tint.
Introduce semantic theme variables (e.g. --color-success, --color-danger,
--color-warning, --color-info) and a set of overlay/tint/shadow variables
(--app-hover-tint, --app-raise-tint, --app-soft-tint, --app-overlay-shadow,
--app-menu-shadow, --app-float-shadow, etc.) and use them throughout
app.css in place of many hard-coded color, background and shadow values.
This change:
- replaces literal color tokens used for badges, pills, buttons, menus,
toasts, borders and file icons with the new semantic variables
- switches several box-shadow and overlay usages to the new shadow vars
- harmonizes light-theme surface, border and scrollbar values to explicit
variables for easier maintenance
No structural or behavioral changes; this is purely a visual/theming
refactor to make future theme adjustments and dark/light parity simpler.
Add an optional optionMeta snippet to SelectMenu to render richer,
right-aligned content per option (falls back to option.meta when not
provided). Update SelectMenu markup to render optionMeta if present.
Style adjustments for .select-menu-option-meta to align items, allow
inline SVGs, and preserve spacing/coloring.
Use the new slot in CreateReviewDialog:
- supply grouped repository options (owner + name) instead of raw names
- show a branch icon for each option and a lock icon + last-updated date
in the option meta
- add helpers repositoryById and formatUpdatedAt to resolve repository
data for the meta snippet
No breaking changes: legacy option.meta still works when optionMeta is
not supplied.
Add a repository picker to the Review Center and wire it into the request
filtering logic. Introduces repositoryFilter state and a derived
repositoryOptions list (grouped by owner and carrying counts). If the
chosen repository disappears from the options, the filter is cleared
automatically.
Enhance SelectMenu to support per-option meta text and an optional
optionIcon snippet. Render options as [icon] label [meta] with updated
markup and CSS to align and style icon/label/meta. Adjust toolbar grid
and responsive CSS to make room for the new repository picker and to
tweak select popup/option styles.
Replace per-panel height constants, state, loaders and resize handlers with a single
model for all left sidebar panels. Panel sizes are now stored/read as a JSON
object under "gitlite.sidebarPanelHeights.v2" and managed via shared helpers.
Key changes and behavior:
- Introduce SIDEBAR_PANEL_ORDER, per-panel MIN/DEFAULT heights and a shared MAX/STEP.
- Single in-memory map sidebarPanelHeights with clamp/load/persist helpers.
- One pointer/keyboard resize flow: startSidebarPanelResize, onSidebarPanelResizeMove,
endSidebarPanelResize and onSidebarPanelResizeKeydown. Dragging moves the border
between the panel above (grows) and the next expanded panel below (shrinks).
The last expanded panel is flexible (1fr) and follows automatically.
- Double-click on a handle resets the above/below panels to their defaults.
- buildLeftSidebarRows now derives grid rows from the unified state; template uses
new handlers and aria attributes.
- LocalStorage remains best-effort; persistence failures are ignored as before.
Removes many duplicate functions/variables for individual panels and simplifies
the UI logic for showing/hiding resize handles and resizing behavior.
Update color token values in src/app.css. The change tweaks muted ink shades
and replaces the accent color hex, affecting primary/hero gradients and the
security-note icon color.
- Modified --color-ink-faint, --color-ink-dim, --color-ink-quiet in theme and
light theme variants.
- Replaced --color-accent (#0f8fb5 -> #0c7691) and updated its uses in
.btn-primary gradients, .cred-hero-icon gradient, and .cred-security-note svg.
Move and consolidate scrollbar styling into a single block at the end of app.css.
Remove the scattered top-level rule and the left-sidebar-specific overrides and
replace them with a unified set of rules that use ::-webkit-scrollbar pseudo-
elements and reset scrollbar-width/color to auto so WebKit styling wins.
- Set WebKit scrollbar size to 8px, rounded thumb with min-height/border and
color-mix background.
- Unify hover/active thumb colors to use --app-scrollbar-thumb and
--app-scrollbar-thumb-hover.
- Keep hidden scrollbars for .repo-tabs-scroll.
- Add a text filter with highlight and clear (Esc to clear) that narrows visible branches and auto-opens folders while filtering.
- Persist panel view state (local/remote open + collapsed folders) to localStorage under "gitlite.branchPanelView.v2" so folder open/collapse and section visibility survive reloads.
- Reveal current branch action: clears filter, expands path to current branch, scrolls it into view and briefly flashes it.
- Rework branch list rendering: unified folder/branch ids, scope-aware rows, tracking status computation (tracked/gone/local/remote-tracked), richer titles/tooltips, updated icons, and better context-menu positioning/behavior (separate showBranchMenuAt + open-from-button).
- Prevent toggling folder collapse while filtering; folder rows are implicitly open when a filter is active.
- Add slim, rounded custom scrollbars for the left sidebar in src/app.css.
No external APIs changed; behavior is additive and intended to improve branch navigation and discoverability.
Add two new sidebar components (WorktreePanel, TagsPanel) and integrate them
into the compact left navigation layout:
- Wire up imports and rendering in App.svelte, including collapse toggles and
resize handles for both panels. Persisted heights (localStorage) and keyboard
resizing are supported; heights are clamped between 80 and 420px with a 140px
default.
- Extend buildLeftSidebarRows and left-sidebar grid/template styles to include
the new panels and reduce panel-handle thickness. Add extensive CSS for the
compact accordion navigation, worktree and tags lists.
- Move tag and worktree management UI out of BranchPanel (remove tag props),
and add dedicated handlers in App.svelte for the new panels.
- Refactor worktree loading: introduce a worktreeLoadId to guard async
refreshWorktrees() calls and avoid race conditions. refreshWorktrees(path?)
now takes an optional path and updates worktree state only when the request
is still relevant.
- Small behavioral tweaks: stash panel default collapsed state changed to true
and the explorer resize-handle visibility condition adjusted.
This commit only adds the UI/UX integration and local persistence for the new
panels and their resizing/refresh behavior.
Introduce a shared dialog header style (.unified-dialog-header) in app.css and opt dialog components into the new chrome by updating their header markup. Headers now use unified-dialog-icon and unified-dialog-text elements (and import the matching Lucide icons where needed), which standardizes icon placement, title/eyebrow layout, close button styling and responsive behavior. The Command Palette layout was adjusted to include the new header and its grid rows.
The CSS is explicitly opt-in (so page/section headers remain unchanged) and includes hover/focus styles and a theme-sensitive close color variable. This commit is a UI refactor only — no API or behavior logic changes.
Remove hardcoded stroke and drop-shadow for "behind" graph segments.
This allows the lane color provided by the graph to determine the stroke.
Keep the dashed stroke pattern so "behind" status remains visually clear.
- Remove explicit stroke and filter for behind segments
- Add clarifying comment and retain dash pattern
Add support for listing and setting Azure DevOps work item states from the
integration layer. New helpers build and validate JSON-patch payloads and
expose two Tauri commands so the frontend can enumerate available states
and apply state changes. The Issue Center now loads Azure states and can
change an issue's state; dialog dismiss controls and related CSS were
consolidated and board UI feedback was simplified for clarity.
- Add Tauri commands to list and set Azure work item states.
- Load and present Azure states in Issue Center and allow state changes.
- Unify dialog dismiss attributes and refine hover/focus styling.
Introduce a shared page-header/page-heading pattern and CSS to
standardize headers across top-level sections. Components were
updated to adopt the new classes and slightly smaller icon sizing
for a more compact, consistent header appearance. This improves
visual consistency and makes future header adjustments simpler.
- Add reusable page-header styles for spacing, borders, and bg
- Standardize icon sizing and heading layout across screens
Add backend integration modules to discover, read, and modify
provider-hosted boards, issues, and comments across multiple providers.
Expose Tauri commands for board discovery, listing, and card moves,
and implement safe issue actions and comment APIs.
Wire new Svelte UI components to render boards, issue centers,
comments, labels, and assignees, and add sanitized markdown rendering.
- Add board discovery, board reading, and card-move APIs
- Add Svelte components and styles for integrated board UI
- Use marked + DOMPurify for safe markdown rendering
Introduce --color-sync-ahead and --color-sync-behind and update sync
indicators to use those variables. Replace hardcoded sync colors with
var() and color-mix() to unify backgrounds, shadows, and graph accents
across themes, and add light-theme overrides to preserve contrast.
- Add theme-level variables for ahead/behind sync colors
- Replace literal color values with var() and color-mix() usages
- Update dashboard styles to reference the new sync variables
Move the inline repository management UI into a new RepositoryDashboard component
and wire it into the application. Refactor app state to compute a reactive
dashboardRepos list and update tab-closing logic so tabs can be closed while
preserving the management view when appropriate.
- Add a full dashboard with search, categories, workspaces and persisted prefs.
- Refactor close behavior to support keeping the management view open.
- Improve UI/CSS and accessibility for the management tab (compact layout and label).
Introduce a modal dialog to configure and confirm branch merges. It
replaces the old prompt-based workflow and lets users choose a merge
strategy with localized labels. Confirming the dialog runs the merge,
refreshes views, and clears the pending merge target.
- Add a merge dialog UI with strategy options and keyboard support.
- Replace prompt-based merge flow with a state-driven confirm dialog.
- Include CSS for dialog layout, responsive sizing, and styling.
Add a modal dialog to initialize a new Git repository, replacing the
previous prompt-based flow. It integrates with the app state and invokes
the initialization operation then opens the repository on confirmation.
Also adds styles, keyboard handling, accessibility hints, a folder
browser, initial-branch input, and German/English labels with busy state.
- New dialog component with folder picker, branch input, and i18n.
- Wire dialog open/close and confirm handler to init and open actions.
- Add CSS rules for dialog layout, controls, and error/busy states.
Adjust spacing and sizing for repo tabs and close controls. Add
transitions, larger hit areas, and updated hover/focus styles. Introduce
theme-aware variants and neutral dialog close styling for consistency.
Also update help overlay close to match the new behavior.
- increase close button size and tweak padding for alignment
- add transitions and inset focus/hover visuals with themes
- normalize dialog and help close appearance for consistency
Allow pulling repositories with unrelated commit histories when the user
explicitly opts in. The pull argument construction was refactored and
branch resolution made more robust so the backend can include the
--allow-unrelated-histories flag when requested.
- Extract pull argument logic and add support for allowing unrelated histories.
- Prompt users in the UI to confirm merging separate histories and retry pull.
- Restyle and improve the update toast UI for better layout and responsiveness.
Remove local on-device model support and related IPC commands,
consolidating commit-generation to cloud providers and simplifying the
AI crate surface. Local-specific types, generation profiles, caching,
and the local prompt builder were removed while message sanitization and
diff-echo detection were preserved. Also harden repository handling and
runtime: unborn HEADs are handled gracefully so empty repos still report
files, Git LFS sync is skipped for repositories without commits, and
tokio runtime features were enabled.
- Remove local model engine, load/status commands, and local profile code
- Handle unborn HEAD and skip LFS sync for repos without commits
- Enable tokio runtime features and route AI generation to cloud only
Add GitHub repository support to integrations and update related tests.
Implement server-side GitHub API calls and normalize GitHub base URLs.
Improve the repository browser UI with compact tabs and updated icons.
Add a custom, accessible scrollbar with pointer and keyboard support.
- Add paging, auth headers, and error handling when listing GitHub repos.
- Default GitHub token username to "x-access-token" when saving credentials.
- Introduce compact repo tab styles, new icons, and a draggable scrollbar.
Update the repository loading overlay and related UI styles to use
design tokens, improve contrast, and reduce visual bulk. Sizes,
spacing, radii, and icon dimensions were tuned to create a more
compact, consistent card. Backgrounds, grid textures, and shadows
were switched to CSS variables and color-mix; subtle backdrop-filter
and opacity tweaks improve legibility across themes.
- Replace hardcoded colors with theme variables and color-mix
- Reduce component dimensions and tighten spacing for a compact UI
- Add backdrop blur, adjust grid opacity, and simplify shadows
Saving sync settings with no upstream could cause a fatal Git
error when unsetting upstream on a branch that never had tracking
information. This change guards the operation by checking for an existing
merge configuration before unsetting, making it idempotent. A test was
added to verify that clearing an unconfigured upstream is a no-op.
- Add test ensuring clearing an unconfigured upstream is a no-op
Add collapsible local and remote branch groups to the branch
visibility dialog, including toggle buttons and selection counts.
Introduce comprehensive dialog styling and responsive rules to match
the app UI. Opening the dialog now defaults to local open and remote
closed for faster access.
- Add CSS for branch-filter dialog layout, theming, and responsiveness
- Implement group toggles with chevrons and visible selected counts
- Default to local group open and remote group closed on dialog open
Introduce an appearance preference with modern, classic, and custom
modes and a persisted custom theme palette. Add helpers to load,
persist, and apply appearance and custom colors, and wire them into the
app settings lifecycle. Implement a comprehensive light theme and
appearance presets using CSS variables so custom palettes are applied
consistently across the UI, and include appearance in analytics when
settings are saved.
- Persist and apply appearance and custom color palette to :root
- Add muted light theme plus classic/modern presets and custom mapping
- Include appearance and customTheme in settings save and analytics payload
Update the dark theme tokens and UI surfaces to improve legibility
and clarify interactive boundaries across the app. Controls such as
buttons, inputs, and focus outlines were standardized and simplified
to reduce visual noise while preserving hierarchy.
- Overhaul color tokens and surface backgrounds for consistent tones
- Simplify primary button treatment and adjust focus/outline behavior
- Add targeted dark-mode rules to separate chrome (tabs, toolbars)
Adds startup clone support with a new clone request type and parsing.
It wires a CLI and IPC pathway to forward a clone to a running app.
UI and docs were updated to reflect startup clone behavior.
- Introduce StartupCloneRequest and argument parsing.
- Wire IPC to pass clone requests and clone on startup.
- UI updated to queue clone requests and trigger clone.
The changes introduce server-side commands to manage gitignore
rules and to untrack paths without deleting local files.
A new GitIgnoreKind enum and helper functions normalize targets
and build proper ignore patterns, and UI code was wired to use
these commands.
- add_to_gitignore command and related helpers
- untrack_paths command to remove paths from the index
- UI wiring to expose ignore and untrack actions in explorer
The stash push feature now supports limiting the stash to
selected files via an optional paths parameter.
The UI passes file paths to stash_push and adds a
per-file context menu for scoped stash operations.
- Extend stash API to accept optional paths for scoped stashes
- Implement per-file stash actions via a status panel context menu
- Update tests and docs to reflect scoped stash behavior
This release bumps version numbers to 2026.8.5 across all
manifests and docs and includes UI refinements. The
status panel now uses lucide folder icons for tree view
and folders, replacing the previous icons and CSS.
- Replace the tree view icon with lucide FolderTree in status panel
- Use Folder and FolderOpen icons for expanded/collapsed folders
- Bump version to 2026.8.5 in all manifests and changelog
The body:
Introduces a tree view for the status panel in addition to the
existing list view. A new toggle allows switching between modes.
It builds a hierarchical tree of folders and files from changed
paths and renders both unstaged and staged sections with
collapsible folders and indentation.
Adds responsive styling so the view switch condenses to icons on
narrow screens and includes styles for folders, chevrons, and
folder counts.
- Build and sort a tree structure from file paths.
- Render folders and files with indentation in tree view.
- Add responsive styling and a view switch for status changes.
The status panel now uses a grid-based layout with a flow divider
between unstaged and staged sections and clearer headers. Icons
were swapped to arrows for stage/unstage actions, and labels were
updated to show Working tree and Next commit for clarity.
- Replace action icons with arrows to indicate staging
- Redesign lanes and headers for a compact, responsive UI
- Add a divider and contextual labels for unstaged and staged sections
Introduce a square UI language by resetting border-radius on
controls and surfaces to create consistent square corners app-wide.
Add explicit exceptions to preserve circular markers and keep
branch-flag shapes so avatars, dots, and graph connections remain
recognizable. Remove a few unnecessary !important modifiers to
simplify overrides.
- Reset border-radius globally for elements and pseudo-elements.
- Preserve circular avatars, graph dots, and similar markers.
- Keep curved branch flag shapes and targeted corner rules.
Increase the compact reference overflow to 20px and slightly raise its
mono font to improve legibility and vertical alignment. Add explicit
square sizing and an aspect-ratio for the repo tab close control so
its icon and layout remain consistent across breakpoints and overrides.
Use !important on the size rules to ensure they take precedence.
- bump .compact-ref-overflow height and font-size for alignment
- add fixed sizing and aspect-ratio for repo tab close button
Add a context-menu action to delete all branches in a folder at once.
Top-level remote folders are protected and the currently checked-out branch
is preserved. The BranchPanel API now includes folder depth to prevent
accidental bulk-deletes and summarizes individual failures after processing.
UI polish and localization were applied, and the package/version metadata,
changelog, and help overlay were updated for the 2026.8.4 release.
- Bulk delete with top-level remote protection and failure summaries.
- BranchPanel now tracks folder depth and disables unsafe context menus.
- Version bump, changelog/help overlay updates, and UI/localization tweaks.
Add German labels to compare select options and refine styles.
Group names and the current marker are localized for German.
Style tweaks adjust spacing, weights, and muted colors for better
readability and visual consistency.
- Localize option groups and current marker to German.
- Refine dialog typography, spacing, and muted color tokens.
Improve sizing and interaction of the repository tab close button. The
control now has a consistent 24px circular hit area. Hover and
focus-visible states use a subtle accent color for clarity. Icon size
is reduced to better center the glyph inside the control.
- Make the close button a 24px circular, grid-centered element.
- Add focus-visible and hover color with a subtle accent background.
- Reduce the close icon to 11px to improve visual balance.
Pass the application language into compare dialogs and add German
translations so titles, buttons and helper text render appropriately.
Refactor dialog markup to introduce a compact header with a GitCompare
icon, show changed-file counts, and surface contextual help and warnings.
Adjust and extend CSS for spacing, layout and responsive behavior.
- Pass app language into compare components and derive isGerman flag
- Replace icons and restructure headers; add counts, help and warnings
- Update styles for sizing, spacing, responsive rules and new classes
Introduce a reusable SelectMenu component and replace native select
controls across the UI. This centralizes select behavior and styling,
enabling grouped options, placeholders, and a consistent popup
interaction. Add comprehensive CSS and light-theme tweaks, and update
rebase action styling to integrate the new control.
- Add a unified SelectMenu component and wire change handlers.
- Implement .select-menu styles, popup behavior, and theme overrides.
- Replace ad-hoc native selects in dialogs and rebase UI for consistency.
This update enhances the context menu for branches and tags by
ensuring it fits within the viewport, preventing overflow and
improving usability. Additionally, the styling of the branch
context menu has been adjusted for better visibility and
interaction.
- Added dynamic positioning for context menus to avoid overflow
- Updated CSS for branch context menu to improve layout and usability
- Simplified context menu opening logic for better performance
Removes the rounded corners on the commit-body by setting border-radius to 0.
This makes the component use a flat edge and aligns with the design system.
- Remove dependency on ui radius variable for commit-body
This change adds Git notes support to the history UI.
Commits now carry a has_note flag which triggers a note indicator.
Notes can be previewed on hover and loaded on demand,
then the history can be refreshed after edits.
- Adds has_note support on commits and parses from logs.
- Renders a note indicator in history rows with a hover preview.
- Triggers history refresh after note-related actions.
The changes simplify how branch status is shown in HistoryPanel.
The remoteName helper and the check icon were removed.
Status is composed inline with the label for local and remote branches.
CSS tweaks wrap content and adjust widths for better responsiveness.
- Remove remoteName helper and Check icon from HistoryPanel
- Inline status text for local/remote branches and avoid icons
- Improve graph layout: wrap refs and constrain widths on hover
This release adds upstream tracking for branches and a local-only
indicator in the UI.
The Git integration now exposes upstreams and supports publish flows.
This enables publishing and remote-tracking configuration.
- Introduces upstream tracking and local-only branch UI markers
- Updates toolbar to reflect publish-local state and status indicators
- Bumps version to 2026.8.3 and updates changelog
Adds a new command to rename remote branches and update tracking refs.
Renaming remote refs is performed atomically using a single push.
The push creates the new remote ref and deletes the old if it succeeds.
The frontend now invokes remote-rename when needed and shows labels.
- Atomic remote rename via push with create/ref and delete
- Frontend supports remote branch renames from the branch panel
- Compare UI now shows labels for remote refs in results
Refines history panel visuals and layout, including min width handling.
Removes the old branch visibility select in favor of a dialog button.
It also adds a graph connector to show primary branches.
Adds branch chips, icons, and hover effects to commits for clarity.
- History panel visuals and min width updated to improve layout.
- Removed branch visibility select; added dialog to customize branches.
- Branch chips and graph connectors enhanced with icons and hover effects.
Adds branch visibility modes to the history panel and remote branches.
A data model supports commits and refs including local and remote.
UI tweaks add compact ref chips and a new details panel.
- Implement focus/local/all/custom modes for branch visibility
- Introduce CommitBranchDecoration and CommitRefSummary types
- Wire remote branches and ahead/behind data to UI
Adds a new external tools subsystem to detect and launch
diff and editor tools across Windows, macOS, and Linux.
It exposes data models for tools, commands, and results to the UI
and serializes them for consumption by the app.
- Implement cross-platform discovery of editors and diff tools
- Expose serialized results to the UI for user selection
- Centralize per-OS known tool lists and overrides
Introduce a global command palette for quick access to common repository
actions, branches, files, and commits. Wire it into the main shell so it
can open settings, help, and other dialogs while keeping keyboard access
consistent.
Also add commit selection state to the history view so the active commit
is highlighted and brought into view when chosen from either the palette
or the history panel.