Skip to content

Settings and UI#9

Merged
liam-russell merged 4 commits into
mainfrom
settings-and-ui
Apr 21, 2026
Merged

Settings and UI#9
liam-russell merged 4 commits into
mainfrom
settings-and-ui

Conversation

@liam-russell

Copy link
Copy Markdown
Contributor

No description provided.

- 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
Copilot AI review requested due to automatic review settings April 21, 2026 22:49
@liam-russell liam-russell added the enhancement New feature or request label Apr 21, 2026
@liam-russell liam-russell self-assigned this Apr 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)}`);

Comment thread src/routes/+page.svelte
Comment thread src/routes/+page.svelte
Comment thread src/routes/+page.svelte
Comment thread website/src/layouts/Base.astro Outdated
Comment thread src/routes/workspace/+page.svelte Outdated
Comment thread src/routes/workspace/+page.svelte Outdated
Comment thread src-tauri/src/workspace.rs Outdated
@liam-russell

Copy link
Copy Markdown
Contributor Author

@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>

Copilot AI commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

@copilot apply changes based on the comments in this thread

Implemented all requested review-thread fixes in commit dc8af82.

Included changes:

  • cross-platform workspace name extraction (Windows-safe path handling)
  • dialog semantics + Escape close + focus management/trapping for clone/import modals
  • conditional commit counting (only when graph page is partial)
  • in-place import now errors on reserved path collisions instead of silently skipping
  • Clarity analytics now gated behind production + PUBLIC_CLARITY_TAG_ID

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:

  • telemetry.astro.build
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/SproutGit/SproutGit/website/node_modules/.bin/../astro/bin/astro.mjs build &#43;linux-x64-gnu@0.3.5/node_modules/@oxlint/linux-x64-gnu/oxlint (dns block)
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/SproutGit/SproutGit/website/node_modules/.bin/../astro/bin/astro.mjs build .12/node_modules/@esbuild/linux-x64/bin/esbuild utGi�� utGit/src-tauri/target/debug/deps/libcfg_expr-a78f9a31b063f05c.rlib utGit/src-tauri/target/debug/deps/libtarget_lexicon-289316e768f6348a.rlib utGit/src-tauri/target/debug/deps/libsmallvec-a01bbe5918e15315.rlib utGit/src-tauri/ps utGit/src-tauri/-A utGit/src-tauri/-o utGit/src-tauri/ppid,pid utGi�� utGit/src-tauri/target/debug/deps/libhashbrown-8748002a04ba1270.rlib utGit/src-tauri/target/debug/deps/libwinnow-561a9a1cba2e3c60.rlib rgo/bin/cc k/SproutGit/Sprouname k/SproutGit/SproutGit/src-tauri/--norc -gnu/bin/cc stup/toolchains/stable-x86_64-REDACTED-linux-gnu/lib/rustlib/x86_-dynamic-linker (dns block)
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/SproutGit/SproutGit/website/node_modules/.bin/../astro/bin/astro.mjs build /home/REDACTED/.nvm/ROADMAP.md /home/REDACTED/.nvm/alias /home/REDACTED/.nvm/bash_completion /home/REDACTED/.nvm/install.sh /home/REDACTED/.nvm/nvm-exec /home/REDACTED/.nvm/nvm.sh /home/REDACTED/.nvm/package.json /home/REDACTED/.nvm/rename_test.sh /home/REDACTED/.nvm/test bin/�� k/SproutGit/SproutGit/src-tauri/target/debug/deps/libcfg_expr-a78f9a31b063f05c.rlib k/SproutGit/SproutGit/src-tauri/target/debug/deps/libtarget_lexicon-289316e768f6348a.rlib (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

@liam-russell liam-russell merged commit 119b77a into main Apr 21, 2026
1 check passed
@liam-russell liam-russell deleted the settings-and-ui branch April 21, 2026 23:13
liam-russell added a commit that referenced this pull request Apr 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants