Commit Graph
412 Commits
Author SHA1 Message Date
Christoph 0539020545 feat(integrations): add multi-provider board and issue integrations
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
2026-09-08 21:19:54 +02:00
Christoph 80c7cf7280 Merge branch 'main' of https://git.cbsk-tech.de/Christoph/GitLite 2026-09-08 10:04:32 +02:00
Christoph 1b2460761f feat(dashboard): extract PR status loader and surface badges
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.
2026-09-08 10:04:20 +02:00
Christoph 9e373e77d1 Update version to 2026.9.3 2026-09-08 08:35:00 +02:00
Christoph e7d6a6e4f4 feat(ui): revamp line patch dialog and add merge progress notice
publish / Build and publish Ubuntu AppImage (release) Successful in 8m58s
publish / Build and publish Windows installer (release) Successful in 10m28s
publish / Build and publish AUR packages (release) Successful in 18m56s
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
2026.9.3
2026-09-08 08:32:58 +02:00
Christoph 5aa9d291b6 refactor(ui): centralize sync colors into CSS variables
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
2026-09-08 07:45:20 +02:00
Christoph 82a5f16a0c feat(dashboard): add list and card views with persistent toggle
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.
2026-09-07 22:58:36 +02:00
Christoph daa3298c44 Update version to 2026.9.2 2026-09-07 22:09:14 +02:00
Christoph 71a97b20bb Merge pull request 'Review center' (#37) from review-center into main
publish / Build and publish Windows installer (release) Successful in 8m15s
publish / Build and publish Ubuntu AppImage (release) Successful in 9m45s
publish / Build and publish AUR packages (release) Successful in 19m49s
Reviewed-on: #37
2026.9.2
2026-09-07 19:44:17 +00:00
Christoph 97b5db3031 Merge remote-tracking branch 'origin/main' into review-center
# Conflicts:
#	README.md
2026-09-07 21:43:57 +02:00
Christoph f607c6b5cf feat(review-center): enhance detail panel, actions, and search
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
2026-09-07 21:42:39 +02:00
Christoph 13660c801e feat(review): auto-continue merge and poll provider after push
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
2026-09-07 18:54:06 +02:00
Christoph c46a875a91 feat(review-center): add local pull-request conflict resolution flow
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.
2026-09-07 17:33:54 +02:00
Christoph 25d9d28764 Update README.md 2026-09-07 14:42:22 +00:00
Christoph da53ba3c0e Merge pull request 'Review center' (#35) from review-center into main 2026-09-07 14:40:38 +00:00
Christoph 20bc53ebbb Merge pull request 'Delete directory '.claude'' (#34) from test into main 2026-09-07 14:29:12 +00:00
Christoph c6553218a2 feat(dashboard): show PR badges and deep-link to Review Center
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.
2026-09-07 16:19:26 +02:00
Christoph 26f09a3350 Delete directory '.claude' 2026-09-07 14:12:17 +00:00
Christoph a55a3ca300 feat(integrations): add review fetching and Linux keyring support
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
2026-09-06 22:53:44 +02:00
Christoph 865ea410ea Merge pull request 'Update README.md' (#33) from test into main 2026-09-06 20:51:12 +00:00
Christoph 96d8ec739f Update README.md 2026-09-06 20:12:24 +00:00
Christoph 2b43fb18ac Merge pull request 'Update README.md' (#32) from test into main 2026-09-06 20:09:46 +00:00
Christoph 5c0c47b5c5 Update README.md 2026-09-06 19:32:59 +00:00
Christoph ebb5a5fa48 Merge pull request 'Bisect' (#31) from bisect into main
Reviewed-on: #31
2026-09-06 18:19:09 +00:00
Christoph 2ec493e91f feat(bisect-dialog): revamp commit range inputs and styling
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
2026-09-06 00:09:23 +02:00
Christoph 7f2b04a506 feat(bisect): add guided Git bisect support
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.
2026-09-06 00:04:42 +02:00
Christoph 3ceedca0ad Merge pull request 'feat(management): extract repository management into dashboard component' (#29) from new_dashboard into main
Reviewed-on: #29
2026-09-05 21:53:31 +00:00
Christoph fcd884ee0b feat(management): extract repository management into dashboard component
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).
2026-09-05 23:45:23 +02:00
Christoph 4a4a13dcf8 Update version to 2026.9.1 2026-09-02 08:05:42 +02:00
Christoph 106cc98afb feat(branches): add Merge Branch dialog and confirm flow
publish / Build and publish Ubuntu AppImage (release) Successful in 9m52s
publish / Build and publish Windows installer (release) Successful in 11m10s
publish / Build and publish AUR packages (release) Successful in 19m3s
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.
2026.9.1
2026-09-01 22:27:59 +02:00
Christoph add98f962e feat(ui): add init repository dialog
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.
2026-09-01 21:13:46 +02:00
Christoph 90df347e4a feat(git): add advanced clone options (shallow, sparse, flags)
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
2026-08-31 19:43:30 +02:00
Christoph 4c58b14691 Update version to 2026.8.10 2026-08-31 11:16:56 +02:00
Christoph 8bec7dfc9a style(ui): refine tab and dialog close button visuals
publish / Build and publish Ubuntu AppImage (release) Successful in 9m31s
publish / Build and publish Windows installer (release) Successful in 10m28s
publish / Build and publish AUR packages (release) Successful in 19m9s
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
2026.8.10
2026-08-31 11:14:56 +02:00
Christoph 7950edb145 fix(clone-dialog): improve layout and scrolling
Adjust grid templates and overflow rules to improve layout.
Replace fixed heights with flexible rows so content fills space.
Hide overflow and tweak alignment to avoid double scrollbars.

- Use grid-template-rows to allocate header, controls, and list area
- Make repository list shell and list use height: 100% and overflow:auto
- Align URL field to the top to prevent unexpected scrolling
2026-08-31 10:25:07 +02:00
Christoph e3af6653cd fix(layout): account for repo tab bar in loading overlay
Adjust the fixed loading overlay to avoid overlapping the repo tab bar.
The top offset now adds the app titlebar and repo tabbar heights using
CSS calc with reasonable fallbacks. This keeps the overlay aligned with
top UI elements when a repository tab bar is present.

- Offset top by titlebar plus repo tabbar heights via CSS calc.
- Provide sensible fallback values to maintain stable layout.
2026-08-31 10:10:00 +02:00
Christoph b752c0804b style(repo-loading-overlay): adjust overlay position and backdrop
Remove the extra vertical offset so the loading overlay aligns with the
app titlebar. Update the backdrop color mix and increase blur to improve
contrast and perceived depth while the overlay is visible.

- Align overlay using the titlebar height variable instead of adding a
  fixed offset
- Use a denser color mix and stronger blur for a clearer backdrop effect
2026-08-31 09:05:10 +02:00
Christoph 8f98e79df9 feat(clone-dialog): redesign UI and group Azure DevOps repos
Rework CloneRepositoryDialog into a two-column layout with a source
sidebar and focused content area to make browsing sources easier.
Group Azure DevOps repositories by project with a new derived value
and render sticky project headers for clearer navigation.
Replace showIntegrations with selectIntegrationSource to load the
chosen integration, refresh repositories, and update labels and styles.

- Introduce source sidebar and refreshed dialog layout
- Add azureRepositoryGroups and project grouping UI
- Rename flow to selectIntegrationSource and improve loading logic
2026-08-31 08:43:00 +02:00
Christoph f0a1d89152 Update version to 2026.8.9 2026-08-30 20:26:46 +02:00
Christoph c3762ae7a3 feat(git): add opt-in for unrelated histories during pull
publish / Build and publish Windows installer (release) Successful in 10m2s
publish / Build and publish Ubuntu AppImage (release) Successful in 10m28s
publish / Build and publish AUR packages (release) Successful in 22m1s
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.
2026.8.9
2026-08-30 20:25:15 +02:00
Christoph 4db6f30461 refactor(commit-ai): remove local models and simplify AI flow
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
2026-08-30 19:16:32 +02:00
Christoph 9c93d5a978 feat(integrations): add Git hosting providers and Clone UI
publish / Build and publish Ubuntu AppImage (release) Successful in 24m41s
publish / Build and publish Windows installer (release) Successful in 26m36s
publish / Build and publish AUR packages (release) Successful in 54m9s
Add integrations for GitHub, GitLab (cloud & self-hosted), Azure DevOps,
and Gitea, storing personal access tokens in the operating system
keychain. Azure DevOps supports multiple independently configurable
organizations, and the Clone → Integrations tab loads, filters, sorts,
and clones repositories using stored credentials. Update the API
contract, help overlay, README, changelog, and application version
metadata to document and ship the feature.

- Add list_integration_repositories API command and related types
- New Clone → Integrations UI with search, refresh, and direct clone
- Store tokens in OS keychain and support multiple Azure DevOps orgs
2026.8.8
2026-08-30 00:05:01 +02:00
Christoph c242a72edd feat(integrations): support GitHub repositories and enhance repo browser UI
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.
2026-08-29 23:55:27 +02:00
Christoph 91263547db feat(integrations): add Git hosting integrations and repo listing
Add support for integrating with external Git hosts (GitLab, Gitea,
and Azure DevOps). The backend gains a client to fetch paginated
repository lists, normalise base URLs, and surface provider errors.
Credentials are loaded from the OS keychain and a Tauri command is
exposed for the frontend to list integration repositories.

- Implement integration client with pagination, deserialization,
  and provider-specific handling.
- Centralise keychain credential loading and expose listing command.
- Update UI to manage integration metadata, persist settings, and
  save/remove tokens to the OS keychain for cloning and operations.
2026-08-29 23:25:51 +02:00
Christoph 823a50ce85 style(repo-loading): refine overlay visuals and theming
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
2026-08-29 22:52:14 +02:00
Christoph 22da397e39 fix(git): make unsetting upstream idempotent
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
2026-08-26 00:35:30 +02:00
Christoph f160e48777 Update version to 2026.8.7 2026-08-23 23:41:30 +02:00
Christoph 4533f8aa38 style(theme): add dialog & panel CSS vars and refactor status panel styles
publish / Build and publish Ubuntu AppImage (release) Successful in 19m39s
publish / Build and publish Windows installer (release) Successful in 22m14s
publish / Build and publish AUR packages (release) Successful in 48m41s
Add CSS custom properties for dialog backdrop, shadows, and panel
highlights to centralize visual theming. Refactor the status panel
overlay to consume these tokens and use color-mix instead of hardcoded
rgba values. This improves visual consistency and lets overlays adapt
cleanly to appearance changes and theme variants.

- Centralize dialog and panel visuals with new CSS variables
- Replace fixed rgba values with tokenized colors and color-mix
- Move borders, shadows, and gradients to use the new theme tokens
2026.8.7
2026-08-23 23:38:42 +02:00
Christoph f0bd74be4e Merge pull request 'feat(history): make branch filter groups collapsible' (#28) from new-desgin into main
publish / Build and publish Windows installer (release) Failing after 13s
publish / Build and publish AUR packages (release) Canceled after 0s
publish / Build and publish Ubuntu AppImage (release) Canceled after 54s
Reviewed-on: #28
2026-08-23 21:28:46 +00:00
Christoph 79f4ec21e4 feat(history): make branch filter groups collapsible
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
2026-08-23 23:20:13 +02:00