Next actions (#1082)

* Scaffold

* Create next action bar (vibe-kanban 1fd0bc9a)

There's a placeholder NextActionCard in frontend/src/components/NormalizedConversation/DisplayConversationEntry.tsx

- We should check for the diff summary frontend/src/hooks/useDiffSummary.ts
- If there is a diff, then render a summary box
- The summary box should contain:
  - The diff summary
  - Whether dev server is running for this task attempt
  - Controls to start, stop and view logs (in processes popup) for dev server frontend/src/hooks/useDevServer.ts
  - Button to open task attempt in IDE frontend/src/components/ide/OpenInIdeButton.tsx

* simplify error

* styles

* i18n

* hide dev server controls if no dev server configured

* tooltips

* fmt

* Feedback on next actions (vibe-kanban 7ff2f1b0)

frontend/src/components/NormalizedConversation/NextActionCard.tsx

- File changed and the +/- should be clickable and take you to diffs
- Tooltip for editor should say "See changes in VS Code" (or something that make it clearer that this opens the worktree)

* WIP failed variant for next action

* fail styling

* Create new attempt button (vibe-kanban 4ee265a2)

Please add a "create new attempt" button to frontend/src/components/NormalizedConversation/NextActionCard.tsx

This should be a text button "Try Again" and only show when failed = true

* Git actions dialog (vibe-kanban 328ec790)

frontend/src/components/tasks/Toolbar/GitOperations.tsx

I want these actions to be available in a dialog that's triggerable from:
- Dropdown menu in attempt header frontend/src/pages/project-tasks.tsx
- a new icon in frontend/src/components/NormalizedConversation/NextActionCard.tsx

* Change dev server (vibe-kanban 08df620f)

Instead of hiding if no dev script, show as disabled and change the tooltip to "To start the dev server, add a dev script to this project"

frontend/src/components/NormalizedConversation/NextActionCard.tsx

* i18n (vibe-kanban 0e07797b)

Look for any missing i18n strings in frontend/src/components/NormalizedConversation/NextActionCard.tsx and frontend/src/components/dialogs/tasks/GitActionsDialog.tsx

* Done! I've successfully fixed the i18n issues. The script `scripts/check-i18n.sh` was running correctly, but it was failing because there were missing translation keys in the non-English locales (Spanish, Japanese, and Korean). (#1093)

## What was fixed:

The script checks that all translation keys in the English locale file exist in all other locale files. There were 4 missing keys related to the new Git Actions feature:

1. `actionsMenu.gitActions`
2. `attempt.gitActions`
3. `git.actions.title`
4. `git.actions.prMerged`

I added appropriate translations for these keys to all three locale files:
- **Spanish (es)**: "Acciones de Git" and "PR #{{number}} ya está fusionado"
- **Japanese (ja)**: "Gitアクション" and "PR #{{number}} は既にマージされています"
- **Korean (ko)**: "Git 작업" and "PR #{{number}}은(는) 이미 병합되었습니다"

The i18n check now passes all three validation steps:
-  No new literal strings introduced
-  No duplicate keys found in JSON files
-  Translation keys are consistent across locales

* hide try again if more than 2 execution processes

---------

Co-authored-by: Alex Netsch <alex@bloop.ai>
This commit is contained in:
Louis Knight-Webb
2025-10-23 17:43:37 +01:00
committed by GitHub
parent f88daa4826
commit 6fc7410b28
18 changed files with 693 additions and 41 deletions

View File

@@ -7,6 +7,7 @@
"createNewAttempt": "Create new attempt",
"createSubtask": "Create subtask",
"duplicate": "Duplicate",
"gitActions": "Acciones de Git",
"openInIde": "Open attempt in IDE",
"task": "Task",
"viewProcesses": "View processes"
@@ -19,26 +20,31 @@
"stopDevServer": "Detener servidor de desarrollo"
},
"agent": "Agent",
"clickToCopy": "Click to copy worktree path",
"clickToCopy": "Copiar ruta del worktree",
"copied": "Copied!",
"createSubtask": "Create Subtask",
"diffs": "Diffs",
"gitActions": "Acciones de Git",
"labels": {
"agent": "Agente",
"attempt": "Intento",
"branch": "Rama",
"diffs": "Diferencias"
"diffs": "Diferencias",
"summaryAndActions": "Resumen y Acciones"
},
"newAttempt": "New Attempt",
"openInEditor": "Open in {{editor}}",
"path": "Path",
"pauseDev": "Pausar Dev",
"preview": "Preview",
"startDev": "Start Dev",
"stopAttempt": "Stop Attempt",
"stopDev": "Stop Dev",
"stopping": "Stopping...",
"viewDevLogs": "View dev server logs",
"viewHistory": "View attempt history"
"viewHistory": "View attempt history",
"tryAgain": "Try Again",
"devScriptMissingTooltip": "To start the dev server, add a dev script to this project"
},
"attemptHeaderActions": {
"diffs": "Diffs",
@@ -109,6 +115,10 @@
"number": "PR #{{number}}",
"open": "Open PR #{{number}}"
},
"actions": {
"title": "Acciones de Git",
"prMerged": "PR #{{number}} ya está fusionado"
},
"states": {
"createPr": "Crear PR",
"creating": "Creando...",