diff --git a/mobile/app/terminal-settings.tsx b/mobile/app/terminal-settings.tsx
index be519d2d5..abcf324a8 100644
--- a/mobile/app/terminal-settings.tsx
+++ b/mobile/app/terminal-settings.tsx
@@ -153,16 +153,13 @@ export default function TerminalSettingsScreen() {
Terminal
-
+ WHEN YOU LEAVE THE APP
- While you're using a terminal on your phone, Orca shrinks it to fit your
- screen. When you close the app or switch away, this controls whether it stays at
- phone size (so interactive CLI tools don't reflow) or resizes back to your
- desktop. You can always tap Restore on the terminal banner to resize it manually.
+ While you're using a terminal on your phone, Orca shrinks it to fit your screen. When
+ you close the app or switch away, this controls whether it stays at phone size (so
+ interactive CLI tools don't reflow) or resizes back to your desktop. You can always
+ tap Restore on the terminal banner to resize it manually.
{hosts.length === 0 ? (
diff --git a/src/main/runtime/mobile-subscribe-integration.test.ts b/src/main/runtime/mobile-subscribe-integration.test.ts
index f40b616cd..ffb6d2e1c 100644
--- a/src/main/runtime/mobile-subscribe-integration.test.ts
+++ b/src/main/runtime/mobile-subscribe-integration.test.ts
@@ -742,10 +742,7 @@ describe('mobile subscribe integration', () => {
rows: 20
})
expect(runtime.isMobileSubscriberActive('pty-1'), `iter ${i}: no subscribers`).toBe(false)
- expect(
- runtime.getTerminalFitOverride('pty-1'),
- `iter ${i}: override held`
- ).not.toBeNull()
+ expect(runtime.getTerminalFitOverride('pty-1'), `iter ${i}: override held`).not.toBeNull()
// Desktop clicks Restore — held-override branch.
const ok = await runtime.reclaimTerminalForDesktop('pty-1')
@@ -754,10 +751,7 @@ describe('mobile subscribe integration', () => {
cols: 150,
rows: 40
})
- expect(
- runtime.getTerminalFitOverride('pty-1'),
- `iter ${i}: override cleared`
- ).toBeNull()
+ expect(runtime.getTerminalFitOverride('pty-1'), `iter ${i}: override cleared`).toBeNull()
}
})
@@ -778,10 +772,7 @@ describe('mobile subscribe integration', () => {
cols: 150,
rows: 40
})
- expect(
- runtime.getTerminalFitOverride('pty-1'),
- `iter ${i}: override cleared`
- ).toBeNull()
+ expect(runtime.getTerminalFitOverride('pty-1'), `iter ${i}: override cleared`).toBeNull()
}
})
diff --git a/src/main/runtime/orca-runtime.ts b/src/main/runtime/orca-runtime.ts
index ed6cfb719..779f502a6 100644
--- a/src/main/runtime/orca-runtime.ts
+++ b/src/main/runtime/orca-runtime.ts
@@ -2631,11 +2631,7 @@ export class OrcaRuntimeService {
// hidden tab on desktop, container went 0×0 → 1782×1195) reports
// different dims and is the right baseline to remember.
const activeOverride = this.terminalFitOverrides.get(ptyId)
- if (
- activeOverride &&
- activeOverride.cols === cols &&
- activeOverride.rows === rows
- ) {
+ if (activeOverride && activeOverride.cols === cols && activeOverride.rows === rows) {
return
}
this.refreshRendererGeometry(ptyId, cols, rows)
diff --git a/src/renderer/src/assets/main.css b/src/renderer/src/assets/main.css
index 9a3c01c59..375ee3a46 100644
--- a/src/renderer/src/assets/main.css
+++ b/src/renderer/src/assets/main.css
@@ -445,7 +445,9 @@
border: none;
color: var(--muted-foreground);
cursor: pointer;
- transition: background 100ms, color 100ms;
+ transition:
+ background 100ms,
+ color 100ms;
}
.window-controls-btn:hover {
diff --git a/src/renderer/src/components/right-sidebar/SourceControl.tsx b/src/renderer/src/components/right-sidebar/SourceControl.tsx
index bff1c0e57..170c02e0b 100644
--- a/src/renderer/src/components/right-sidebar/SourceControl.tsx
+++ b/src/renderer/src/components/right-sidebar/SourceControl.tsx
@@ -23,6 +23,7 @@ import {
GitPullRequestArrow,
MessageSquare,
Pencil,
+ Send,
Trash,
TriangleAlert,
CircleCheck,
@@ -79,6 +80,8 @@ import {
} from '@/components/ui/dialog'
import { BaseRefPicker } from '@/components/settings/BaseRefPicker'
import { formatDiffComment, formatDiffComments } from '@/lib/diff-comments-format'
+import { QuickLaunchAgentMenuItems } from '@/components/tab-bar/QuickLaunchButton'
+import { focusTerminalTabSurface } from '@/lib/focus-terminal-tab-surface'
import {
notifyEditorExternalFileChange,
requestEditorSaveQuiesce
@@ -180,6 +183,9 @@ function SourceControlInner(): React.JSX.Element {
const commitInFlightRef = useRef>({})
const activeWorktree = useActiveWorktree()
const activeWorktreeId = useAppStore((s) => s.activeWorktreeId)
+ const activeGroupId = useAppStore((s) =>
+ activeWorktreeId ? s.activeGroupIdByWorktree[activeWorktreeId] : undefined
+ )
const worktreeMap = useWorktreeMap()
const rightSidebarTab = useAppStore((s) => s.rightSidebarTab)
const activeRepo = useRepoById(activeWorktree?.repoId ?? null)
@@ -229,6 +235,10 @@ function SourceControlInner(): React.JSX.Element {
}
return map
}, [diffCommentsForActive])
+ const diffCommentsPrompt = useMemo(
+ () => formatDiffComments(diffCommentsForActive),
+ [diffCommentsForActive]
+ )
const [diffCommentsExpanded, setDiffCommentsExpanded] = useState(false)
const [diffCommentsCopied, setDiffCommentsCopied] = useState(false)
@@ -236,15 +246,14 @@ function SourceControlInner(): React.JSX.Element {
if (diffCommentsForActive.length === 0) {
return
}
- const text = formatDiffComments(diffCommentsForActive)
try {
- await window.api.ui.writeClipboardText(text)
+ await window.api.ui.writeClipboardText(diffCommentsPrompt)
setDiffCommentsCopied(true)
} catch {
// Why: swallow — clipboard write can fail when the window isn't focused.
// No dedicated error surface is warranted for a best-effort copy action.
}
- }, [diffCommentsForActive])
+ }, [diffCommentsForActive, diffCommentsPrompt])
// Why: auto-dismiss the "copied" indicator so the button returns to its
// default icon after a brief confirmation window.
@@ -1268,6 +1277,35 @@ function SourceControlInner(): React.JSX.Element {
)}
+
+
+
+
+
+
+
+
+
+ Send notes to a new agent
+
+
+
+
+
+
+
{diffCommentCount > 0 && (
diff --git a/src/renderer/src/components/settings/MobilePane.tsx b/src/renderer/src/components/settings/MobilePane.tsx
index 4ccbac921..f1b667732 100644
--- a/src/renderer/src/components/settings/MobilePane.tsx
+++ b/src/renderer/src/components/settings/MobilePane.tsx
@@ -309,9 +309,9 @@ export function MobilePane(): React.JSX.Element {
While you're using a terminal on your phone, Orca shrinks it to fit your phone
- screen. When you close the app or switch away, this controls whether it stays at
- phone size (so interactive CLI tools don't reflow) or resizes back to your
- desktop. You can always click Restore on the terminal banner to resize it manually.
+ screen. When you close the app or switch away, this controls whether it stays at phone
+ size (so interactive CLI tools don't reflow) or resizes back to your desktop. You can
+ always click Restore on the terminal banner to resize it manually.