Enhance session sidebar with PR worktree support (#342)

* feat: refactored sessions sidebar to be workspaces centric

- Add createWorktreeOnly helper and status checks
- Add createWorktreeOnly to create a standalone worktree for the active project
- Show error toasts when no active project or not a Git repository
- Refresh session list and show success toast with created worktree details

* feat: show attention indicator and status marker in SessionSidebar

- Show unread attention indicator for sessions with pending updates
- Display status marker combining streaming and unread indicators in the session row
- Introduce attention diamond pulse animation and associated CSS for the new indicator

* fix(SessionSidebar): reserve header actions space when repo state is known

* chore(doc): add PR status colors to custom themes
This commit is contained in:
Bohdan Triapitsyn
2026-02-07 03:57:46 +02:00
committed by GitHub
parent d5a2e49ae8
commit 7d99aea6cc
46 changed files with 1711 additions and 288 deletions
File diff suppressed because it is too large Load Diff
@@ -13,6 +13,10 @@ const sizeConfig = {
lg: { container: 'gap-1.5', dot: 'h-2 w-2' },
};
const getPulseDelayMs = (index: number): number => {
return ((index % 3) + Math.floor(index / 3)) * 150;
};
const GridLoader: React.FC<GridLoaderProps> = ({ className, size = 'md' }) => {
const config = sizeConfig[size];
@@ -25,7 +29,7 @@ const GridLoader: React.FC<GridLoaderProps> = ({ className, size = 'md' }) => {
<div
key={i}
className={cn('rounded-full bg-current animate-grid-pulse', config.dot)}
style={{ animationDelay: `${((i % 3) + Math.floor(i / 3)) * 150}ms` }}
style={{ animationDelay: `${getPulseDelayMs(i)}ms` }}
/>
))}
</div>