+
+
+ {translate(
+ 'auto.components.right.sidebar.index.9fffaf17c1',
+ 'Toggle right sidebar ({{value0}})',
+ { value0: rightSidebarShortcut }
+ )}
+
+ {rightSidebarEdgePeekEnabled ? (
+
+ {translate(
+ 'auto.components.right.sidebar.index.edgePeekHint',
+ 'Hover the right edge to peek'
+ )}
+
+ ) : null}
+
) : null
diff --git a/src/renderer/src/components/right-sidebar/right-sidebar-edge-peek-preference.test.ts b/src/renderer/src/components/right-sidebar/right-sidebar-edge-peek-preference.test.ts
new file mode 100644
index 00000000000..bfaae56062c
--- /dev/null
+++ b/src/renderer/src/components/right-sidebar/right-sidebar-edge-peek-preference.test.ts
@@ -0,0 +1,34 @@
+import { describe, expect, it } from 'vitest'
+import {
+ isRightSidebarEdgePeekEnabled,
+ isRightSidebarEdgePeekTipDismissed
+} from './right-sidebar-edge-peek-preference'
+
+describe('isRightSidebarEdgePeekEnabled', () => {
+ it('defaults on when settings are missing or the flag is absent', () => {
+ expect(isRightSidebarEdgePeekEnabled(null)).toBe(true)
+ expect(isRightSidebarEdgePeekEnabled(undefined)).toBe(true)
+ expect(isRightSidebarEdgePeekEnabled({})).toBe(true)
+ })
+
+ it('respects an explicit opt-out', () => {
+ expect(isRightSidebarEdgePeekEnabled({ rightSidebarEdgePeekEnabled: false })).toBe(false)
+ expect(isRightSidebarEdgePeekEnabled({ rightSidebarEdgePeekEnabled: true })).toBe(true)
+ })
+})
+
+describe('isRightSidebarEdgePeekTipDismissed', () => {
+ it('defaults to not dismissed', () => {
+ expect(isRightSidebarEdgePeekTipDismissed(null)).toBe(false)
+ expect(isRightSidebarEdgePeekTipDismissed({})).toBe(false)
+ })
+
+ it('returns true only for an explicit dismiss', () => {
+ expect(isRightSidebarEdgePeekTipDismissed({ rightSidebarEdgePeekTipDismissed: true })).toBe(
+ true
+ )
+ expect(isRightSidebarEdgePeekTipDismissed({ rightSidebarEdgePeekTipDismissed: false })).toBe(
+ false
+ )
+ })
+})
diff --git a/src/renderer/src/components/right-sidebar/right-sidebar-edge-peek-preference.ts b/src/renderer/src/components/right-sidebar/right-sidebar-edge-peek-preference.ts
new file mode 100644
index 00000000000..721dd62910f
--- /dev/null
+++ b/src/renderer/src/components/right-sidebar/right-sidebar-edge-peek-preference.ts
@@ -0,0 +1,14 @@
+import type { GlobalSettings } from '../../../../shared/types'
+
+/** Absent means on: edge peek is default-enabled for legacy profiles. */
+export function isRightSidebarEdgePeekEnabled(
+ settings: Pick