-
@@ -981,7 +983,7 @@ async function addDecision() {
- ⚠ Требуют ручного решения
+ {{ t('projectView.manual_escalations_warn') }}
({{ manualEscalationTasks.length }})
@@ -1003,7 +1005,7 @@ async function addDecision() {
-
No tasks.
+
{{ t('projectView.no_tasks') }}
✕
- Loading phases...
+
No research phases. Use "New Project" to start a research workflow.
@@ -1224,7 +1226,7 @@ async function addDecision() {
@@ -1432,7 +1434,7 @@ async function addDecision() {
{{ linkFormError }}
+ class="px-3 py-1.5 text-sm text-gray-400 hover:text-gray-200">{{ t('common.cancel') }}
diff --git a/web/frontend/src/views/SettingsView.vue b/web/frontend/src/views/SettingsView.vue
index eaeec8e..42a91ff 100644
--- a/web/frontend/src/views/SettingsView.vue
+++ b/web/frontend/src/views/SettingsView.vue
@@ -1,7 +1,10 @@
- Loading...
+ {{ t('taskDetail.loading') }}
{{ error }}
@@ -422,7 +438,7 @@ async function saveEdit() {
- ⚠ Требует ручного решения
+ {{ t('taskDetail.requires_manual') }}
— эскалация из
@@ -432,15 +448,15 @@ async function saveEdit() {
{{ task.title }}
{{ task.brief.description }}
-
Автопилот не смог выполнить это автоматически. Примите меры вручную и нажмите «Решить вручную».
+
{{ t('taskDetail.autopilot_failed') }}
⚠
-
--dangerously-skip-permissions использовался в этой задаче
-
Агент выполнял команды с обходом проверок разрешений. Проверьте pipeline-шаги и сделанные изменения.
+
{{ t('taskDetail.dangerously_skipped') }}
+
{{ t('taskDetail.dangerously_skipped_hint') }}
@@ -448,7 +464,7 @@ async function saveEdit() {
Brief: {{ JSON.stringify(task.brief) }}
-
Критерии приёмки
+
{{ t('taskDetail.acceptance_criteria') }}
{{ task.acceptance_criteria }}
@@ -462,8 +478,8 @@ async function saveEdit() {
- Pipeline
- running...
+ {{ t('taskDetail.pipeline') }}
+ {{ t('taskDetail.running') }}
@@ -493,7 +509,7 @@ async function saveEdit() {
- No pipeline steps yet.
+ {{ t('taskDetail.no_pipeline') }}
@@ -516,7 +532,7 @@ async function saveEdit() {
{{ parsedSelectedOutput.verdict }}
- ↓ подробнее
+ {{ t('taskDetail.more_details') }}
{{ parsedSelectedOutput.details }}
@@ -542,7 +558,7 @@ async function saveEdit() {
-
Вложения
+
{{ t('taskDetail.attachments') }}
@@ -552,22 +568,22 @@ async function saveEdit() {
- Автопилот активен
+ {{ t('taskDetail.autopilot_active') }}
- ✓ Approve
+ {{ t('taskDetail.approve_task') }}
- 🔄 Revise
+ {{ t('taskDetail.revise_task') }}
- ✗ Reject
+ {{ t('taskDetail.reject_task') }}
- ✎ Edit
+ {{ t('taskDetail.edit') }}
- {{ (polling || pipelineStarting) ? 'Pipeline running...' : '▶ Run Pipeline' }}
+ {{ (polling || pipelineStarting) ? t('taskDetail.pipeline_running') : t('taskDetail.run_pipeline') }}
+
+
+
+ {{ followupLoading ? t('taskDetail.generating_followup') : t('taskDetail.create_followup') }}
- {{ resolvingManually ? 'Сохраняем...' : '✓ Решить вручную' }}
+ {{ resolvingManually ? t('taskDetail.resolving') : t('taskDetail.resolve_manually') }}
- {{ deploying ? 'Deploying...' : '🚀 Deploy' }}
+ {{ deploying ? t('taskDetail.deploying') : t('taskDetail.deploy') }}
+
+
+
+
+
+
Создано {{ followupResults.length }} follow-up задач:
+
+
+ {{ f.id }} {{ f.title }}
+
+
+
+ {{ t('common.close') }}
@@ -611,9 +649,9 @@ async function saveEdit() {
⚠ Claude CLI requires login
-
Откройте терминал и выполните:
+
{{ t('taskDetail.terminal_login_hint') }}
claude login
-
После входа повторите запуск pipeline.
+
{{ t('taskDetail.login_after_hint') }}
✕
@@ -624,7 +662,7 @@ async function saveEdit() {
:class="deployResult.overall_success !== false && deployResult.success ? 'border-teal-800 bg-teal-950/30 text-teal-300' : 'border-red-800 bg-red-950/30 text-red-300'">
- {{ deployResult.overall_success !== false && deployResult.success ? 'Deploy succeeded' : 'Deploy failed' }}
+ {{ deployResult.overall_success !== false && deployResult.success ? t('taskDetail.deploy_succeeded') : t('taskDetail.deploy_failed') }}
{{ deployResult.duration_seconds }}s
x
@@ -650,7 +688,7 @@ async function saveEdit() {
-
Зависимые проекты:
+
{{ t('taskDetail.dependent_projects') }}
ok
{{ dep }}
@@ -704,9 +742,9 @@ async function saveEdit() {
Create follow-up tasks from pipeline results
Optionally record a decision:
-
-
@@ -728,14 +766,14 @@ async function saveEdit() {
-
+
@@ -744,30 +782,30 @@ async function saveEdit() {
diff --git a/web/frontend/vite.config.ts b/web/frontend/vite.config.ts
index abcdfd5..186393b 100644
--- a/web/frontend/vite.config.ts
+++ b/web/frontend/vite.config.ts
@@ -12,5 +12,6 @@ export default defineConfig({
test: {
environment: 'jsdom',
globals: true,
+ setupFiles: ['./src/__tests__/vitest-setup.ts'],
},
})