Commit Graph
407 Commits
Author SHA1 Message Date
Christoph acf8898b98 feat: add input/checkbox to confirm dialog and multi-selection actions
Introduce richer confirmation dialogs and wire them through the UI so actions
can collect an optional single-line input and a checkbox option.

- ConfirmDialog: support optional input and checkbox (with defaultChecked),
  expose onConfirm(result: {checked, value}). Focus/selects input when present
  and blocks confirm while required inputs/checkboxes are missing.
- App: add askConfirmation(...) returning {confirmed, value, checked} and keep
  requestConfirmation(...) as a convenience boolean wrapper. Update answer flow
  to pass the full result. Use the new prompt in stashStatusFiles to collect a
  stash message and "include untracked" option before saving.
- Status/Explorer/Worktree: add multi-selection support for stop-tracking and
  stash operations. onStopTracking now accepts an array of paths and a new
  "selection" kind; status context menu shows selection counts and uses a
  CopyCheck icon for selections. Added corresponding i18n messages.

This change keeps existing UX but enables collecting extra confirmation data
and acting on multi-file selections.
2026-09-17 22:58:30 +02:00
Christoph 8c99e15dc9 refactor(sidebar): unify left sidebar panel sizing and resize logic
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.
2026-09-17 22:45:20 +02:00
Christoph e7303116a3 chore(styles): adjust theme color tokens for ink and accent
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.
2026-09-17 22:31:46 +02:00
Christoph 098e9c5fb9 refactor(scrollbars): consolidate and simplify global scrollbar styles
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.
2026-09-17 21:43:25 +02:00
Christoph 3e87c8f6a9 feat(confirm): centralize confirmation dialogs and add i18n
Introduce a generic ConfirmDialog and a promise-based requestConfirmation API in
App.svelte so callers can await user responses instead of using window.confirm.
Provide helper builders (branchDeleteConfirmRequest, discardConfirmRequest) to
create dialog content for common cases. Many call sites were switched to use
requestConfirmation and now render the in-app ConfirmDialog; the previous
specialized confirm components (BranchDeleteConfirmDialog, DiscardConfirmDialog)
were removed.

Add lightweight i18n support (setLanguage, t()) and new messages/i18n modules,
and replace hardcoded English strings in several components (e.g. AiSettingsPage,
BlameDialog and many confirmation prompts) with translated keys.

Summary of effects:
- Replaces native window.confirm with awaitable in-app ConfirmDialog dialogs.
- Centralizes confirmation UI and content construction in App.svelte.
- Adds i18n plumbing and updates UI text to use t().
- Removes two specialized confirm dialog components and adds src/lib/components/ConfirmDialog.svelte.
2026-09-17 21:41:35 +02:00
Christoph b00e3e5c18 feat(submodules): support auth and checkout submodule revisions
Add credential-aware submodule operations and a command to checkout a specific
tag or commit in a submodule without staging the parent repository.

- Backend (src-tauri):
  - Export checkout_submodule_revision and implement checkout_revision which
    validates tag vs commit inputs, verifies refs locally, and checks out the
    submodule in detached mode without modifying the parent's index.
  - Add optional username/password parameters to add_submodule and submodule_action
    flows. Implement submodule_git to call run_git_authenticated when credentials
    are supplied and classify auth failures by prefixing errors with "AUTH_FAILED:".
  - Wire authenticated variants (operate_authenticated, add_authenticated) and
    update fetch/update actions to use credentials where needed.
  - Add unit tests covering authenticated submodule commands, auth failure
    classification, and checkout-by-tag/commit behavior.

- Frontend:
  - App.svelte: introduce credential prompt flow (withSubmoduleCredentials,
    submit/cancel handlers), surface credential dialog on auth failures, and
    wire credentialed calls for initialize/add/update/fetch operations. Hook up
    checkoutSubmoduleRevision and listTags to the submodule dialog.
  - SubmoduleDialog.svelte: add UI for selecting destination folder, loading
    tags and checking out revisions; expose fetch action.
  - CredentialDialog.svelte: include "submodule" action and adjust labels.

