Settings and UI#9
Conversation
- Home sidebar: replace tab UI with 3 stacked border buttons (Clone, Open, Import Git Repo) with primary-coloured icons; Clone and Import open modals - Clone modal: URL, folder name, parent folder, live clone progress - Import modal: repo path picker + In Place / Move / Copy mode selection - Open button: directly invokes file picker (no modal) - Rust backend: add ImportRepoMode enum, import_git_repo_workspace_with_mode command supporting inPlace/move/copy strategies - Add count_commits Rust command (git rev-list --count --all) with TS wrapper - Workspace status bar: show 'Showing N of M commits' when graph is paginated - Tag ref badges: use --sg-warning token instead of hardcoded colour (fixes illegibility in light mode) - Home sidebar: version footer (centred, muted); shows 'dev build' in dev mode - Settings page: same dev build logic for version display - Commit graph status: show N+ commits when more exist, full count when loaded - Section headings: Play/Clock icons next to Start and Recent projects
There was a problem hiding this comment.
Pull request overview
This PR updates SproutGit’s UI (home/workspace/settings) and extends backend capabilities to support richer workspace import flows and additional Git/GitHub tooling, plus adds new website analytics + typography tweaks.
Changes:
- Add multi-mode “Import Git Repo” (in-place/move/copy) and related backend command plumbing.
- Refresh major UI surfaces (home + settings), including new modals and expanded Git configuration options (editor/diff/merge tools, Git identity, GitHub email suggestions).
- Add commit counting API + UI display, and update typography/theme tokens (code font + warning/tag color).
Reviewed changes
Copilot reviewed 18 out of 20 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| website/src/layouts/Base.astro | Adds Microsoft Clarity snippet; minor JS formatting tweaks. |
| src/routes/workspace/+page.svelte | Adds background total commit count and improved “commits” label; settings button styling tweak. |
| src/routes/settings/+page.svelte | Major settings UI redesign; adds Git identity/editor/diff/merge tool configuration and GitHub email suggestions. |
| src/routes/+page.svelte | Home screen redesign with Clone/Import modals and new import modes; adds app version display. |
| src/routes/+layout.svelte | Skips updater auto-check in dev builds. |
| src/routes/+error.svelte | Adds error route that toasts + redirects home. |
| src/lib/sproutgit.ts | Adds new invoke wrappers/types: import-with-mode, countCommits, Git tool detection, GitHub email suggestions. |
| src/lib/components/MonacoEditor.svelte | Sets Monaco font to Fira Code + enables ligatures. |
| src/lib/components/DiffViewer.svelte | Applies .sg-code typography class to diff table. |
| src/lib/components/CommitGraph.svelte | Uses theme token for tag badge color. |
| src/app.d.ts | Adds local module typings for updater/process plugins. |
| src/app.css | Introduces body/heading/code font variables + avatar tokens; imports new fonts. |
| src-tauri/src/workspace.rs | Implements import modes (inPlace/move/copy) and refactors workspace finalization. |
| src-tauri/src/lib.rs | Registers new Tauri commands. |
| src-tauri/src/github.rs | Adds list_github_email_suggestions command. |
| src-tauri/src/git/operations.rs | Adds count_commits command. |
| src-tauri/src/git/helpers.rs | Adds GitAction::CountCommits registration. |
| src-tauri/src/editor.rs | Adds detect_git_tools command and Git tool model. |
| package.json | Adds fontsource deps for body/code fonts. |
| pnpm-lock.yaml | Lockfile updates for new dependencies. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (1)
src/routes/+page.svelte:311
- The project name extraction uses
split('/'), which breaks on Windows paths (backslashes) and will display the full path instead of the last segment. Consider using a separator-agnostic approach (e.g., split on both\and/, or normalize slashes once) for workspace path display/toast messages.
await saveKnownProject(imported);
toast.success(`Workspace imported: ${imported.workspacePath.split('/').pop()}`);
await goto(`/workspace?workspace=${encodeURIComponent(imported.workspacePath)}`);
|
@copilot apply changes based on the comments in this thread |
…ns, and commit count checks Agent-Logs-Url: https://github.com/InterestingSoftware/SproutGit/sessions/5f06ab2e-990c-4352-932d-c2dc58379497 Co-authored-by: liam-russell <17897133+liam-russell@users.noreply.github.com>
Implemented all requested review-thread fixes in commit Included changes:
Screenshot: https://github.com/user-attachments/assets/bd8b2c93-309f-43d9-a9c2-2b6969cfa867 Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
No description provided.