Generalize the repository grouping logic so grouping is driven by a single
derived flag and not tied to a single provider. Replace the Azure-specific
group variable with a generic repositoryGroups value and use a shared
usesRepositoryGroups switch so grouping can be enabled for other providers.
- Add usesRepositoryGroups derived flag to centralize grouping logic
- Replace azure-only grouping with repositoryGroups and enable Gitea grouping
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.
Add a lightweight workspace preferences helper to store optional UI
settings in localStorage and integrate it with the issues views so
filters, queries, and view mode are restored per source. The
integration board now remembers repository and query filters, and the
Issue Center restores state filters and view mode across sessions.
Also disable drag and drop for the main Tauri window to avoid accidental
file drops.
- Add read/write helpers for workspace preferences in localStorage
- Persist and restore filters, queries, and view mode for issue views
- Disable window drag-and-drop to prevent accidental file drops
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
Refactor the integration board UI to improve board discovery, loading,
and the card detail experience. Introduce a compact assignee mode and
apply it in list views to save horizontal space, and make several
accessibility and labeling improvements for board links and authors.
- Add a compact prop for assignee rendering and use it across lists.
- Improve board URL handling and add Azure DevOps board label parsing.
- Replace the old inspector with a focused detail drawer and sidebar.
Replace the legacy repository tab bar with a compact workspace
navigation that groups primary views and exposes a dedicated
"Repositories" action. The repository list is shown only when the
repository view is active and supports per-repo selection and closing.
Also add a Repositories open handler in the app to select the active
repo or prompt to choose a repository folder when none is available.
- Introduce top-level navigation (Dashboard, PRs, Issues, Repositories)
- Add onOpenRepositories hook and app logic to select or choose repo
- Update icons, styles, and accessibility attributes for the nav
Add client-side wrappers for creating integration review requests and
for listing repository branches, and wire native command imports so the
app can call those integration endpoints. Update the review center UI to
include a create-review dialog import and refine table and provider
button layout for improved spacing and readability.
- Add wrappers for create review requests and branch listing
- Wire native integration imports and prepare the create-review dialog
- Adjust table sizing and provider button layout for better spacing
Adjust CSS to make the review center more robust at mid and narrow
viewports. This increases several min-width thresholds, tweaks grid
column sizing and padding, and refines toolbar/button sizing to avoid
content wrapping and truncated actions. The result keeps lists and
controls visible and aligned across a wider range of window sizes.
- Raise table/group min-widths and adjust column widths to prevent wrap
- Increase provider button min-width and disable shrinking for clarity
Add a backend command to enumerate a repository's branches and default
branch for configured integrations, and expose it to the UI. The create
review dialog now fetches branches, shows loading and error states, and
uses searchable SelectMenu controls for repositories and branches. If a
local repository path is available the dialog will try to match remotes
and preselect a local branch that exists on the remote to streamline
review creation.
- Add integration branch listing command and wire it into the dialog
- Replace plain selects with searchable SelectMenu and improved UX
- Attempt to detect and suggest a matching local source branch when possible
Add a new Tauri command and front-end flow to create PRs/MRs.
The backend builds and validates provider-specific payloads and
endpoints, sends creation requests, and parses responses into the
app's review model. A Svelte dialog and a JS wrapper wire the UI to the
command so users can create requests from the Review Center.
- Implement provider payload and endpoint logic with unit tests
- Expose create_integration_review_request as a Tauri command
- Add CreateReviewDialog UI and integrate a creation button in Review Center
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
Move pull-request discovery and caching into a dedicated background
loader component. The repository dashboard no longer performs the
network/keychain work itself and instead receives a shared badge state
that is refreshed and persisted independently. The app wires the loader
into top-level state and binds badge data into the dashboard view.
- Add a background loader to fetch, group and cache open PR counts.
- Simplify dashboard to accept and render pull-request badge state.
- Wire loader into app-level state and bind badges to the dashboard.
Revamp the line patch dialog to improve usability and clarity.
Improve accessibility and German/English localization for UI text.
Add toolbar, hunk navigation, per-line checkbox selection and footer.
Extract merge-in-progress UI into a reusable merge progress notice.
- Replace selection UI with checkboxes, range selection, and counts
- Add hunk navigation, active-hunk tracking, and scroll synchronization
- Extract merge-in-progress UI into a reusable notice component
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
Add a view switcher to the repository dashboard so users can
toggle between compact list and tile (cards) layouts. The
choice is saved to localStorage so preferences persist
across sessions. Also adjust card layout, sync/branch indicators and
accessibility attributes, and refactor pullRequestTitle to accept
badge state directly for more accurate aria labels.
- Persist viewMode with STORAGE_KEY and add setViewMode helper.
- Add view toggle UI with ARIA states and new icons.
- Introduce list/table and tiles CSS and refine status display.
Refactor the Review Center component to improve layout, accessibility,
and user flow. Add a SelectMenu integration picker and reorganize state
tabs and search into a cleaner toolbar. Bind the detail panel, close it
on outside pointer events, and introduce richer merge/conflict UI with a
local-resolution flow plus comment formatting helpers and action tweaks.
- Add SelectMenu for integration selection and cleaner toolbar layout
- Bind detail panel, handle outside-click closing, and focus helpers
- Improve conflict/merge presentation and action menu behaviors
Coordinate local conflict resolutions with automated push and provider-
side merge status checks. When a local resolution completes the app
advances the merge workflow, pushes the updated branch, and attempts to
continue the merge. The UI shows a checking state and disables relevant
actions while the provider rechecks to prevent duplicate operations.
This streamlines finishing conflict resolution and keeps PR status in
sync with remote providers.
- Automatically push and continue merge when local resolutions finish
- Poll provider for updated mergeability and refresh request details
- Add guards to disable UI actions while waiting for remote status
Add a local conflict resolution workflow that allows resolving PR
merge conflicts from the review center. The change implements host and
repository matching, prepares and merges branches locally, opens the
resolve editor, and tracks a multi-phase state machine to continue,
abort, or push the resolved branch back to the remote.
- Core resolution logic to locate matching repos, prepare merges,
and manage phases (preparing → conflicts → ready-to-push → complete).
- UI wiring and callbacks to start, reopen, continue, abort, and push
local resolutions from the review center.
- Helpers to open the conflict editor, monitor merge state, and mark
completion after a successful push.
Add pull request badges to the repository dashboard and enable deep-
linking to the Review Center with a repository and source pre-filter.
Badges are populated by resolving remotes, matching them to configured
integration sources, and querying providers for open PRs while handling
loading, error, and unavailable states. The dashboard badge opens the
Review Center pre-filled and the app stores initial query/source values
to support the deep-link.
- Resolve and normalize remotes to match integration sources reliably.
- Query provider APIs using stored credentials with sensible timeouts.
- Expose a badge action that navigates to the Review Center pre-filtered.
Add a cross-provider Review Center and improve credential handling.
Backend integrations fetch and normalize PRs from GitHub, GitLab,
Gitea, and Azure DevOps with improved timeouts and parsing. Credentials
now use a global lock and support secret-tool on Linux to avoid races.
- Normalize review data across providers (GitHub/GitLab/Gitea/Azure)
- Serialize credential access with OnceLock and use secret-tool on Linux
- Add frontend ReviewCenter component and related UI updates
Restructure the bisect dialog to group the search range and make the
known-good and known-bad fields more distinct and informative. The UI
and CSS were overhauled to improve spacing, sizing, color cues and
responsiveness for clearer interaction and readability.
- Introduce a labeled search-range block with dedicated good/bad fields
- Add icons, compact tags and adjusted placeholders for clarity
- Replace and simplify styles to improve layout and mobile behavior
Add interactive Git bisect support to the Tauri backend and UI.
Introduce BisectState and BisectCommit types for structured state.
Expose Tauri commands to query, start, mark, and reset sessions.
Add parsers, unit tests, and a Bisect dialog with toolbar and App wiring.
- Backend: new Tauri commands, state types, and helpers to parse bisect.
- Frontend: Bisect dialog, toolbar entry, and App integration to control flow.
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.
Add advanced clone options support across the frontend and backend.
Users can specify a branch, shallow limits, blobless mode, sparse paths,
and custom clone flags when initiating a clone operation. The backend
validates inputs, parses custom flags without invoking a shell, and
configures sparse checkouts after a successful clone. A small parsing
dependency was added and tracked-file parsing was improved to better
handle git ls-files output.
- Introduce CloneRunOptions and validation helpers for clone inputs
- Parse custom flags with a shell-like tokenizer and block managed flags
- Support sparse checkout configuration and shallow clone constraints