feat(desktop): open any chat in its own window (#43219)
Pops a session into a standalone, focused window for side-by-side work. A secondary window loads the renderer at the session route with a ?win=secondary flag (ahead of the HashRouter '#'); it drops the global sidebar plus the install/onboarding overlays and renders a single chat, sharing the one local gateway over WS (no backend duplication). The main process keys windows by sessionId so re-opening focuses the existing one and self-cleans on close. Open it via: - ⌘-click (mac) / ⌃-click (win/linux) a sidebar session — the universal "open in new window" gesture. Archive moves to the ⋯ / right-click menus only, off the easy-to-misfire modifier-click. - "New window" in the session ⋯ and context menus (link-external icon, i18n'd across en/ja/zh/zh-hant). A standalone window has no left rail, so AppShell treats its edge as uncovered and applies the titlebar inset — the chat title clears the macOS traffic lights instead of hiding behind them. Co-authored-by: tim404x <tim404x@users.noreply.github.com>
This commit is contained in:
@@ -1084,6 +1084,7 @@ export const en: Translations = {
|
||||
export: 'Export',
|
||||
rename: 'Rename',
|
||||
archive: 'Archive',
|
||||
newWindow: 'New window',
|
||||
copyIdFailed: 'Could not copy session ID',
|
||||
actionsFor: title => `Actions for ${title}`,
|
||||
sessionActions: 'Session actions',
|
||||
|
||||
@@ -1218,6 +1218,7 @@ export const ja = defineLocale({
|
||||
export: 'エクスポート',
|
||||
rename: '名前を変更',
|
||||
archive: 'アーカイブ',
|
||||
newWindow: '新しいウィンドウ',
|
||||
copyIdFailed: 'セッション ID をコピーできませんでした',
|
||||
actionsFor: title => `${title} のアクション`,
|
||||
sessionActions: 'セッションアクション',
|
||||
|
||||
@@ -832,6 +832,7 @@ export interface Translations {
|
||||
export: string
|
||||
rename: string
|
||||
archive: string
|
||||
newWindow: string
|
||||
copyIdFailed: string
|
||||
actionsFor: (title: string) => string
|
||||
sessionActions: string
|
||||
|
||||
@@ -1184,6 +1184,7 @@ export const zhHant = defineLocale({
|
||||
export: '匯出',
|
||||
rename: '重新命名',
|
||||
archive: '封存',
|
||||
newWindow: '新視窗',
|
||||
copyIdFailed: '無法複製工作階段 ID',
|
||||
actionsFor: title => `${title} 的動作`,
|
||||
sessionActions: '工作階段動作',
|
||||
|
||||
@@ -1271,6 +1271,7 @@ export const zh: Translations = {
|
||||
export: '导出',
|
||||
rename: '重命名',
|
||||
archive: '归档',
|
||||
newWindow: '新窗口',
|
||||
copyIdFailed: '无法复制会话 ID',
|
||||
actionsFor: title => `${title} 的操作`,
|
||||
sessionActions: '会话操作',
|
||||
|
||||
Reference in New Issue
Block a user