mirror of
https://github.com/davidkaya/aryx.git
synced 2026-07-24 05:28:46 +02:00
Add multi-select mode to the sidebar session list, enabling users to archive, restore, or delete multiple sessions at once. UX: - Ctrl+Click (Cmd+Click on Mac) any session to enter multi-select mode - Animated checkboxes stagger-reveal across all visible sessions - Click to toggle, Shift+Click for range selection - Running sessions are excluded from selection (safety guard) - Floating action bar slides up with count pill, Archive, Delete, Cancel - Batch delete shows a confirmation dialog with hold-to-confirm for 3+ sessions and a scrollable list of session titles - Batch archive shows an undo toast with 5-second auto-dismiss - Escape key or Cancel button exits multi-select mode Backend: - batchSetSessionsArchived IPC: single load/mutate/persist cycle for N sessions instead of N sequential calls - batchDeleteSessions IPC: parallel cleanup of scratchpad dirs and SDK sessions, then single workspace persist Accessibility: - Action bar: role=toolbar, aria-label - Checkboxes: role=checkbox, aria-checked, keyboard-activatable - Selection count: aria-live=polite - Delete dialog: role=alertdialog, aria-modal, focus trap Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
103 lines
4.7 KiB
TypeScript
103 lines
4.7 KiB
TypeScript
export const ipcChannels = {
|
|
describeSidecarCapabilities: 'sidecar:describe-capabilities',
|
|
refreshSidecarCapabilities: 'sidecar:refresh-capabilities',
|
|
loadWorkspace: 'workspace:load',
|
|
addProject: 'workspace:add-project',
|
|
removeProject: 'workspace:remove-project',
|
|
resolveWorkspaceDiscoveredTooling: 'workspace:resolve-discovered-tooling',
|
|
refreshProjectGitContext: 'projects:refresh-git-context',
|
|
getProjectGitDetails: 'projects:get-git-details',
|
|
getProjectGitFilePreview: 'projects:get-git-file-preview',
|
|
rescanProjectConfigs: 'project:rescan-configs',
|
|
rescanProjectCustomization: 'project:rescan-customization',
|
|
resolveProjectDiscoveredTooling: 'project:resolve-discovered-tooling',
|
|
setProjectAgentProfileEnabled: 'project:set-agent-profile-enabled',
|
|
saveWorkflow: 'workflows:save',
|
|
saveWorkflowTemplate: 'workflows:save-template',
|
|
deleteWorkflow: 'workflows:delete',
|
|
listWorkflowReferences: 'workflows:list-references',
|
|
createWorkflowFromTemplate: 'workflows:create-from-template',
|
|
exportWorkflow: 'workflows:export',
|
|
importWorkflow: 'workflows:import',
|
|
createWorkflowSession: 'workflows:create-session',
|
|
setTheme: 'settings:set-theme',
|
|
setTerminalHeight: 'settings:set-terminal-height',
|
|
setNotificationsEnabled: 'settings:set-notifications-enabled',
|
|
setMinimizeToTray: 'settings:set-minimize-to-tray',
|
|
setGitAutoRefreshEnabled: 'settings:set-git-auto-refresh-enabled',
|
|
checkForUpdates: 'app:check-for-updates',
|
|
installUpdate: 'app:install-update',
|
|
saveMcpServer: 'tooling:mcp:save',
|
|
deleteMcpServer: 'tooling:mcp:delete',
|
|
saveLspProfile: 'tooling:lsp:save',
|
|
deleteLspProfile: 'tooling:lsp:delete',
|
|
saveWorkspaceAgent: 'workspace-agents:save',
|
|
deleteWorkspaceAgent: 'workspace-agents:delete',
|
|
describeTerminal: 'terminal:describe',
|
|
createTerminal: 'terminal:create',
|
|
restartTerminal: 'terminal:restart',
|
|
writeTerminal: 'terminal:write',
|
|
resizeTerminal: 'terminal:resize',
|
|
killTerminal: 'terminal:kill',
|
|
updateSessionTooling: 'sessions:update-tooling',
|
|
updateSessionApprovalSettings: 'sessions:update-approval-settings',
|
|
createSession: 'sessions:create',
|
|
duplicateSession: 'sessions:duplicate',
|
|
branchSession: 'sessions:branch',
|
|
setSessionMessagePinned: 'sessions:set-message-pinned',
|
|
renameSession: 'sessions:rename',
|
|
setSessionPinned: 'sessions:set-pinned',
|
|
setSessionArchived: 'sessions:set-archived',
|
|
deleteSession: 'sessions:delete',
|
|
batchSetSessionsArchived: 'sessions:batch-set-archived',
|
|
batchDeleteSessions: 'sessions:batch-delete',
|
|
regenerateSessionMessage: 'sessions:regenerate-message',
|
|
editAndResendSessionMessage: 'sessions:edit-and-resend-message',
|
|
sendSessionMessage: 'sessions:send-message',
|
|
cancelSessionTurn: 'sessions:cancel-turn',
|
|
resolveSessionApproval: 'sessions:resolve-approval',
|
|
resolveSessionUserInput: 'sessions:resolve-user-input',
|
|
setSessionInteractionMode: 'sessions:set-interaction-mode',
|
|
dismissSessionPlanReview: 'sessions:dismiss-plan-review',
|
|
dismissSessionMcpAuth: 'sessions:dismiss-mcp-auth',
|
|
startSessionMcpAuth: 'sessions:start-mcp-auth',
|
|
discardSessionRunGitChanges: 'sessions:discard-run-git-changes',
|
|
suggestProjectGitCommitMessage: 'sessions:suggest-git-commit-message',
|
|
querySessions: 'sessions:query',
|
|
updateSessionModelConfig: 'sessions:update-model-config',
|
|
stageProjectGitFiles: 'git:stage-files',
|
|
unstageProjectGitFiles: 'git:unstage-files',
|
|
commitProjectGitChanges: 'git:commit',
|
|
pushProjectGit: 'git:push',
|
|
fetchProjectGit: 'git:fetch',
|
|
pullProjectGit: 'git:pull',
|
|
createProjectGitBranch: 'git:create-branch',
|
|
switchProjectGitBranch: 'git:switch-branch',
|
|
deleteProjectGitBranch: 'git:delete-branch',
|
|
selectProject: 'selection:project',
|
|
selectSession: 'selection:session',
|
|
openAppDataFolder: 'troubleshooting:open-app-data-folder',
|
|
resetLocalWorkspace: 'troubleshooting:reset-local-workspace',
|
|
terminalData: 'terminal:data',
|
|
terminalExit: 'terminal:exit',
|
|
workspaceUpdated: 'workspace:updated',
|
|
sessionEvent: 'sessions:event',
|
|
updateStatus: 'app:update-status',
|
|
getQuota: 'sidecar:get-quota',
|
|
trayCreateScratchpad: 'tray:create-scratchpad',
|
|
|
|
// Quick Prompt
|
|
quickPromptSend: 'quick-prompt:send',
|
|
quickPromptDiscard: 'quick-prompt:discard',
|
|
quickPromptClose: 'quick-prompt:close',
|
|
quickPromptContinueInAryx: 'quick-prompt:continue-in-aryx',
|
|
quickPromptCancelTurn: 'quick-prompt:cancel-turn',
|
|
quickPromptSetSettings: 'quick-prompt:set-settings',
|
|
quickPromptGetSettings: 'quick-prompt:get-settings',
|
|
quickPromptGetCapabilities: 'quick-prompt:get-capabilities',
|
|
quickPromptSessionCreated: 'quick-prompt:session-created',
|
|
quickPromptSessionEvent: 'quick-prompt:session-event',
|
|
quickPromptShow: 'quick-prompt:show',
|
|
quickPromptHide: 'quick-prompt:hide',
|
|
} as const;
|