diff --git a/packages/app/src/app/_layout.tsx b/packages/app/src/app/_layout.tsx
index d4c88d3ba..10616faf7 100644
--- a/packages/app/src/app/_layout.tsx
+++ b/packages/app/src/app/_layout.tsx
@@ -11,7 +11,8 @@ import { DaemonRegistryProvider, useDaemonRegistry } from "@/contexts/daemon-reg
import { DaemonConnectionsProvider } from "@/contexts/daemon-connections-context";
import { MultiDaemonSessionHost } from "@/components/multi-daemon-session-host";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
-import { useState, type ReactNode, useMemo } from "react";
+import { useState, useEffect, type ReactNode, useMemo } from "react";
+import { Platform } from "react-native";
import { SlidingSidebar } from "@/components/sliding-sidebar";
import { useSidebarStore } from "@/stores/sidebar-store";
import { runOnJS, interpolate, Extrapolation } from "react-native-reanimated";
@@ -46,7 +47,20 @@ interface AppContainerProps {
function AppContainer({ children, selectedAgentId }: AppContainerProps) {
const { theme } = useUnistyles();
- const { isOpen, open } = useSidebarStore();
+ const { isOpen, open, toggle } = useSidebarStore();
+
+ // Cmd+B to toggle sidebar (web only)
+ useEffect(() => {
+ if (Platform.OS !== "web") return;
+ function handleKeyDown(event: KeyboardEvent) {
+ if ((event.metaKey || event.ctrlKey) && event.key === "b") {
+ event.preventDefault();
+ toggle();
+ }
+ }
+ window.addEventListener("keydown", handleKeyDown);
+ return () => window.removeEventListener("keydown", handleKeyDown);
+ }, [toggle]);
const {
translateX,
backdropOpacity,
diff --git a/packages/app/src/components/git-diff-pane.tsx b/packages/app/src/components/git-diff-pane.tsx
index a3bc29e7c..6ebf8ef08 100644
--- a/packages/app/src/components/git-diff-pane.tsx
+++ b/packages/app/src/components/git-diff-pane.tsx
@@ -150,13 +150,21 @@ function DiffFileSection({ file, defaultExpanded = true }: DiffFileSectionProps)
{isExpanded && (
-
- {file.hunks.map((hunk, hunkIndex) =>
- hunk.lines.map((line, lineIndex) => (
-
- ))
- )}
-
+
+
+ {file.hunks.map((hunk, hunkIndex) =>
+ hunk.lines.map((line, lineIndex) => (
+
+ ))
+ )}
+
+
)}
);
@@ -340,6 +348,13 @@ const styles = StyleSheet.create((theme) => ({
borderTopColor: theme.colors.border,
backgroundColor: "#0d1117", // GitHub dark background
},
+ diffContentInner: {
+ flexDirection: "column",
+ },
+ linesContainer: {
+ alignSelf: "flex-start",
+ minWidth: "100%",
+ },
diffLineContainer: {
paddingHorizontal: theme.spacing[3],
paddingVertical: theme.spacing[1],