- Docs:
  - README: document "Change commit or tag" and "Fetch tags & commits" behaviors.

The commit focuses only on enabling credentialed submodule interactions and
safe local checkouts of tags/commits; no other git behavior changes are made.
2026-09-17 19:39:40 +02:00
Christoph a9af02a697 feat(repository-dashboard): add compact PR badge styles with hover/focus and error state
Add CSS rules for the PR badge in RepositoryDashboard.svelte to provide a compact, padded hit area and a soft outlined hover/focus treatment (using color-mix) instead of a hard filled block. Sizes are tuned for list- and tiles-view, transitions are added for color/border/background, and a .pr-error hover variant applies an error accent. This is a purely presentational change.
2026-09-17 18:15:55 +02:00
Christoph f71a07ab11 feat(branch-panel): add branch filtering, persistent view state, and UI polish
- 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.
2026-09-17 17:37:41 +02:00
Christoph 3ef2941190 Merge pull request 'Add submodule management and collapsible Worktree/Tags panels' (#45) from enhance-ui into main 2026-09-16 20:59:40 +00:00
Christoph af40ef413e Merge remote-tracking branch 'origin/main' into enhance-ui 2026-09-16 22:59:37 +02:00
Christoph 50410187f3 Merge pull request 'Add submodule management and enable recursive clone by default' (#44) from git-submodule into main 2026-09-16 20:59:35 +00:00
Christoph db4e58e039 feat(ui): add collapsible Worktree and Tags panels to left sidebar
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.
2026-09-16 22:58:48 +02:00
Christoph 66c85321ea feat(submodules): add submodule management and recursive clone
Add a new backend module to manage Git submodules (list, initialize/update,
stage, sync, add) and expose Tauri commands (list_submodules,
submodule_action, add_submodule). The implementation enforces safe relative
paths, a maximum nesting depth, and guards (dirty/conflicted checks and
initialization/no-op semantics) to avoid unsafe operations.

Refactor clone logic to a testable run_git_clone_command and enable
automatic initialization of submodules during clone by passing
--recurse-submodules. Also disallow certain submodule-related custom clone
flags so callers cannot override this behaviour.

Update README with a Submodules section and add frontend components and types
to surface submodule UI (dialogs, toolbar badge). Unit tests were added for
submodule discovery, initialization/update semantics, and recursive clone
behavior.
2026-09-16 22:31:14 +02:00
Christoph f0ff1914c9 docs(architecture): add generated runtime diagram and receipts
Add the generated Gitty runtime architecture documentation produced by archify: rendered HTML, JSON specification and delivery/browser receipts, visual-check screenshots and contact sheets, and accompanying diagram JSON/visual files under docs/diagrams. These are auto-generated static documentation artifacts (archify metadata present) and should not be edited by hand.
2026-09-16 22:01:27 +02:00
Christoph 0f6c6059d5 Update version to 2026.9.7 2026-09-11 23:08:40 +02:00
Christoph 47b8544ba8 fix(workspace): don't auto-open repo when switching to Management view
publish / Build and publish Ubuntu AppImage (release) Successful in 9m28s
publish / Build and publish Windows installer (release) Successful in 14m11s
publish / Build and publish AUR packages (release) Successful in 19m42s
When switching workspaces, skip calling openRepo if the current activeView
is "management". Previously a session.activePath would be opened even
when the user was on the Management/dashboard view, causing an unwanted
navigate-away. Now a keepDashboard flag prevents openRepo from running
in that case, preserving the dashboard state.
2026.9.7
2026-09-11 23:03:55 +02:00
Christoph 385b6304fa refactor(ui): extract providerLogo snippet and restyle provider icons
Introduce a reusable providerLogo snippet to consolidate logo markup (normal
and large variants) and to render the instance badge for self-hosted GitLab.
Replace duplicated inline SVG spans with {@render providerLogo(...)} calls.

Also:
- update the Azure DevOps SVG path (comment notes simple-icons v11.15.0 as source)
- add providerColor cases for gitea and azure-devops and expose light-theme
  CSS vars for their colors
- overhaul provider logo CSS (sizes, brand-icon class, instance badge, borders
  and theme-aware vars) to unify appearance and spacing.
2026-09-11 23:01:23 +02:00
Christoph d26d2ac982 refactor(dialogs): add unified dialog header chrome and opt-in markup
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.
2026-09-11 22:50:31 +02:00
Christoph 98719bea4a Merge pull request 'Add AI pull-request draft generation and consolidate AI settings UI' (#43) from newAiFeatures into main 2026-09-11 20:35:33 +00:00
Christoph 31ab5eb2a1 Merge pull request 'Add visibleParentResolver and optimize Git file status lookup' (#42) from performance into main 2026-09-11 20:35:19 +00:00
Christoph 4b5de5a88b feat(ai): generate PR drafts and consolidate AI settings UI
Add pull request draft generation to the commit_ai crate and expose it
via a new Tauri command. The backend builds a branch-range context from
published remote-tracking refs only, calls the chosen AI provider, and
parses a JSON {"title","description"} draft (with validation). Also
register the command in the app and add unit tests for parsing and the
branch-context behavior.

Consolidate AI settings in the frontend by renaming the dialog to an
AiSettingsPage and integrating AI options into the main AppSettings
dialog. Persisted AI preferences are merged with existing localStorage
rather than replacing it, and the settings UI now supports opening the
app settings to a specific initial page ("integrations" or "ai").

Other changes:
- Replace the commit-message system prompt used by build_messages with
  the updated, more detailed guidance text.
2026-09-11 22:34:21 +02:00
Christoph 007dc99447 feat(history): add visible-parent resolver and status optimizations
Introduce an iterative visibleParentResolver for commit-graph rendering,
replacing a recursive traversal. It preserves first-parent ordering,
deduplicates converging paths, and avoids stack overflows; a test suite
validates correctness and performance. Additionally, streamline background
fetch handling in the UI to reuse fetchRemote's returned status and avoid
unnecessary status reads and tab invalidation, and refactor Git status
handling in Rust to build a file_status_index that preserves rename and
first-match semantics while speeding lookups.

- Add visibleParentResolver + comprehensive tests for ancestry handling
- Reuse fetchRemote result to apply status and skip unchanged updates
- Replace status_for_file with file_status_index to improve performance
2026-09-11 16:58:52 +02:00
Christoph 801fdbabde Update version to 2026.9.6 2026-09-11 14:50:53 +02:00
Christoph 40b871f888 style(graph): use graph-supplied lane color for behind segments
publish / Build and publish Windows installer (release) Successful in 13m10s
publish / Build and publish Ubuntu AppImage (release) Successful in 16m55s
publish / Build and publish AUR packages (release) Successful in 19m49s
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
2026.9.6
2026-09-11 14:26:43 +02:00
Christoph be073a8f39 feat(workspaces): add workspace sessions and management
Introduce workspace support to group repositories and store per-workspace
open tabs and the last active repository. Integrate a workspace picker into
the repository tab bar and add workspace controls to the dashboard to
create, edit, switch and delete workspaces. Persist and migrate workspace
preferences robustly and include tests for migration, corruption and edge
cases.

- Persist per-workspace sessions and active repo to localStorage
- Add workspace picker in tabs and dashboard management hooks
- Include migration/validation logic and unit tests for edge cases
2026-09-11 14:15:27 +02:00
Christoph 54972f24b8 feat(repo-tabs): add drag-and-drop reordering for repo tabs
Add pointer-driven drag-and-drop reordering for repository tabs. A
drag state tracks source and target, supports auto-scrolling, and shows
a live animated preview while dragging; accidental clicks are suppressed.
Reorders commit on pointerup and can be cancelled via Escape, blur, or
pointercancel, and reordering is disabled while the app is busy. The
new order is persisted through a callback to the main app.

- Implement pointer handlers, drag lifecycle, and click suppression
- Add transform-based preview, transitional styling, and reduced-motion support
- Wire reorder callback to persist the updated tab order
2026-09-11 14:10:05 +02:00
Christoph eb4346fce2 feat(git): use soft reset to keep changes staged on undo
Change undo-last-commit behavior to perform a soft reset instead of a
mixed reset. This preserves the index and working tree so the undone
commit's changes remain staged and ready to recommit. The confirmation
dialog text was updated to accurately reflect the new behavior.

- Perform git reset --soft HEAD~1 to move HEAD while preserving index
- Update UI confirmation copy to state that changes remain staged and
  files are preserved
2026-09-11 11:51:33 +02:00
Christoph 5c39fa3e30 feat(integrations): add issue creation and Azure work item support
Add creation flow for integration issues and Azure work items.
Expose Tauri commands to list Azure projects and types.
Also add a command to create integration issues and return the created item.
Preserve the target repository when provider responses omit it and return
the created issue information to the UI.

- Implement Azure-specific URL and payload handling and creation logic
- Add a Svelte CreateIssueDialog and integrate it into IssueCenter
- Add tests to validate creation requests and created-issue parsing
2026-09-11 09:53:59 +02:00
Christoph 088cbc5e18 refactor(clone-dialog): generalize repository grouping and support gitea
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
2026-09-11 08:55:38 +02:00
Christoph d0dd79354a feat(integrations): add Azure work item state management and UI tweaks
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.
2026-09-11 08:43:06 +02:00
Christoph c42f8eb352 Merge branch 'main' of https://git.cbsk-tech.de/Christoph/GitLite 2026-09-09 10:30:39 +02:00
Christoph 136afa9921 feat(workspace): persist workspace UI filters and disable drag-drop
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
2026-09-09 10:30:18 +02:00
Christoph 67283bf37f Update version to 2026.9.5 2026-09-09 09:26:13 +02:00
Christoph 95c72340fe feat(ui): add consistent page-header layout and styles
publish / Build and publish Ubuntu AppImage (release) Successful in 9m27s
publish / Build and publish Windows installer (release) Successful in 10m56s
publish / Build and publish AUR packages (release) Successful in 19m46s
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
2026.9.5
2026-09-09 09:24:18 +02:00
Christoph abbd737a8d feat(ui): refine integration board view and compact assignees
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.
2026-09-09 08:45:55 +02:00
Christoph bb53de3b83 Update version to 2026.9.4 2026-09-08 22:12:16 +02:00
Christoph 8c652b5df8 feat(repo-tabs): replace tab bar with workspace navigation
publish / Build and publish Windows installer (release) Successful in 8m44s
publish / Build and publish Ubuntu AppImage (release) Successful in 9m14s
publish / Build and publish AUR packages (release) Successful in 18m56s
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
2026.9.4
2026-09-08 22:10:16 +02:00
Christoph 200f01185a feat(review): add integration review APIs and adjust UI
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
2026-09-08 22:00:08 +02:00
Christoph 814f0e3a40 Merge pull request 'feat(integrations): add multi-provider board and issue integrations' (#41) from issue-center into main 2026-09-08 19:56:10 +00:00
Christoph Brandau cd224fcc55 Merge remote-tracking branch 'origin/main' into issue-center
# Conflicts:
#	src-tauri/src/main.rs
#	src/lib/components/ReviewCenter.svelte
#	src/lib/git.ts
2026-09-08 21:55:51 +02:00
Christoph 298bda2b54 Merge branch 'main' of https://git.cbsk-tech.de/Christoph/GitLite 2026-09-08 21:49:32 +02:00
Christoph b7a5bfe29f style(review-center): improve responsive table and toolbar layout
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
2026-09-08 21:49:29 +02:00
Christoph ee35169feb feat(create-review): load repository branches and suggest local branch
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
2026-09-08 21:41:29 +02:00
Christoph c7d6fa680a Merge pull request 'Create PRs' (#40) from review-center into main 2026-09-08 19:41:12 +00:00
Christoph f7f85d387d feat(integrations): add create integration review request API and UI
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
2026-09-08 21:32:12 +02:00
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