## Summary Complete sidebar redesign and comprehensive UI polish pass with performance optimizations, theme system refinements, and desktop integration improvements. ## Key Changes **Sidebar & Navigation Redesign** - Redesigned sessions sidebar layout with unified button primitives - Added activity sections with project grouping and improved session organization - Refined sidebar corners, spacing, and visual hierarchy - Removed NavRail component in favor of streamlined sidebar - Stabilized sessions bar toggle position in fullscreen mode **Performance Optimizations** - Reduced chat streaming CPU usage and storage churn - Optimized task tool polling and live timers with debouncing - Prevented chat state races and reduced background request load - Debounced draft writes and coalesced session reloads - Optimized message store updates and turn tracking **Theme & Visual System** - Added theme-aware window corners (desktop) and border radius tokens - Introduced glassmorphism effects on desktop sidebar - Added backdrop blur to UI elements **Chat Experience** - Added session-based permission auto-accept toggle in chat input - Polished permission shield UX with improved icon sizing and spacing - Fixed chat scroll-to-bottom behavior and timeline tracking - Enhanced tool output display with better path label detection - Removed duplicate draft context details in chat header - Added text selection menu to chat messages **Git Improvements** - Refreshed git history visual design with cleaner dividers - Added remote removal action in sync selector - Stabilized git polling to prevent excessive requests - Improved tool output rendering for git operations **Settings & Panels** - Fixed mobile scrolling on settings pages - Made outside-click settings close instantly - Reduced settings load churn and CPU spikes - Improved services dropdown layout and spacing - Softened panel resize handles **Desktop Integration** - Synced macOS window theme with app theme - Restored window dragging in sidebar header zones - Fixed system window corners on macOS - Improved header session metadata and action controls **Button & Component Standardization** - Unified button primitives across all components - Standardized destructive action patterns - Removed unused button variants (button-large, button-small) - Aligned context tab close hit areas --------- Co-authored-by: Iuliia Ivashko <yulia.ivashko@gmail.com>
62 lines
2.5 KiB
TypeScript
62 lines
2.5 KiB
TypeScript
import * as gitApiHttp from '@openchamber/ui/lib/gitApiHttp';
|
|
import type {
|
|
GitAPI,
|
|
CreateGitCommitOptions,
|
|
GitLogOptions,
|
|
} from '@openchamber/ui/lib/api/types';
|
|
|
|
export const createWebGitAPI = (): GitAPI => ({
|
|
checkIsGitRepository: gitApiHttp.checkIsGitRepository,
|
|
getGitStatus: gitApiHttp.getGitStatus,
|
|
getGitDiff: gitApiHttp.getGitDiff,
|
|
getGitFileDiff: gitApiHttp.getGitFileDiff,
|
|
revertGitFile: gitApiHttp.revertGitFile,
|
|
isLinkedWorktree: gitApiHttp.isLinkedWorktree,
|
|
getGitBranches: gitApiHttp.getGitBranches,
|
|
deleteGitBranch: gitApiHttp.deleteGitBranch as GitAPI['deleteGitBranch'],
|
|
deleteRemoteBranch: gitApiHttp.deleteRemoteBranch as GitAPI['deleteRemoteBranch'],
|
|
removeRemote: gitApiHttp.removeRemote as GitAPI['removeRemote'],
|
|
generateCommitMessage: gitApiHttp.generateCommitMessage,
|
|
generatePullRequestDescription: gitApiHttp.generatePullRequestDescription,
|
|
listGitWorktrees: gitApiHttp.listGitWorktrees,
|
|
validateGitWorktree: gitApiHttp.validateGitWorktree,
|
|
createGitWorktree: gitApiHttp.createGitWorktree,
|
|
deleteGitWorktree: gitApiHttp.deleteGitWorktree,
|
|
createGitCommit(directory: string, message: string, options?: CreateGitCommitOptions) {
|
|
return gitApiHttp.createGitCommit(directory, message, options);
|
|
},
|
|
gitPush: gitApiHttp.gitPush,
|
|
gitPull: gitApiHttp.gitPull,
|
|
gitFetch: gitApiHttp.gitFetch,
|
|
checkoutBranch: gitApiHttp.checkoutBranch,
|
|
createBranch: gitApiHttp.createBranch,
|
|
renameBranch: gitApiHttp.renameBranch,
|
|
getGitLog(directory: string, options?: GitLogOptions) {
|
|
return gitApiHttp.getGitLog(directory, options);
|
|
},
|
|
getCommitFiles: gitApiHttp.getCommitFiles,
|
|
getCurrentGitIdentity: gitApiHttp.getCurrentGitIdentity,
|
|
hasLocalIdentity: gitApiHttp.hasLocalIdentity,
|
|
setGitIdentity: gitApiHttp.setGitIdentity,
|
|
getGitIdentities: gitApiHttp.getGitIdentities,
|
|
createGitIdentity: gitApiHttp.createGitIdentity,
|
|
updateGitIdentity: gitApiHttp.updateGitIdentity,
|
|
deleteGitIdentity: gitApiHttp.deleteGitIdentity,
|
|
getRemotes: gitApiHttp.getRemotes,
|
|
rebase: gitApiHttp.rebase,
|
|
abortRebase: gitApiHttp.abortRebase,
|
|
continueRebase: gitApiHttp.continueRebase,
|
|
merge: gitApiHttp.merge,
|
|
abortMerge: gitApiHttp.abortMerge,
|
|
continueMerge: gitApiHttp.continueMerge,
|
|
stash: gitApiHttp.stash,
|
|
stashPop: gitApiHttp.stashPop,
|
|
getConflictDetails: gitApiHttp.getConflictDetails,
|
|
worktree: {
|
|
list: gitApiHttp.listGitWorktrees,
|
|
validate: gitApiHttp.validateGitWorktree,
|
|
create: gitApiHttp.createGitWorktree,
|
|
remove: gitApiHttp.deleteGitWorktree,
|
|
},
|
|
});
|