feat(ui): expose desktop session actions in header
Add a dedicated desktop header menu for the active session while keeping recent-session switching available when the sidebar is closed. Match inline rename behavior with the sidebar and expose rename, copy ID, share, export, archive, and delete actions with localized feedback. Automatically copy newly created share links, keep share/unshare state synchronized across live and global stores, and normalize stale upstream unshare responses so the UI immediately reflects successful unsharing. Require Markdown exports to load every available message page before formatting the conversation. Abort incomplete root exports, retain explicit child-session skip warnings, and guard complete-history pagination against failures and cursor cycles.
This commit is contained in:
@@ -476,6 +476,10 @@ export const dict: Record<I18nKey, string> = {
|
||||
"sessions.sidebar.project.actions.edit": "Редагувати",
|
||||
"sessions.sidebar.project.actions.newDraftSession": "Нова чернетка сесії",
|
||||
"sessions.sidebar.session.menu.rename": "Перейменувати",
|
||||
"sessions.sidebar.session.menu.copyId": "Копіювати ID сесії",
|
||||
"sessions.sidebar.session.copyId.success": "ID сесії скопійовано",
|
||||
"sessions.sidebar.session.copyId.error": "Не вдалося скопіювати ID сесії",
|
||||
"header.sessionActions.openAria": "Відкрити дії із сесією",
|
||||
"sessions.sidebar.session.rename.save": "Зберегти назву сесії",
|
||||
"sessions.sidebar.session.rename.cancel": "Скасувати перейменування сесії",
|
||||
"sessions.sidebar.session.menu.unpin": "Відкріпити сесія",
|
||||
@@ -498,6 +502,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"sessions.sidebar.session.menu.label": "Меню сесії",
|
||||
"sessions.sidebar.session.untitled": "Сесія без назви",
|
||||
"sessions.sidebar.session.export.nothingToExport": "Нічого для експорту",
|
||||
"sessions.sidebar.session.export.failedLoadHistory": "Не вдалося завантажити повну історію сесії",
|
||||
"sessions.sidebar.session.export.success": "Сесія експортовано",
|
||||
"sessions.sidebar.session.export.failedRevealPath": "Не вдалося відкрити шлях",
|
||||
"sessions.sidebar.session.export.untitledSubagent": "Під-агент без назви",
|
||||
@@ -553,7 +558,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate": "Ця дія назавжди видаляє сесії {count} з {dateLabel}.",
|
||||
"sessions.sidebar.dialogs.sessionList.more": "+{count} більше",
|
||||
"sessions.sidebar.session.share.successTitle": "Сесією поділилися",
|
||||
"sessions.sidebar.session.share.successDescription": "Ви можете скопіювати посилання з меню.",
|
||||
"sessions.sidebar.session.share.successDescription": "Посилання для поширення скопійовано в буфер обміну.",
|
||||
"sessions.sidebar.session.share.error": "Не вдалося поділитися сесією",
|
||||
"sessions.sidebar.session.share.copyUrlError": "Не вдалося скопіювати URL",
|
||||
"sessions.sidebar.session.unshare.success": "Спільний доступ до сесій закрито",
|
||||
|
||||
Reference in New Issue
Block a user