You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Git Architecture & Backend
Asynchronous Git Commands: Converted network-bound Tauri git commands (git_commit, git_push, git_pull) to async. This offloads execution from the Rust main thread, resolving application freezing/blocking during heavy network operations.
Robust Git Error Handling: Updated Rust execute_git implementations to capture both stdout and stderr. If stderr is empty upon a non-zero exit code, the backend now intelligently falls back to parsing stdout (crucial for accurate Git error propagation to the UI).
Unlinked Branch Handling: Modified git_pull to execute git pull origin HEAD instead of a generic pull, implicitly mapping local branches to origin and bypassing upstream tracking requirement failures.
New Backend Bindings: Introduced 4 new Rust bindings (git_get_remotes, git_remove_remote, git_get_config, git_set_config) to support arbitrary .git/config reading and writing.
Git UI & Settings Integration
Git Settings Tab: Introduced a dedicated "git-settings" file type in the tabStore.
Exposes local workspace configuration via git config --local.
Designed cleanly using the <SettingRow> layout primitives, strictly separating presentation from the newly extracted useGitSettings.ts custom hook.
Loading States & Flicker Prevention: Introduced a boolean isLoading flag derived from gitStore.gitState.loading. This replaces synchronous undefined checks, permanently resolving the race-condition where the UI would flash the "No Repository" fallback before the Rust backend completed its get_git_state evaluation.
UX: Top-aligned the fallback "Initialize Repository" view to match the structural flow of the primary Git Commit view.
Core UI Components
Global Toast API: Removed localized toast state from the Git view entirely. Implemented a globally accessible ui.showToast method via UIContext. The <Toast> component is now injected at the root MainLayout level using Solid's <Portal>, ensuring it renders perfectly over all EditorPane splits and sidebars.
Confirm Dialog Scalability: Added strict max-h-[60vh], overflow-y-auto, and whitespace-pre-wrap styling to <ConfirmDialog>. This ensures that verbose multi-line tracebacks (such as raw Git network failures) remain cleanly scrollable and do not structurally break the viewport layout.