diff --git a/packages/ui/src/components/chat/ChatInput.tsx b/packages/ui/src/components/chat/ChatInput.tsx index b5a7235b..7794a030 100644 --- a/packages/ui/src/components/chat/ChatInput.tsx +++ b/packages/ui/src/components/chat/ChatInput.tsx @@ -100,8 +100,9 @@ type DraftPreset = { }; const DRAFT_PRESETS: readonly DraftPreset[] = [ { id: 'explore', icon: 'compass-3', labelKey: 'chat.draftPresets.explore.label', promptKey: 'chat.draftPresets.explore.prompt' }, - { id: 'changes', icon: 'git-branch', labelKey: 'chat.draftPresets.changes.label', promptKey: 'chat.draftPresets.changes.prompt' }, + { id: 'catchup', icon: 'history', labelKey: 'chat.draftPresets.catchup.label', command: '/catch-up' }, { id: 'plan', icon: 'survey', labelKey: 'chat.draftPresets.plan.label', command: '/plan-feature' }, + { id: 'debug', icon: 'bug', labelKey: 'chat.draftPresets.debug.label', command: '/debug' }, { id: 'review', icon: 'search-eye', labelKey: 'chat.draftPresets.review.label', command: '/workspace-review' }, ]; @@ -1122,7 +1123,7 @@ const ChatInputComponent: React.FC = ({ onOpenSettings, scrollTo const availableSkills = useSkillsStore((s) => s.skills); const knownSlashNames = React.useMemo(() => { const names = new Set([ - 'init', 'review', 'undo', 'redo', 'timeline', 'compact', 'summary', 'workspace-review', 'plan-feature', + 'init', 'review', 'undo', 'redo', 'timeline', 'compact', 'summary', 'workspace-review', 'plan-feature', 'catch-up', 'debug', ]); for (const command of availableCommands) names.add(command.name.toLowerCase()); for (const skill of availableSkills) names.add(skill.name.toLowerCase()); @@ -1972,6 +1973,50 @@ const ChatInputComponent: React.FC = ({ onOpenSettings, scrollTo } return; } + else if (commandName === 'catch-up' && (currentSessionId || newSessionDraftOpen)) { + try { + await sessionActions.waitForConnectionOrThrow(); + const visibleText = await renderMagicPrompt('session.catchup.visible'); + const instructionsText = await renderMagicPrompt('session.catchup.instructions'); + await sendMessage( + visibleText, + providerIdToSend, + modelIdToSend, + agentNameToSend, + [], + agentMentionName, + [{ text: instructionsText, synthetic: true }], + variantToSend, + inputMode, + ); + scrollToBottom?.(); + } catch (error) { + toast.error(error instanceof Error ? error.message : t('chat.chatInput.toast.catchUpFailed')); + } + return; + } + else if (commandName === 'debug' && (currentSessionId || newSessionDraftOpen)) { + try { + await sessionActions.waitForConnectionOrThrow(); + const visibleText = await renderMagicPrompt('session.debug.visible'); + const instructionsText = await renderMagicPrompt('session.debug.instructions'); + await sendMessage( + visibleText, + providerIdToSend, + modelIdToSend, + agentNameToSend, + [], + agentMentionName, + [{ text: instructionsText, synthetic: true }], + variantToSend, + inputMode, + ); + scrollToBottom?.(); + } catch (error) { + toast.error(error instanceof Error ? error.message : t('chat.chatInput.toast.debugFailed')); + } + return; + } } const currentSessionDirectory = currentSessionId diff --git a/packages/ui/src/components/chat/CommandAutocomplete.tsx b/packages/ui/src/components/chat/CommandAutocomplete.tsx index d7a89077..0695a9d9 100644 --- a/packages/ui/src/components/chat/CommandAutocomplete.tsx +++ b/packages/ui/src/components/chat/CommandAutocomplete.tsx @@ -156,6 +156,14 @@ export const CommandAutocomplete = React.forwardRef = { { id: 'session.plan.instructions', titleKey: 'settings.magicPrompts.page.block.instructions' }, ], }, + 'session.catchup': { + titleKey: 'settings.magicPrompts.page.group.sessionCatchUp.title', + descriptionKey: 'settings.magicPrompts.page.group.sessionCatchUp.description', + blocks: [ + { id: 'session.catchup.visible', titleKey: 'settings.magicPrompts.page.block.visiblePrompt' }, + { id: 'session.catchup.instructions', titleKey: 'settings.magicPrompts.page.block.instructions' }, + ], + }, + 'session.debug': { + titleKey: 'settings.magicPrompts.page.group.sessionDebug.title', + descriptionKey: 'settings.magicPrompts.page.group.sessionDebug.description', + blocks: [ + { id: 'session.debug.visible', titleKey: 'settings.magicPrompts.page.block.visiblePrompt' }, + { id: 'session.debug.instructions', titleKey: 'settings.magicPrompts.page.block.instructions' }, + ], + }, 'session.fusion': { titleKey: 'settings.magicPrompts.page.group.sessionFusion.title', descriptionKey: 'settings.magicPrompts.page.group.sessionFusion.description', diff --git a/packages/ui/src/components/sections/magic-prompts/MagicPromptsSidebar.tsx b/packages/ui/src/components/sections/magic-prompts/MagicPromptsSidebar.tsx index 60aaec68..57b99895 100644 --- a/packages/ui/src/components/sections/magic-prompts/MagicPromptsSidebar.tsx +++ b/packages/ui/src/components/sections/magic-prompts/MagicPromptsSidebar.tsx @@ -48,6 +48,8 @@ export const MagicPromptsSidebar: React.FC = ({ onItem { id: 'session.summary', titleKey: 'settings.magicPrompts.sidebar.item.sessionSummary' }, { id: 'session.review', titleKey: 'settings.magicPrompts.sidebar.item.sessionWorkspaceReview' }, { id: 'session.plan', titleKey: 'settings.magicPrompts.sidebar.item.sessionFeaturePlan' }, + { id: 'session.catchup', titleKey: 'settings.magicPrompts.sidebar.item.sessionCatchUp' }, + { id: 'session.debug', titleKey: 'settings.magicPrompts.sidebar.item.sessionDebug' }, { id: 'session.fusion', titleKey: 'settings.magicPrompts.sidebar.item.sessionFusion' }, ], }, diff --git a/packages/ui/src/lib/i18n/messages/en.settings.ts b/packages/ui/src/lib/i18n/messages/en.settings.ts index 1e547dd8..279d8b79 100644 --- a/packages/ui/src/lib/i18n/messages/en.settings.ts +++ b/packages/ui/src/lib/i18n/messages/en.settings.ts @@ -224,6 +224,8 @@ export const settingsDict = { 'settings.magicPrompts.sidebar.item.sessionSummary': 'Session Summary', 'settings.magicPrompts.sidebar.item.sessionWorkspaceReview': 'Workspace Review', 'settings.magicPrompts.sidebar.item.sessionFeaturePlan': 'Feature Planning', + 'settings.magicPrompts.sidebar.item.sessionCatchUp': 'Catch Up', + 'settings.magicPrompts.sidebar.item.sessionDebug': 'Debugging', 'settings.magicPrompts.sidebar.item.sessionFusion': 'Fusion', 'settings.remoteInstances.sidebar.title': 'Remote Instances', 'settings.remoteInstances.sidebar.total': 'Total {count}', @@ -1689,6 +1691,10 @@ export const settingsDict = { 'settings.magicPrompts.page.group.sessionWorkspaceReview.description': 'Prompts used by the /workspace-review slash command: visible user message + hidden instructions. Reviews current workspace changes for high-signal issues only.', 'settings.magicPrompts.page.group.sessionFeaturePlan.title': 'Feature Planning', 'settings.magicPrompts.page.group.sessionFeaturePlan.description': 'Prompts used by the /plan-feature slash command: visible user message + hidden instructions. Runs a guided dialogue that researches the code and asks clarifying questions in small batches before producing an implementation plan.', + 'settings.magicPrompts.page.group.sessionCatchUp.title': 'Catch Up', + 'settings.magicPrompts.page.group.sessionCatchUp.description': 'Prompts used by the /catch-up slash command: visible user message + hidden instructions. Inspects git state and branches on it — reconstructs intent from an in-progress diff, checks an open PR\'s review state, or summarizes recent commits.', + 'settings.magicPrompts.page.group.sessionDebug.title': 'Debugging', + 'settings.magicPrompts.page.group.sessionDebug.description': 'Prompts used by the /debug slash command: visible user message + hidden instructions. Runs a guided root-cause investigation — captures the symptom, forms hypotheses, checks them against the code, and confirms the cause before proposing a fix.', 'settings.magicPrompts.page.group.sessionFusion.title': 'Fusion', 'settings.magicPrompts.page.group.sessionFusion.description': 'Prompts used when combining multi-run outputs into one final answer: visible user message + hidden instructions before source results.', 'settings.magicPrompts.page.actions.resetting': 'Resetting...', diff --git a/packages/ui/src/lib/i18n/messages/en.ts b/packages/ui/src/lib/i18n/messages/en.ts index dd4e3115..f03c3746 100644 --- a/packages/ui/src/lib/i18n/messages/en.ts +++ b/packages/ui/src/lib/i18n/messages/en.ts @@ -1455,9 +1455,9 @@ export const dict = { 'chat.emptyState.draftTitleWithProject': 'What are we working on in {project}?', 'chat.draftPresets.explore.label': 'Explore the codebase', 'chat.draftPresets.explore.prompt': 'Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.', - 'chat.draftPresets.changes.label': 'What changed recently', - 'chat.draftPresets.changes.prompt': 'Summarize what changed recently — the latest commits and the current state of this branch.', + 'chat.draftPresets.catchup.label': 'Catch me up', 'chat.draftPresets.plan.label': 'Start feature planning', + 'chat.draftPresets.debug.label': 'Debug an issue', 'chat.draftPresets.review.label': 'Review my changes', 'chat.scrollToBottom.aria': 'Scroll to bottom', 'chat.timeline.relative.justNow': 'just now', @@ -1520,6 +1520,8 @@ export const dict = { 'chat.commandAutocomplete.command.summaryDescription': 'Non-destructive session summary. Optional topic hint after the command.', 'chat.commandAutocomplete.command.workspaceReviewDescription': 'Review current workspace changes for high-signal issues only.', 'chat.commandAutocomplete.command.featurePlanDescription': 'Start a guided, back-and-forth planning session for a new feature.', + 'chat.commandAutocomplete.command.catchUpDescription': 'Re-establish context: what you were doing and where to pick up.', + 'chat.commandAutocomplete.command.debugDescription': 'Guided root-cause investigation for a bug before proposing a fix.', 'chat.commandAutocomplete.badge.skill': 'skill', 'chat.commandAutocomplete.badge.command': 'command', 'chat.commandAutocomplete.badge.system': 'system', @@ -1636,6 +1638,8 @@ export const dict = { 'chat.chatInput.toast.summaryFailed': 'Failed to generate summary', 'chat.chatInput.toast.reviewFailed': 'Failed to review changes', 'chat.chatInput.toast.planFeatureFailed': 'Failed to start feature planning', + 'chat.chatInput.toast.catchUpFailed': 'Failed to catch up', + 'chat.chatInput.toast.debugFailed': 'Failed to start debugging', 'chat.chatInput.toast.attachmentsTooLarge': 'Attachments are too large to send. Please try reducing the number or size of images.', 'chat.chatInput.toast.sendAttachmentsFailed': 'Failed to send attachments. Try fewer files or smaller images.', 'chat.chatInput.toast.messageSendFailed': 'Message failed to send. Attachments restored.', diff --git a/packages/ui/src/lib/i18n/messages/es.settings.ts b/packages/ui/src/lib/i18n/messages/es.settings.ts index f55f6d36..c92563a3 100644 --- a/packages/ui/src/lib/i18n/messages/es.settings.ts +++ b/packages/ui/src/lib/i18n/messages/es.settings.ts @@ -191,6 +191,8 @@ export const settingsDict = { "settings.magicPrompts.sidebar.item.sessionSummary": "Resumen de sesión", "settings.magicPrompts.sidebar.item.sessionWorkspaceReview": "Revisión del espacio de trabajo", "settings.magicPrompts.sidebar.item.sessionFeaturePlan": "Planificación de funciones", + "settings.magicPrompts.sidebar.item.sessionCatchUp": "Ponerse al día", + "settings.magicPrompts.sidebar.item.sessionDebug": "Depuración", "settings.magicPrompts.sidebar.item.sessionFusion": "Fusion", "settings.remoteInstances.sidebar.title": "Instancias remotas", "settings.remoteInstances.sidebar.total": "Total {count}", @@ -1656,6 +1658,10 @@ export const settingsDict = { "settings.magicPrompts.page.group.sessionWorkspaceReview.description": "Prompts usados por el comando /workspace-review: mensaje visible del usuario + instrucciones ocultas. Revisa los cambios actuales del espacio de trabajo solo para problemas de alta señal.", "settings.magicPrompts.page.group.sessionFeaturePlan.title": "Planificación de funciones", "settings.magicPrompts.page.group.sessionFeaturePlan.description": "Prompts usados por el comando /plan-feature: mensaje visible del usuario + instrucciones ocultas. Ejecuta un diálogo guiado que investiga el código y hace preguntas aclaratorias en lotes pequeños antes de producir un plan de implementación.", + "settings.magicPrompts.page.group.sessionCatchUp.title": "Ponerse al día", + "settings.magicPrompts.page.group.sessionCatchUp.description": "Prompts usados por el comando /catch-up: mensaje visible del usuario + instrucciones ocultas. Inspecciona el estado de git y, según él, reconstruye la intención a partir de un diff en curso, revisa el estado de revisión de un PR abierto o resume los commits recientes.", + "settings.magicPrompts.page.group.sessionDebug.title": "Depuración", + "settings.magicPrompts.page.group.sessionDebug.description": "Prompts usados por el comando /debug: mensaje visible del usuario + instrucciones ocultas. Ejecuta una investigación guiada de la causa raíz: captura el síntoma, formula hipótesis, las verifica contra el código y confirma la causa antes de proponer una solución.", "settings.magicPrompts.page.group.sessionFusion.title": "Fusion", "settings.magicPrompts.page.group.sessionFusion.description": "Prompts usados para combinar salidas de multi-run en una respuesta final: mensaje visible del usuario + instrucciones ocultas antes de los resultados fuente.", "settings.magicPrompts.page.actions.resetting": "Restableciendo...", diff --git a/packages/ui/src/lib/i18n/messages/es.ts b/packages/ui/src/lib/i18n/messages/es.ts index 50ca02bf..66b2028b 100644 --- a/packages/ui/src/lib/i18n/messages/es.ts +++ b/packages/ui/src/lib/i18n/messages/es.ts @@ -1421,9 +1421,9 @@ export const dict: Record = { "chat.emptyState.draftTitleWithProject": "What are we working on in {project}?", "chat.draftPresets.explore.label": "Explore the codebase", "chat.draftPresets.explore.prompt": "Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.", - "chat.draftPresets.changes.label": "What changed recently", - "chat.draftPresets.changes.prompt": "Summarize what changed recently — the latest commits and the current state of this branch.", + "chat.draftPresets.catchup.label": "Catch me up", "chat.draftPresets.plan.label": "Start feature planning", + "chat.draftPresets.debug.label": "Debug an issue", "chat.draftPresets.review.label": "Review my changes", "chat.scrollToBottom.aria": "Ir al final", "chat.timeline.relative.justNow": "ahora mismo", @@ -1486,6 +1486,8 @@ export const dict: Record = { "chat.commandAutocomplete.command.summaryDescription": "Resumen no destructivo de la sesión. Pista opcional del tema después del comando.", "chat.commandAutocomplete.command.workspaceReviewDescription": "Revisar los cambios actuales del espacio de trabajo solo para problemas de alto impacto.", "chat.commandAutocomplete.command.featurePlanDescription": "Inicia una sesión de planificación guiada e interactiva para una nueva función.", + "chat.commandAutocomplete.command.catchUpDescription": "Recupera el contexto: qué estabas haciendo y por dónde continuar.", + "chat.commandAutocomplete.command.debugDescription": "Investigación guiada de la causa raíz de un error antes de proponer una solución.", "chat.commandAutocomplete.badge.skill": "habilidad", "chat.commandAutocomplete.badge.command": "comando", "chat.commandAutocomplete.badge.system": "sistema", @@ -1602,6 +1604,8 @@ export const dict: Record = { "chat.chatInput.toast.summaryFailed": "No se pudo generar el resumen", "chat.chatInput.toast.reviewFailed": "No se pudieron revisar los cambios", "chat.chatInput.toast.planFeatureFailed": "No se pudo iniciar la planificación de la función", + "chat.chatInput.toast.catchUpFailed": "No se pudo recuperar el contexto", + "chat.chatInput.toast.debugFailed": "No se pudo iniciar la depuración", "chat.chatInput.toast.attachmentsTooLarge": "Los adjuntos son demasiado grandes para enviar. Intenta reducir la cantidad o el tamaño de las imágenes.", "chat.chatInput.toast.sendAttachmentsFailed": "No se pudieron enviar los adjuntos. Intenta con menos archivos o imágenes más pequeñas.", "chat.chatInput.toast.messageSendFailed": "El mensaje no se pudo enviar. Los adjuntos se restauraron.", diff --git a/packages/ui/src/lib/i18n/messages/ko.settings.ts b/packages/ui/src/lib/i18n/messages/ko.settings.ts index ce10f184..f6a782c4 100644 --- a/packages/ui/src/lib/i18n/messages/ko.settings.ts +++ b/packages/ui/src/lib/i18n/messages/ko.settings.ts @@ -191,6 +191,8 @@ export const settingsDict = { 'settings.magicPrompts.sidebar.item.sessionSummary': '세션 요약', 'settings.magicPrompts.sidebar.item.sessionWorkspaceReview': '워크스페이스 리뷰', 'settings.magicPrompts.sidebar.item.sessionFeaturePlan': '기능 계획', + 'settings.magicPrompts.sidebar.item.sessionCatchUp': '따라잡기', + 'settings.magicPrompts.sidebar.item.sessionDebug': '디버깅', 'settings.magicPrompts.sidebar.item.sessionFusion': 'Fusion', 'settings.remoteInstances.sidebar.title': '원격 인스턴스', 'settings.remoteInstances.sidebar.total': '총 {count}개', @@ -1656,6 +1658,10 @@ export const settingsDict = { 'settings.magicPrompts.page.group.sessionWorkspaceReview.description': '/workspace-review slash command에서 사용하는 프롬프트입니다: 표시 사용자 메시지 + 숨겨진 지침. 현재 workspace 변경 사항에서 중요한 문제만 리뷰합니다.', 'settings.magicPrompts.page.group.sessionFeaturePlan.title': '기능 계획', 'settings.magicPrompts.page.group.sessionFeaturePlan.description': '/plan-feature slash command에서 사용하는 프롬프트입니다: 표시 사용자 메시지 + 숨겨진 지침. 코드를 조사하고 작은 묶음으로 명확화 질문을 한 뒤 구현 계획을 만드는 가이드 대화를 실행합니다.', + 'settings.magicPrompts.page.group.sessionCatchUp.title': '따라잡기', + 'settings.magicPrompts.page.group.sessionCatchUp.description': '/catch-up slash command에서 사용하는 프롬프트입니다: 표시 사용자 메시지 + 숨겨진 지침. git 상태를 확인하고 그에 따라 진행 중인 diff에서 의도를 재구성하거나, 열린 PR의 리뷰 상태를 확인하거나, 최근 커밋을 요약합니다.', + 'settings.magicPrompts.page.group.sessionDebug.title': '디버깅', + 'settings.magicPrompts.page.group.sessionDebug.description': '/debug slash command에서 사용하는 프롬프트입니다: 표시 사용자 메시지 + 숨겨진 지침. 근본 원인 조사를 단계적으로 진행합니다 — 증상을 파악하고 가설을 세워 코드와 대조하며, 수정안을 제시하기 전에 원인을 확정합니다.', 'settings.magicPrompts.page.group.sessionFusion.title': 'Fusion', 'settings.magicPrompts.page.group.sessionFusion.description': 'multi-run 출력을 하나의 최종 답변으로 결합할 때 사용하는 프롬프트입니다: 보이는 사용자 메시지 + 소스 결과 앞의 숨겨진 지침.', 'settings.magicPrompts.page.actions.resetting': '초기화 중...', diff --git a/packages/ui/src/lib/i18n/messages/ko.ts b/packages/ui/src/lib/i18n/messages/ko.ts index 536222b1..295d6f3e 100644 --- a/packages/ui/src/lib/i18n/messages/ko.ts +++ b/packages/ui/src/lib/i18n/messages/ko.ts @@ -1457,9 +1457,9 @@ export const dict: Record = { 'chat.emptyState.draftTitleWithProject': 'What are we working on in {project}?', 'chat.draftPresets.explore.label': 'Explore the codebase', 'chat.draftPresets.explore.prompt': 'Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.', - 'chat.draftPresets.changes.label': 'What changed recently', - 'chat.draftPresets.changes.prompt': 'Summarize what changed recently — the latest commits and the current state of this branch.', + 'chat.draftPresets.catchup.label': 'Catch me up', 'chat.draftPresets.plan.label': 'Start feature planning', + 'chat.draftPresets.debug.label': 'Debug an issue', 'chat.draftPresets.review.label': 'Review my changes', 'chat.scrollToBottom.aria': '맨 아래로 스크롤', 'chat.timeline.relative.justNow': '방금 전', @@ -1522,6 +1522,8 @@ export const dict: Record = { 'chat.commandAutocomplete.command.summaryDescription': '세션 기록을 안전하게 요약합니다. 명령 뒤에 선택적으로 주제 힌트를 넣을 수 있습니다.', 'chat.commandAutocomplete.command.workspaceReviewDescription': '현재 워크스페이스 변경 사항에서 중요한 이슈만 리뷰합니다.', 'chat.commandAutocomplete.command.featurePlanDescription': '새 기능을 위한 대화형 가이드 계획 세션을 시작합니다.', + 'chat.commandAutocomplete.command.catchUpDescription': '맥락을 다시 파악합니다: 무엇을 하고 있었고 어디서 이어서 할지.', + 'chat.commandAutocomplete.command.debugDescription': '수정안을 제시하기 전에 버그의 근본 원인을 단계적으로 조사합니다.', 'chat.commandAutocomplete.badge.skill': '스킬', 'chat.commandAutocomplete.badge.command': '명령', 'chat.commandAutocomplete.badge.system': 'system', @@ -1636,6 +1638,8 @@ export const dict: Record = { 'chat.chatInput.toast.summaryFailed': '요약 생성 실패', 'chat.chatInput.toast.reviewFailed': '변경사항 검토 실패', 'chat.chatInput.toast.planFeatureFailed': '기능 계획을 시작하지 못했습니다', + 'chat.chatInput.toast.catchUpFailed': '컨텍스트를 불러오지 못했습니다', + 'chat.chatInput.toast.debugFailed': '디버깅을 시작하지 못했습니다', 'chat.chatInput.toast.attachmentsTooLarge': '첨부 파일이 너무 커서 보낼 수 없습니다. 이미지 수나 크기를 줄여 보세요.', 'chat.chatInput.toast.sendAttachmentsFailed': '첨부 파일 전송 실패. 파일 수나 이미지 크기를 줄여 보세요.', 'chat.chatInput.toast.messageSendFailed': '메시지 전송에 실패했습니다. 첨부 파일을 복원했습니다.', diff --git a/packages/ui/src/lib/i18n/messages/pl.settings.ts b/packages/ui/src/lib/i18n/messages/pl.settings.ts index ec3fa0b4..0fd30e37 100644 --- a/packages/ui/src/lib/i18n/messages/pl.settings.ts +++ b/packages/ui/src/lib/i18n/messages/pl.settings.ts @@ -281,6 +281,10 @@ export const settingsDict = { 'settings.magicPrompts.page.group.sessionWorkspaceReview.description': 'Prompty używane przez polecenie /workspace-review: widoczna wiadomość użytkownika + ukryte instrukcje. Przegląda zmiany w bieżącym obszarze roboczym tylko pod kątem istotnych problemów.', 'settings.magicPrompts.page.group.sessionFeaturePlan.title': 'Planowanie funkcji', 'settings.magicPrompts.page.group.sessionFeaturePlan.description': 'Prompty używane przez polecenie /plan-feature: widoczna wiadomość użytkownika + ukryte instrukcje. Uruchamia prowadzony dialog, który bada kod i zadaje pytania doprecyzowujące w małych partiach przed utworzeniem planu implementacji.', + 'settings.magicPrompts.page.group.sessionCatchUp.title': 'Nadrobienie kontekstu', + 'settings.magicPrompts.page.group.sessionCatchUp.description': 'Prompty używane przez polecenie /catch-up: widoczna wiadomość użytkownika + ukryte instrukcje. Sprawdza stan git i w zależności od niego — odtwarza zamiar z trwającego diffa, sprawdza stan recenzji otwartego PR-a lub podsumowuje ostatnie commity.', + 'settings.magicPrompts.page.group.sessionDebug.title': 'Debugowanie', + 'settings.magicPrompts.page.group.sessionDebug.description': 'Prompty używane przez polecenie /debug: widoczna wiadomość użytkownika + ukryte instrukcje. Prowadzi badanie pierwotnej przyczyny — rejestruje objaw, formułuje hipotezy, sprawdza je w kodzie i potwierdza przyczynę przed zaproponowaniem poprawki.', 'settings.magicPrompts.page.group.sessionWorkspaceReview.title': 'Przegląd obszaru roboczego', 'settings.magicPrompts.page.group.sessionFusion.title': 'Fusion', 'settings.magicPrompts.page.group.sessionFusion.description': 'Prompty używane do łączenia wyników multi-run w jedną końcową odpowiedź: widoczna wiadomość użytkownika + ukryte instrukcje przed wynikami źródłowymi.', @@ -319,6 +323,8 @@ export const settingsDict = { 'settings.magicPrompts.sidebar.item.sessionSummary': 'Podsumowanie Sesji', 'settings.magicPrompts.sidebar.item.sessionWorkspaceReview': 'Przegląd obszaru roboczego', 'settings.magicPrompts.sidebar.item.sessionFeaturePlan': 'Planowanie funkcji', + 'settings.magicPrompts.sidebar.item.sessionCatchUp': 'Nadrobienie kontekstu', + 'settings.magicPrompts.sidebar.item.sessionDebug': 'Debugowanie', 'settings.magicPrompts.sidebar.item.sessionFusion': 'Fusion', 'settings.magicPrompts.sidebar.title': 'Magiczne Prompty', 'settings.mcp.page.actions.authorize': 'Autoryzuj', diff --git a/packages/ui/src/lib/i18n/messages/pl.ts b/packages/ui/src/lib/i18n/messages/pl.ts index 52c06874..53739144 100644 --- a/packages/ui/src/lib/i18n/messages/pl.ts +++ b/packages/ui/src/lib/i18n/messages/pl.ts @@ -447,9 +447,9 @@ export const dict: Record = { 'chat.emptyState.draftTitleWithProject': 'What are we working on in {project}?', 'chat.draftPresets.explore.label': 'Explore the codebase', 'chat.draftPresets.explore.prompt': 'Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.', - 'chat.draftPresets.changes.label': 'What changed recently', - 'chat.draftPresets.changes.prompt': 'Summarize what changed recently — the latest commits and the current state of this branch.', + 'chat.draftPresets.catchup.label': 'Catch me up', 'chat.draftPresets.plan.label': 'Start feature planning', + 'chat.draftPresets.debug.label': 'Debug an issue', 'chat.draftPresets.review.label': 'Review my changes', 'chat.scrollToBottom.aria': 'Przewiń na dół', 'chat.timeline.relative.justNow': 'przed chwilą', @@ -511,6 +511,8 @@ export const dict: Record = { 'chat.commandAutocomplete.command.summaryDescription': 'Niedestrukcyjne podsumowanie sesji. Opcjonalna wskazówka tematu po poleceniu.', 'chat.commandAutocomplete.command.workspaceReviewDescription': 'Recenzja obecnych zmian w przestrzeni roboczej tylko dla problemów o wysokim sygnale.', 'chat.commandAutocomplete.command.featurePlanDescription': 'Rozpocznij prowadzoną, interaktywną sesję planowania nowej funkcji.', + 'chat.commandAutocomplete.command.catchUpDescription': 'Przywróć kontekst: nad czym pracowałeś i od czego kontynuować.', + 'chat.commandAutocomplete.command.debugDescription': 'Prowadzone badanie pierwotnej przyczyny błędu przed zaproponowaniem poprawki.', 'chat.commandAutocomplete.badge.skill': 'skill', 'chat.commandAutocomplete.badge.command': 'polecenie', 'chat.commandAutocomplete.badge.system': 'system', @@ -917,6 +919,8 @@ export const dict: Record = { 'chat.chatInput.toast.openSessionFirst': 'Najpierw otwórz sesję', 'chat.chatInput.toast.reviewFailed': 'Nie udało się przejrzeć zmian', 'chat.chatInput.toast.planFeatureFailed': 'Nie udało się rozpocząć planowania funkcji', + 'chat.chatInput.toast.catchUpFailed': 'Nie udało się przywrócić kontekstu', + 'chat.chatInput.toast.debugFailed': 'Nie udało się rozpocząć debugowania', 'chat.chatInput.toast.sendAttachmentsFailed': 'Nie udało się wysłać załączników. Spróbuj użyć mniejszej liczby plików lub mniejszych obrazów.', 'chat.chatInput.toast.someFilesSkipped': 'Pominięto niektóre pliki:\n{summary}', 'chat.chatInput.toast.summaryFailed': 'Nie udało się wygenerować podsumowania', diff --git a/packages/ui/src/lib/i18n/messages/pt-BR.settings.ts b/packages/ui/src/lib/i18n/messages/pt-BR.settings.ts index 6fdaf2a4..51c0fba8 100644 --- a/packages/ui/src/lib/i18n/messages/pt-BR.settings.ts +++ b/packages/ui/src/lib/i18n/messages/pt-BR.settings.ts @@ -191,6 +191,8 @@ export const settingsDict = { "settings.magicPrompts.sidebar.item.sessionSummary": "Resumo de sessão", "settings.magicPrompts.sidebar.item.sessionWorkspaceReview": "Revisão do workspace", "settings.magicPrompts.sidebar.item.sessionFeaturePlan": "Planejamento de funcionalidade", + "settings.magicPrompts.sidebar.item.sessionCatchUp": "Retomada de contexto", + "settings.magicPrompts.sidebar.item.sessionDebug": "Depuração", "settings.magicPrompts.sidebar.item.sessionFusion": "Fusion", "settings.remoteInstances.sidebar.title": "Instâncias remotas", "settings.remoteInstances.sidebar.total": "Total {count}", @@ -1656,6 +1658,10 @@ export const settingsDict = { "settings.magicPrompts.page.group.sessionWorkspaceReview.description": "Prompts usados pelo comando /workspace-review: mensagem visível do usuário + instruções ocultas. Revise apenas problemas importantes nas alterações atuais do workspace.", "settings.magicPrompts.page.group.sessionFeaturePlan.title": "Planejamento de funcionalidade", "settings.magicPrompts.page.group.sessionFeaturePlan.description": "Prompts usados pelo comando /plan-feature: mensagem visível do usuário + instruções ocultas. Executa um diálogo guiado que investiga o código e faz perguntas de esclarecimento em pequenos lotes antes de produzir um plano de implementação.", + "settings.magicPrompts.page.group.sessionCatchUp.title": "Retomada de contexto", + "settings.magicPrompts.page.group.sessionCatchUp.description": "Prompts usados pelo comando /catch-up: mensagem visível do usuário + instruções ocultas. Inspeciona o estado do git e, com base nisso, reconstrói a intenção a partir de um diff em andamento, verifica o estado de revisão de um PR aberto ou resume os commits recentes.", + "settings.magicPrompts.page.group.sessionDebug.title": "Depuração", + "settings.magicPrompts.page.group.sessionDebug.description": "Prompts usados pelo comando /debug: mensagem visível do usuário + instruções ocultas. Executa uma investigação guiada da causa raiz: captura o sintoma, formula hipóteses, verifica-as no código e confirma a causa antes de propor uma correção.", "settings.magicPrompts.page.group.sessionFusion.title": "Fusion", "settings.magicPrompts.page.group.sessionFusion.description": "Prompts usados para combinar saídas de multi-run em uma resposta final: mensagem visível do usuário + instruções ocultas antes dos resultados de origem.", "settings.magicPrompts.page.actions.resetting": "Redefinindo...", diff --git a/packages/ui/src/lib/i18n/messages/pt-BR.ts b/packages/ui/src/lib/i18n/messages/pt-BR.ts index 9929f44f..721cd039 100644 --- a/packages/ui/src/lib/i18n/messages/pt-BR.ts +++ b/packages/ui/src/lib/i18n/messages/pt-BR.ts @@ -1421,9 +1421,9 @@ export const dict: Record = { "chat.emptyState.draftTitleWithProject": "What are we working on in {project}?", "chat.draftPresets.explore.label": "Explore the codebase", "chat.draftPresets.explore.prompt": "Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.", - "chat.draftPresets.changes.label": "What changed recently", - "chat.draftPresets.changes.prompt": "Summarize what changed recently — the latest commits and the current state of this branch.", + "chat.draftPresets.catchup.label": "Catch me up", "chat.draftPresets.plan.label": "Start feature planning", + "chat.draftPresets.debug.label": "Debug an issue", "chat.draftPresets.review.label": "Review my changes", "chat.scrollToBottom.aria": "Ir ao final", "chat.timeline.relative.justNow": "agora mesmo", @@ -1486,6 +1486,8 @@ export const dict: Record = { "chat.commandAutocomplete.command.summaryDescription": "Resumo não destrutivo da sessão. Dica opcional do tema após o comando.", "chat.commandAutocomplete.command.workspaceReviewDescription": "Revisar as alterações atuais do workspace apenas para problemas de alto impacto.", "chat.commandAutocomplete.command.featurePlanDescription": "Inicie uma sessão de planejamento guiada e interativa para uma nova funcionalidade.", + "chat.commandAutocomplete.command.catchUpDescription": "Retome o contexto: o que você estava fazendo e por onde continuar.", + "chat.commandAutocomplete.command.debugDescription": "Investigação guiada da causa raiz de um bug antes de propor uma correção.", "chat.commandAutocomplete.badge.skill": "habilidade", "chat.commandAutocomplete.badge.command": "comando", "chat.commandAutocomplete.badge.system": "sistema", @@ -1602,6 +1604,8 @@ export const dict: Record = { "chat.chatInput.toast.summaryFailed": "Não foi possível gerar o resumo", "chat.chatInput.toast.reviewFailed": "Não foi possível revisar as alterações", "chat.chatInput.toast.planFeatureFailed": "Não foi possível iniciar o planejamento da funcionalidade", + "chat.chatInput.toast.catchUpFailed": "Não foi possível retomar o contexto", + "chat.chatInput.toast.debugFailed": "Não foi possível iniciar a depuração", "chat.chatInput.toast.attachmentsTooLarge": "Os anexos são grandes demais para enviar. Tente reduzir a quantidade ou o tamanho das imagens.", "chat.chatInput.toast.sendAttachmentsFailed": "Não foi possível enviar os anexos. Tente com menos arquivos ou imagens menores.", "chat.chatInput.toast.messageSendFailed": "A mensagem não pôde ser enviada. Os anexos foram restaurados.", diff --git a/packages/ui/src/lib/i18n/messages/uk.settings.ts b/packages/ui/src/lib/i18n/messages/uk.settings.ts index 93e69cc1..7781f5a7 100644 --- a/packages/ui/src/lib/i18n/messages/uk.settings.ts +++ b/packages/ui/src/lib/i18n/messages/uk.settings.ts @@ -191,6 +191,8 @@ export const settingsDict = { "settings.magicPrompts.sidebar.item.sessionSummary": "Підсумок сесії", "settings.magicPrompts.sidebar.item.sessionWorkspaceReview": "Огляд робочого простору", "settings.magicPrompts.sidebar.item.sessionFeaturePlan": "Планування фічі", + "settings.magicPrompts.sidebar.item.sessionCatchUp": "Повернення в контекст", + "settings.magicPrompts.sidebar.item.sessionDebug": "Дебаг", "settings.magicPrompts.sidebar.item.sessionFusion": "Fusion", "settings.remoteInstances.sidebar.title": "Віддалені інстанси", "settings.remoteInstances.sidebar.total": "Усього {count}", @@ -1656,6 +1658,10 @@ export const settingsDict = { "settings.magicPrompts.page.group.sessionWorkspaceReview.description": "Промпти, які використовуються командою /workspace-review: видиме повідомлення користувача + приховані інструкції. Переглядає поточні зміни робочого простору лише для проблем із сильним сигналом.", "settings.magicPrompts.page.group.sessionFeaturePlan.title": "Планування фічі", "settings.magicPrompts.page.group.sessionFeaturePlan.description": "Промпти, які використовуються командою /plan-feature: видиме повідомлення користувача + приховані інструкції. Запускає кероване діалогове планування — досліджує код і ставить уточнюючі запитання невеликими батчами, перш ніж скласти план імплементації.", + "settings.magicPrompts.page.group.sessionCatchUp.title": "Повернення в контекст", + "settings.magicPrompts.page.group.sessionCatchUp.description": "Промпти, які використовуються командою /catch-up: видиме повідомлення користувача + приховані інструкції. Перевіряє стан git і залежно від нього — відновлює задум із незавершеного diff, перевіряє стан рев'ю відкритого PR або підсумовує останні коміти.", + "settings.magicPrompts.page.group.sessionDebug.title": "Дебаг", + "settings.magicPrompts.page.group.sessionDebug.description": "Промпти, які використовуються командою /debug: видиме повідомлення користувача + приховані інструкції. Веде кероване дослідження першопричини — фіксує симптом, формує гіпотези, перевіряє їх по коду й підтверджує причину перш ніж пропонувати фікс.", "settings.magicPrompts.page.group.sessionFusion.title": "Fusion", "settings.magicPrompts.page.group.sessionFusion.description": "Промпти для обʼєднання результатів multi-run в одну фінальну відповідь: видиме повідомлення користувача + приховані інструкції перед результатами джерел.", "settings.magicPrompts.page.actions.resetting": "Скидання...", diff --git a/packages/ui/src/lib/i18n/messages/uk.ts b/packages/ui/src/lib/i18n/messages/uk.ts index e91fd972..663a5b8d 100644 --- a/packages/ui/src/lib/i18n/messages/uk.ts +++ b/packages/ui/src/lib/i18n/messages/uk.ts @@ -1421,9 +1421,9 @@ export const dict: Record = { "chat.emptyState.draftTitleWithProject": "Над чим працюємо в {project}?", "chat.draftPresets.explore.label": "Огляд кодової бази", "chat.draftPresets.explore.prompt": "Зроби високорівневий огляд цієї кодової бази — архітектуру, основні модулі та як вони пов'язані між собою.", - "chat.draftPresets.changes.label": "Що нещодавно змінилось", - "chat.draftPresets.changes.prompt": "Підсумуй, що нещодавно змінилось — останні коміти та поточний стан цієї гілки.", + "chat.draftPresets.catchup.label": "Повернутись у контекст", "chat.draftPresets.plan.label": "Розпочати планування фічі", + "chat.draftPresets.debug.label": "Дебаг проблеми", "chat.draftPresets.review.label": "Переглянути мої зміни", "chat.scrollToBottom.aria": "Прокрутити вниз", "chat.timeline.relative.justNow": "щойно", @@ -1486,6 +1486,8 @@ export const dict: Record = { "chat.commandAutocomplete.command.summaryDescription": "Неруйнівний підсумок сесії. Після команди можна додати тему.", "chat.commandAutocomplete.command.workspaceReviewDescription": "Перегляньте поточні зміни в робочому середовищі лише для проблем із сильним сигналом.", "chat.commandAutocomplete.command.featurePlanDescription": "Розпочати покрокову діалогову сесію планування нової фічі.", + "chat.commandAutocomplete.command.catchUpDescription": "Повернутись у контекст: над чим працювали і звідки продовжити.", + "chat.commandAutocomplete.command.debugDescription": "Кероване дослідження першопричини бага перед тим, як пропонувати фікс.", "chat.commandAutocomplete.badge.skill": "навичка", "chat.commandAutocomplete.badge.command": "команда", "chat.commandAutocomplete.badge.system": "система", @@ -1602,6 +1604,8 @@ export const dict: Record = { "chat.chatInput.toast.summaryFailed": "Не вдалося створити підсумок", "chat.chatInput.toast.reviewFailed": "Не вдалося переглянути зміни", "chat.chatInput.toast.planFeatureFailed": "Не вдалося розпочати планування фічі", + "chat.chatInput.toast.catchUpFailed": "Не вдалося зібрати контекст", + "chat.chatInput.toast.debugFailed": "Не вдалося розпочати дебаг", "chat.chatInput.toast.attachmentsTooLarge": "Вкладені файли завеликі для надсилання. Спробуйте зменшити кількість або розмір зображень.", "chat.chatInput.toast.sendAttachmentsFailed": "Не вдалося надіслати вкладення. Спробуйте зменшити кількість файлів або зображень.", "chat.chatInput.toast.messageSendFailed": "Не вдалося надіслати повідомлення. Вкладення відновлено.", diff --git a/packages/ui/src/lib/i18n/messages/zh-CN.settings.ts b/packages/ui/src/lib/i18n/messages/zh-CN.settings.ts index 985e1c82..d1ee7d8b 100644 --- a/packages/ui/src/lib/i18n/messages/zh-CN.settings.ts +++ b/packages/ui/src/lib/i18n/messages/zh-CN.settings.ts @@ -191,6 +191,8 @@ export const settingsDict = { 'settings.magicPrompts.sidebar.item.sessionSummary': '会话总结', 'settings.magicPrompts.sidebar.item.sessionWorkspaceReview': '工作区审查', 'settings.magicPrompts.sidebar.item.sessionFeaturePlan': '功能规划', + 'settings.magicPrompts.sidebar.item.sessionCatchUp': '快速回顾', + 'settings.magicPrompts.sidebar.item.sessionDebug': '调试', 'settings.magicPrompts.sidebar.item.sessionFusion': '融合', 'settings.remoteInstances.sidebar.title': '远程实例', 'settings.remoteInstances.sidebar.total': '总计 {count}', @@ -1656,6 +1658,10 @@ export const settingsDict = { 'settings.magicPrompts.page.group.sessionWorkspaceReview.description': '由 /workspace-review 斜杠命令使用的提示词:可见用户消息 + 隐藏说明。仅审查当前工作区的高信号问题。', 'settings.magicPrompts.page.group.sessionFeaturePlan.title': '功能规划', 'settings.magicPrompts.page.group.sessionFeaturePlan.description': '由 /plan-feature 斜杠命令使用的提示词:可见用户消息 + 隐藏说明。运行引导式对话,先调研代码并分小批提出澄清问题,然后生成实现计划。', + 'settings.magicPrompts.page.group.sessionCatchUp.title': '快速回顾', + 'settings.magicPrompts.page.group.sessionCatchUp.description': '由 /catch-up 斜杠命令使用的提示词:可见用户消息 + 隐藏说明。检查 git 状态并据此处理——从进行中的 diff 还原意图、查看已开启 PR 的评审状态,或总结最近的提交。', + 'settings.magicPrompts.page.group.sessionDebug.title': '调试', + 'settings.magicPrompts.page.group.sessionDebug.description': '由 /debug 斜杠命令使用的提示词:可见用户消息 + 隐藏说明。引导式排查根本原因——记录症状、提出假设、对照代码验证,并在提出修复方案前确认原因。', 'settings.magicPrompts.page.group.sessionFusion.title': '融合', 'settings.magicPrompts.page.group.sessionFusion.description': '用于将多运行输出融合为一个最终答案的提示词:可见用户消息 + 源结果前的隐藏说明。', 'settings.magicPrompts.page.actions.resetting': '重置中...', diff --git a/packages/ui/src/lib/i18n/messages/zh-CN.ts b/packages/ui/src/lib/i18n/messages/zh-CN.ts index 0691bb87..f3afbd93 100644 --- a/packages/ui/src/lib/i18n/messages/zh-CN.ts +++ b/packages/ui/src/lib/i18n/messages/zh-CN.ts @@ -1421,9 +1421,9 @@ export const dict: Record = { 'chat.emptyState.draftTitleWithProject': 'What are we working on in {project}?', 'chat.draftPresets.explore.label': 'Explore the codebase', 'chat.draftPresets.explore.prompt': 'Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.', - 'chat.draftPresets.changes.label': 'What changed recently', - 'chat.draftPresets.changes.prompt': 'Summarize what changed recently — the latest commits and the current state of this branch.', + 'chat.draftPresets.catchup.label': 'Catch me up', 'chat.draftPresets.plan.label': 'Start feature planning', + 'chat.draftPresets.debug.label': 'Debug an issue', 'chat.draftPresets.review.label': 'Review my changes', 'chat.scrollToBottom.aria': '滚动到底部', 'chat.timeline.relative.justNow': '刚刚', @@ -1486,6 +1486,8 @@ export const dict: Record = { 'chat.commandAutocomplete.command.summaryDescription': '非破坏性会话总结。命令后可选填主题提示。', 'chat.commandAutocomplete.command.workspaceReviewDescription': '仅审查当前工作区中高价值的问题。', 'chat.commandAutocomplete.command.featurePlanDescription': '为新功能开始一次引导式的来回规划会话。', + 'chat.commandAutocomplete.command.catchUpDescription': '重新进入上下文:你之前在做什么、从哪里继续。', + 'chat.commandAutocomplete.command.debugDescription': '在提出修复方案前,引导式地排查 bug 的根本原因。', 'chat.commandAutocomplete.badge.skill': '技能', 'chat.commandAutocomplete.badge.command': '命令', 'chat.commandAutocomplete.badge.system': '系统', @@ -1602,6 +1604,8 @@ export const dict: Record = { 'chat.chatInput.toast.summaryFailed': '生成总结失败', 'chat.chatInput.toast.reviewFailed': '审查变更失败', 'chat.chatInput.toast.planFeatureFailed': '无法开始功能规划', + 'chat.chatInput.toast.catchUpFailed': '无法获取上下文', + 'chat.chatInput.toast.debugFailed': '无法开始调试', 'chat.chatInput.toast.attachmentsTooLarge': '附件过大,无法发送。请减少图片数量或大小。', 'chat.chatInput.toast.sendAttachmentsFailed': '发送附件失败。请尝试更少文件或更小图片。', 'chat.chatInput.toast.messageSendFailed': '消息发送失败,附件已恢复。', diff --git a/packages/ui/src/lib/i18n/messages/zh-TW.settings.ts b/packages/ui/src/lib/i18n/messages/zh-TW.settings.ts index 39cdf2f3..96ae03af 100644 --- a/packages/ui/src/lib/i18n/messages/zh-TW.settings.ts +++ b/packages/ui/src/lib/i18n/messages/zh-TW.settings.ts @@ -188,6 +188,8 @@ 'settings.magicPrompts.sidebar.item.sessionSummary': '工作階段總結', 'settings.magicPrompts.sidebar.item.sessionWorkspaceReview': '工作區審查', 'settings.magicPrompts.sidebar.item.sessionFeaturePlan': '功能規劃', + 'settings.magicPrompts.sidebar.item.sessionCatchUp': '快速回顧', + 'settings.magicPrompts.sidebar.item.sessionDebug': '除錯', 'settings.magicPrompts.sidebar.item.sessionFusion': 'Fusion', 'settings.remoteInstances.sidebar.title': '遠端執行個體', 'settings.remoteInstances.sidebar.total': '總計 {count}', @@ -1577,6 +1579,10 @@ 'settings.magicPrompts.page.group.sessionWorkspaceReview.description': '由 /workspace-review 斜線命令使用的提示詞:可見使用者訊息 + 隱藏說明。僅審查目前工作區中的高訊號問題。', 'settings.magicPrompts.page.group.sessionFeaturePlan.title': '功能規劃', 'settings.magicPrompts.page.group.sessionFeaturePlan.description': '由 /plan-feature 斜線命令使用的提示詞:可見使用者訊息 + 隱藏說明。執行引導式對話,先調研程式碼並分小批提出釐清問題,然後產生實作計畫。', + 'settings.magicPrompts.page.group.sessionCatchUp.title': '快速回顧', + 'settings.magicPrompts.page.group.sessionCatchUp.description': '由 /catch-up 斜線命令使用的提示詞:可見使用者訊息 + 隱藏說明。檢查 git 狀態並據此處理——從進行中的 diff 還原意圖、查看已開啟 PR 的審查狀態,或總結最近的提交。', + 'settings.magicPrompts.page.group.sessionDebug.title': '除錯', + 'settings.magicPrompts.page.group.sessionDebug.description': '由 /debug 斜線命令使用的提示詞:可見使用者訊息 + 隱藏說明。引導式排查根本原因——記錄症狀、提出假設、對照程式碼驗證,並在提出修復方案前確認原因。', 'settings.magicPrompts.page.group.sessionFusion.title': 'Fusion', 'settings.magicPrompts.page.group.sessionFusion.description': '用於將 multi-run 輸出合併為一個最終答案的提示詞:可見使用者訊息 + 結果前的隱藏說明。', 'settings.magicPrompts.page.actions.resetting': '重設中...', diff --git a/packages/ui/src/lib/i18n/messages/zh-TW.ts b/packages/ui/src/lib/i18n/messages/zh-TW.ts index 53e12ccd..ec348d08 100644 --- a/packages/ui/src/lib/i18n/messages/zh-TW.ts +++ b/packages/ui/src/lib/i18n/messages/zh-TW.ts @@ -1418,9 +1418,9 @@ export const dict: Record = { 'chat.emptyState.draftTitleWithProject': 'What are we working on in {project}?', 'chat.draftPresets.explore.label': 'Explore the codebase', 'chat.draftPresets.explore.prompt': 'Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.', - 'chat.draftPresets.changes.label': 'What changed recently', - 'chat.draftPresets.changes.prompt': 'Summarize what changed recently — the latest commits and the current state of this branch.', + 'chat.draftPresets.catchup.label': 'Catch me up', 'chat.draftPresets.plan.label': 'Start feature planning', + 'chat.draftPresets.debug.label': 'Debug an issue', 'chat.draftPresets.review.label': 'Review my changes', 'chat.scrollToBottom.aria': '捲動到底部', 'chat.timeline.relative.justNow': '剛剛', @@ -1483,6 +1483,8 @@ export const dict: Record = { 'chat.commandAutocomplete.command.summaryDescription': '非破壞性會話總結。命令後可選填主題提示。', 'chat.commandAutocomplete.command.workspaceReviewDescription': '僅審查目前工作區中高價值的問題。', 'chat.commandAutocomplete.command.featurePlanDescription': '為新功能開始一次引導式的來回規劃工作階段。', + 'chat.commandAutocomplete.command.catchUpDescription': '重新進入上下文:你之前在做什麼、從哪裡繼續。', + 'chat.commandAutocomplete.command.debugDescription': '在提出修復方案前,引導式地排查 bug 的根本原因。', 'chat.commandAutocomplete.badge.skill': 'Skills', 'chat.commandAutocomplete.badge.command': '命令', 'chat.commandAutocomplete.badge.system': '系統', @@ -1599,6 +1601,8 @@ export const dict: Record = { 'chat.chatInput.toast.summaryFailed': '生成總結失敗', 'chat.chatInput.toast.reviewFailed': '審查變更失敗', 'chat.chatInput.toast.planFeatureFailed': '無法開始功能規劃', + 'chat.chatInput.toast.catchUpFailed': '無法取得上下文', + 'chat.chatInput.toast.debugFailed': '無法開始除錯', 'chat.chatInput.toast.attachmentsTooLarge': '附件過大,無法傳送。請減少圖片數量或大小。', 'chat.chatInput.toast.sendAttachmentsFailed': '傳送附件失敗。請嘗試更少檔案或更小圖片。', 'chat.chatInput.toast.messageSendFailed': '訊息傳送失敗,附件已恢復。', diff --git a/packages/ui/src/lib/magicPrompts.ts b/packages/ui/src/lib/magicPrompts.ts index 47caf2af..c9ac3083 100644 --- a/packages/ui/src/lib/magicPrompts.ts +++ b/packages/ui/src/lib/magicPrompts.ts @@ -29,6 +29,10 @@ export type MagicPromptId = | 'session.review.instructions' | 'session.plan.visible' | 'session.plan.instructions' + | 'session.catchup.visible' + | 'session.catchup.instructions' + | 'session.debug.visible' + | 'session.debug.instructions' | 'session.fusion.visible' | 'session.fusion.instructions'; @@ -602,6 +606,62 @@ Run this as a dialogue, not a one-shot answer. 6. When everything is settled, produce the final implementation plan: a clear, ordered breakdown of the work, the files and areas affected, the decisions that were made (and why), known risks, and any remaining assumptions flagged explicitly. The plan must reflect the user's actual answers — never fill gaps with guesses. +Respond in the same language the user uses.`, + }, + { + id: 'session.catchup.visible', + title: 'Catch Up Visible Prompt', + group: 'Session', + description: 'Visible user message sent by the /catch-up command.', + template: 'Catch me up on where this project is right now.', + }, + { + id: 'session.catchup.instructions', + title: 'Catch Up Instructions', + group: 'Session', + description: 'Hidden instructions attached to the /catch-up command. Inspects git state and branches on it: in-progress diff, open PR review state, or recent commits.', + template: `The user is returning to this project and wants to quickly re-establish context — what they were doing and where to pick up. Investigate the actual repository state first, then orient them. Do not assume; check. + +Start by inspecting git state: the current branch, uncommitted changes (status and diff), and recent commits. + +Then follow whichever case applies: + +1. Working tree has uncommitted changes → They were mid-task. Read the diff, reconstruct what they were working on and the intent behind it, identify what looks finished versus in-progress, and point out where they likely stopped. End with a concrete suggestion for the next step to resume. + +2. Working tree is clean AND the current branch has an open pull request → Check the PR's status: review state, requested changes, comments, and any unresolved threads or failing checks. Surface what is still open and what they can continue from. If the tools to inspect the PR are unavailable, say so briefly and fall back to case 3. + +3. Working tree is clean and there is no open PR → Give a brief overview of the latest commits: what has been done recently and the apparent direction, so they can decide what to do next. + +Keep it short and scannable — a quick orientation, not an exhaustive report. Lead with the single most useful "here is where you are" sentence, then the supporting detail. + +Respond in the same language the user uses.`, + }, + { + id: 'session.debug.visible', + title: 'Debugging Visible Prompt', + group: 'Session', + description: 'Visible user message sent by the /debug command.', + template: 'I want to debug an issue.', + }, + { + id: 'session.debug.instructions', + title: 'Debugging Instructions', + group: 'Session', + description: 'Hidden instructions attached to the /debug command. Runs a guided root-cause investigation before proposing a fix.', + template: `The user wants help debugging an issue. Drive this as a focused root-cause investigation — not a plan, and not an immediate fix. + +1. Get the symptom. When the user describes the problem, capture exactly what is observed versus expected — error messages, stack traces, failing behavior, and when it started. If a key detail is missing to even begin, ask for it briefly. + +2. Form hypotheses. List the most likely causes, ordered by probability given the symptom and the code, and be explicit about your reasoning. + +3. Investigate to confirm or rule out. Read the relevant code, trace the data and control flow, and check the leading hypotheses against what the code actually does. Prefer evidence from the code over speculation. + +4. Ask only what you need. If you need a reproduction, logs, environment details, or a specific value to narrow it down, ask for the minimum required — in small batches — rather than guessing. + +5. Identify the root cause. Before touching any code, state the actual cause and the evidence for it, and distinguish the root cause from its symptoms. + +6. Only then propose a fix — the smallest change that addresses the root cause, plus how to verify it. Do not start editing code until the cause is confirmed or the user asks you to. + Respond in the same language the user uses.`, }, {