diff --git a/CHANGELOG.md b/CHANGELOG.md index 714a17322..a40bcc35f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## 0.1.20 - 2026-03-10 +### Added +- Added workspace sidebar git actions with quick diff stats and archive controls. +- Added refreshed website downloads and homepage presentation for desktop installs. + +### Improved +- Desktop release packaging now rebuilds and validates the bundled managed runtime during CI, improving installer reliability for macOS users. +- Improved desktop and web stream rendering, settings polish, and React 19.1.4 compatibility. + +### Fixed +- Fixed Claude interrupt/restart regressions and strengthened managed-daemon smoke coverage for desktop releases. + ## 0.1.19 - 2026-03-09 ### Added - Added a draft GitHub release flow so maintainers can upload and review desktop and Android release assets before publishing the final release. diff --git a/packages/app/src/components/git-diff-pane.tsx b/packages/app/src/components/git-diff-pane.tsx index fb0d49f19..c381f51ab 100644 --- a/packages/app/src/components/git-diff-pane.tsx +++ b/packages/app/src/components/git-diff-pane.tsx @@ -1322,6 +1322,7 @@ const styles = StyleSheet.create((theme) => ({ flexShrink: 1, }, diffStatusContainer: { + paddingVertical: 1.5, borderBottomWidth: 1, borderBottomColor: theme.colors.border, }, diff --git a/packages/app/src/components/sidebar-workspace-list.tsx b/packages/app/src/components/sidebar-workspace-list.tsx index ed794509d..628e1df32 100644 --- a/packages/app/src/components/sidebar-workspace-list.tsx +++ b/packages/app/src/components/sidebar-workspace-list.tsx @@ -1762,10 +1762,6 @@ const styles = StyleSheet.create((theme) => ({ minWidth: 18, height: 18, paddingHorizontal: theme.spacing[1], - borderRadius: theme.borderRadius.full, - borderWidth: 1, - borderColor: theme.colors.border, - backgroundColor: theme.colors.surface2, alignItems: 'center', justifyContent: 'center', }, diff --git a/packages/app/src/screens/open-project-screen.tsx b/packages/app/src/screens/open-project-screen.tsx index 91208fe53..dbddca892 100644 --- a/packages/app/src/screens/open-project-screen.tsx +++ b/packages/app/src/screens/open-project-screen.tsx @@ -7,26 +7,30 @@ import { PaseoLogo } from "@/components/icons/paseo-logo"; import { SidebarMenuToggle } from "@/components/headers/menu-header"; import { useKeyboardShortcutsStore } from "@/stores/keyboard-shortcuts-store"; import { usePanelStore } from "@/stores/panel-store"; +import { getIsTauriMac } from "@/constants/layout"; +import { useTrafficLightPadding } from "@/utils/tauri-window"; export function OpenProjectScreen({ serverId: _serverId }: { serverId: string }) { const { theme } = useUnistyles(); const insets = useSafeAreaInsets(); - const setProjectPickerOpen = useKeyboardShortcutsStore( - (s) => s.setProjectPickerOpen - ); + const trafficLightPadding = useTrafficLightPadding(); + const desktopAgentListOpen = usePanelStore((s) => s.desktop.agentListOpen); const openAgentList = usePanelStore((s) => s.openAgentList); + const setProjectPickerOpen = useKeyboardShortcutsStore((s) => s.setProjectPickerOpen); + + const isMobile = UnistylesRuntime.breakpoint === "xs" || UnistylesRuntime.breakpoint === "sm"; + const needsTrafficLightInset = !isMobile && !desktopAgentListOpen && getIsTauriMac(); + const trafficLightInset = needsTrafficLightInset ? trafficLightPadding.left : 0; useEffect(() => { - const isMobile = - UnistylesRuntime.breakpoint === "xs" || UnistylesRuntime.breakpoint === "sm"; if (!isMobile) { openAgentList(); } - }, [openAgentList]); + }, [isMobile, openAgentList]); return ( - + diff --git a/packages/app/src/utils/tauri-window.ts b/packages/app/src/utils/tauri-window.ts index c3d8c15a6..bfa64c97f 100644 --- a/packages/app/src/utils/tauri-window.ts +++ b/packages/app/src/utils/tauri-window.ts @@ -95,7 +95,7 @@ export function useTauriDragHandlers() { // Only handle primary button, ignore if clicking on interactive elements. // Tauri docs recommend using `e.detail` on mousedown for double-click maximize. if (e.defaultPrevented) return; - if (typeof e.buttons === "number" ? e.buttons !== 1 : e.button !== 0) return; + if (e.button !== 0) return; const target = e.target instanceof Element ? e.target : null; if (target?.closest(NON_DRAGGABLE_SELECTOR)) return; diff --git a/packages/website/public/paseo-mockup.png b/packages/website/public/paseo-mockup.png index d47ba3377..c5e4ad325 100644 Binary files a/packages/website/public/paseo-mockup.png and b/packages/website/public/paseo-mockup.png differ