feat(dashboard): success/failure edge authoring with cycle guard and interpreter-only banner

This commit is contained in:
gsxdsm
2026-06-04 19:35:34 -07:00
parent 297a00d3de
commit ffc4d8a6ed
22 changed files with 1570 additions and 1270 deletions

View File

@@ -6112,6 +6112,12 @@
"switchToPlainText": "Switch to plain text",
"yes": "Yes"
},
"taskFields": {
"moreFields": "Additional fields",
"orphaned": "Orphaned fields",
"saveFailed": "Failed to save field",
"unset": "—"
},
"taskForm": {
"addDependencies": "Add dependencies",
"attachHint": "You can also paste images or drag & drop",
@@ -6734,8 +6740,8 @@
"optionColor": "Option color",
"optionLabel": "Option label",
"optionN": "Option {{n}}",
"optionValue": "Option value",
"options": "Options",
"optionValue": "Option value",
"placement": "Placement",
"placementCard": "Card badge",
"placementDetail": "Detail (inline)",
@@ -6754,6 +6760,8 @@
"codeNote": "Runs sandboxed TypeScript. Syntax is validated at save.",
"codeSource": "Source (TypeScript)",
"codeTimeout": "Timeout (ms)",
"cycleBlocked": "That connection would create a cycle — only rework edges inside a for-each template may loop back",
"edgeCondition": "Condition",
"edgeConditionLabel": "Condition: {{condition}}",
"edgeInspector": "Edge",
"edgeNoVerdict": "— success (no verdict) —",
@@ -6775,6 +6783,7 @@
"foreachWorktree": "Per-step worktree",
"gateBlocks": "Gate (blocks)",
"gateMode": "Gate mode",
"interpreterOnly": "This workflow branches, so it runs on the graph interpreter — it can't compile to the linear step engine, but it will still run.",
"joinAll": "All branches",
"joinAny": "Any branch",
"joinMode": "Join mode",
@@ -6795,14 +6804,7 @@
"reviewPlan": "Plan review",
"reviewType": "Review type",
"splitNote": "Branches run concurrently from this node. Execute and merge seams are not allowed inside a branch.",
"stepExecuteLabel": "Step execute",
"summaryAwaitInput": "Waits for user input",
"summaryCodeDefault": "TypeScript",
"summaryGateAdvisory": "Advisory",
"summaryGateBlocks": "Gate (blocks)",
"summaryHoldRelease": "Release: {{release}}",
"summaryNotConfigured": "Not configured",
"summaryReviewType": "{{type}} review"
"stepExecuteLabel": "Step execute"
},
"workflows": {
"duplicateToCustomize": "Duplicate to customize",
@@ -6833,11 +6835,5 @@
"installRequestTitle": "Worktrunk install request",
"sha256": "SHA-256",
"version": "Version"
},
"taskFields": {
"unset": "—",
"moreFields": "Additional fields",
"orphaned": "Orphaned fields",
"saveFailed": "Failed to save field"
}
}

View File

@@ -1,9 +1,4 @@
{
"actions": {
"cancel": "Cancel",
"close": "Close",
"save": "Save"
},
"agents": {
"ratings": {
"trendDeclining": "↓ Declining",
@@ -34,7 +29,6 @@
"minutesAgo_other": "{{count}}m ago"
}
},
"archive": "Archive",
"board": {
"rejection": {
"capacityExhausted": "That column is at capacity. Try again when a slot frees up.",
@@ -44,7 +38,6 @@
"workflowMismatch": "Drag can't move a card between workflows. Use the workflow switcher instead."
}
},
"cancel": "Cancel",
"chat": {
"failedToGetResponse": "Failed to get response",
"failureReferenceId": "ID",
@@ -54,25 +47,15 @@
"openMailboxMessage": "Open mailbox message",
"toolCallArgsPrefix": "args",
"toolCallResultPrefix": "result",
"toolCallsCount_one": "{{count}} tool calls",
"toolCallsCount_other": "{{count}} tool calls",
"toolCallsHeader": "Tool calls",
"toolCallStatusCompleted": "completed",
"toolCallStatusError": "error",
"toolCallStatusErrors": "errors",
"toolCallStatusRunning": "running",
"toolCallsCount_one": "{{count}} tool calls",
"toolCallsCount_other": "{{count}} tool calls",
"toolCallsHeader": "Tool calls",
"viewFailureDetails": "View failure details"
},
"close": "Close",
"columns": {
"archived": "Archived",
"done": "Done",
"in-progress": "In Progress",
"in-review": "In Review",
"todo": "Todo",
"triage": "Planning"
},
"delete": "Delete",
"health": {
"anomaly": {
"duplicateActiveId": "Duplicate active task ID",
@@ -110,13 +93,6 @@
"modelSetToDefault": "{{label}} model set to default"
}
},
"nodeStatus": {
"connecting": "Connecting",
"error": "Error",
"offline": "Offline",
"online": "Online",
"unknown": "Unknown"
},
"nodes": {
"auth": {
"differ": "Auth credentials differ",
@@ -137,7 +113,13 @@
"stopped": "Stopped"
}
},
"refresh": "Refresh",
"nodeStatus": {
"connecting": "Connecting",
"error": "Error",
"offline": "Offline",
"online": "Online",
"unknown": "Unknown"
},
"research": {
"providerGitHub": "GitHub",
"providerLlmSynthesis": "LLM Synthesis",
@@ -145,7 +127,6 @@
"providerPageFetch": "Page Fetch",
"providerWebSearch": "Web Search"
},
"retry": "Retry",
"routing": {
"policyLabel": {
"block": "Block execution",
@@ -205,7 +186,6 @@
"zai": "GLM models by Zhipu AI — strong multilingual support"
}
},
"skip": "Skip",
"taskForm": {
"nodeStatusConnecting": "Connecting",
"nodeStatusError": "Error",
@@ -220,7 +200,6 @@
"refreshSourceInitialLoad": "Initial load",
"refreshSourceManual": "Manual"
},
"tryAgain": "Try Again",
"workflow": {
"postMerge": "Post-merge",
"preMerge": "Pre-merge",
@@ -230,5 +209,14 @@
"statusRunning": "Running…",
"statusSkipped": "Skipped",
"waitingForOutput": "Waiting for agent output…"
},
"workflowNodes": {
"summaryAwaitInput": "Waits for user input",
"summaryCodeDefault": "TypeScript",
"summaryGateAdvisory": "Advisory",
"summaryGateBlocks": "Gate (blocks)",
"summaryHoldRelease": "Release: {{release}}",
"summaryNotConfigured": "Not configured",
"summaryReviewType": "{{type}} review"
}
}

View File

@@ -6112,6 +6112,12 @@
"switchToPlainText": "Cambiar a texto sin formato",
"yes": "Sí"
},
"taskFields": {
"moreFields": "Campos adicionales",
"orphaned": "Campos huérfanos",
"saveFailed": "No se pudo guardar el campo",
"unset": "—"
},
"taskForm": {
"addDependencies": "Agregar dependencias",
"attachHint": "También puedes pegar imágenes o arrastrar y soltar",
@@ -6715,11 +6721,47 @@
"unplacedCount_one": "",
"unplacedCount_other": ""
},
"workflowFields": {
"add": "Agregar campo",
"addOption": "Agregar opción",
"badge": "Mostrar como insignia",
"default": "Predeterminado",
"defaultLabel": "Valor predeterminado",
"defaultTrue": "Activado por defecto",
"duplicateId": "Ya existe un campo con ese id",
"editId": "Editar id",
"empty": "Aún no hay campos personalizados. Agrega un campo para ampliar el formulario y las tarjetas de la tarea.",
"idLabel": "Id del campo",
"idWarn": "Cambiar el id descarta los valores almacenados con el id anterior (quitar + agregar).",
"nameLabel": "Nombre del campo",
"newFieldName": "Nuevo campo",
"newOptionLabel": "Opción 1",
"noDefault": "— ninguno —",
"optionColor": "Color de la opción",
"optionLabel": "Etiqueta de la opción",
"optionN": "Opción {{n}}",
"options": "Opciones",
"optionValue": "Valor de la opción",
"placement": "Ubicación",
"placementCard": "Insignia de tarjeta",
"placementDetail": "Detalle (en línea)",
"placementSection": "Sección de detalle",
"readOnlyHint": "Los flujos de trabajo integrados son de solo lectura: duplica para editar",
"remove": "Quitar campo",
"removeOption": "Quitar opción",
"required": "Obligatorio",
"title": "Campos",
"typeLabel": "Tipo",
"widget": "Control",
"widgetDefault": "Predeterminado"
},
"workflowNodes": {
"advisory": "",
"codeNote": "Ejecuta TypeScript en un entorno aislado. La sintaxis se valida al guardar.",
"codeSource": "Origen (TypeScript)",
"codeTimeout": "Tiempo de espera (ms)",
"cycleBlocked": "",
"edgeCondition": "",
"edgeConditionLabel": "Condición: {{condition}}",
"edgeInspector": "Conexión",
"edgeNoVerdict": "— éxito (sin veredicto) —",
@@ -6741,6 +6783,7 @@
"foreachWorktree": "Árbol de trabajo por paso",
"gateBlocks": "Compuerta (bloquea)",
"gateMode": "Modo de compuerta",
"interpreterOnly": "",
"joinAll": "Todas las ramas",
"joinAny": "Cualquier rama",
"joinMode": "Modo de unión",
@@ -6761,14 +6804,7 @@
"reviewPlan": "Plan review",
"reviewType": "Review type",
"splitNote": "Las ramas se ejecutan de forma concurrente desde este nodo. No se permiten uniones de ejecución y fusión dentro de una rama.",
"stepExecuteLabel": "Step execute",
"summaryAwaitInput": "",
"summaryCodeDefault": "",
"summaryGateAdvisory": "",
"summaryGateBlocks": "",
"summaryHoldRelease": "",
"summaryNotConfigured": "",
"summaryReviewType": ""
"stepExecuteLabel": "Step execute"
},
"workflows": {
"duplicateToCustomize": "",
@@ -6799,45 +6835,5 @@
"installRequestTitle": "Solicitud de instalación de Worktrunk",
"sha256": "SHA-256",
"version": "Versión"
},
"taskFields": {
"unset": "—",
"moreFields": "Campos adicionales",
"orphaned": "Campos huérfanos",
"saveFailed": "No se pudo guardar el campo"
},
"workflowFields": {
"add": "Agregar campo",
"addOption": "Agregar opción",
"badge": "Mostrar como insignia",
"default": "Predeterminado",
"defaultLabel": "Valor predeterminado",
"defaultTrue": "Activado por defecto",
"duplicateId": "Ya existe un campo con ese id",
"editId": "Editar id",
"empty": "Aún no hay campos personalizados. Agrega un campo para ampliar el formulario y las tarjetas de la tarea.",
"idLabel": "Id del campo",
"idWarn": "Cambiar el id descarta los valores almacenados con el id anterior (quitar + agregar).",
"nameLabel": "Nombre del campo",
"newFieldName": "Nuevo campo",
"newOptionLabel": "Opción 1",
"noDefault": "— ninguno —",
"optionColor": "Color de la opción",
"optionLabel": "Etiqueta de la opción",
"optionN": "Opción {{n}}",
"optionValue": "Valor de la opción",
"options": "Opciones",
"placement": "Ubicación",
"placementCard": "Insignia de tarjeta",
"placementDetail": "Detalle (en línea)",
"placementSection": "Sección de detalle",
"readOnlyHint": "Los flujos de trabajo integrados son de solo lectura: duplica para editar",
"remove": "Quitar campo",
"removeOption": "Quitar opción",
"required": "Obligatorio",
"title": "Campos",
"typeLabel": "Tipo",
"widget": "Control",
"widgetDefault": "Predeterminado"
}
}

View File

@@ -1,9 +1,4 @@
{
"actions": {
"cancel": "Cancelar",
"close": "Cerrar",
"save": "Guardar"
},
"agents": {
"ratings": {
"trendDeclining": "",
@@ -34,7 +29,6 @@
"minutesAgo_other": ""
}
},
"archive": "Archivar",
"board": {
"rejection": {
"capacityExhausted": "",
@@ -44,7 +38,6 @@
"workflowMismatch": ""
}
},
"cancel": "Cancelar",
"chat": {
"failedToGetResponse": "",
"failureReferenceId": "",
@@ -54,25 +47,15 @@
"openMailboxMessage": "",
"toolCallArgsPrefix": "",
"toolCallResultPrefix": "",
"toolCallsCount_one": "",
"toolCallsCount_other": "",
"toolCallsHeader": "",
"toolCallStatusCompleted": "",
"toolCallStatusError": "",
"toolCallStatusErrors": "",
"toolCallStatusRunning": "",
"toolCallsCount_one": "",
"toolCallsCount_other": "",
"toolCallsHeader": "",
"viewFailureDetails": ""
},
"close": "Cerrar",
"columns": {
"archived": "Archivado",
"done": "Hecho",
"in-progress": "En progreso",
"in-review": "En revisión",
"todo": "Por hacer",
"triage": "Planificación"
},
"delete": "Eliminar",
"health": {
"anomaly": {
"duplicateActiveId": "",
@@ -110,13 +93,6 @@
"modelSetToDefault": ""
}
},
"nodeStatus": {
"connecting": "",
"error": "",
"offline": "",
"online": "",
"unknown": ""
},
"nodes": {
"auth": {
"differ": "",
@@ -137,7 +113,13 @@
"stopped": ""
}
},
"refresh": "Actualizar",
"nodeStatus": {
"connecting": "",
"error": "",
"offline": "",
"online": "",
"unknown": ""
},
"research": {
"providerGitHub": "",
"providerLlmSynthesis": "",
@@ -145,7 +127,6 @@
"providerPageFetch": "",
"providerWebSearch": ""
},
"retry": "Reintentar",
"routing": {
"policyLabel": {
"block": "",
@@ -205,7 +186,6 @@
"zai": ""
}
},
"skip": "Omitir",
"taskForm": {
"nodeStatusConnecting": "",
"nodeStatusError": "",
@@ -220,7 +200,6 @@
"refreshSourceInitialLoad": "",
"refreshSourceManual": ""
},
"tryAgain": "Reintentar",
"workflow": {
"postMerge": "",
"preMerge": "",
@@ -230,5 +209,14 @@
"statusRunning": "",
"statusSkipped": "",
"waitingForOutput": ""
},
"workflowNodes": {
"summaryAwaitInput": "",
"summaryCodeDefault": "",
"summaryGateAdvisory": "",
"summaryGateBlocks": "",
"summaryHoldRelease": "",
"summaryNotConfigured": "",
"summaryReviewType": ""
}
}

View File

@@ -6112,6 +6112,12 @@
"switchToPlainText": "Basculer vers du texte brut",
"yes": "Oui"
},
"taskFields": {
"moreFields": "Champs supplémentaires",
"orphaned": "Champs orphelins",
"saveFailed": "Échec de l'enregistrement du champ",
"unset": "—"
},
"taskForm": {
"addDependencies": "Ajouter des dépendances",
"attachHint": "Vous pouvez aussi coller des images ou les glisser-déposer",
@@ -6715,11 +6721,47 @@
"unplacedCount_one": "",
"unplacedCount_other": ""
},
"workflowFields": {
"add": "Ajouter un champ",
"addOption": "Ajouter une option",
"badge": "Afficher comme badge",
"default": "Par défaut",
"defaultLabel": "Valeur par défaut",
"defaultTrue": "Activé par défaut",
"duplicateId": "Un champ avec cet id existe déjà",
"editId": "Modifier l'id",
"empty": "Aucun champ personnalisé pour l'instant. Ajoutez un champ pour étendre le formulaire et les cartes de la tâche.",
"idLabel": "Id du champ",
"idWarn": "Modifier l'id supprime les valeurs stockées sous l'ancien id (retirer + ajouter).",
"nameLabel": "Nom du champ",
"newFieldName": "Nouveau champ",
"newOptionLabel": "Option 1",
"noDefault": "— aucun —",
"optionColor": "Couleur de l'option",
"optionLabel": "Libellé de l'option",
"optionN": "Option {{n}}",
"options": "Options",
"optionValue": "Valeur de l'option",
"placement": "Emplacement",
"placementCard": "Badge de carte",
"placementDetail": "Détail (en ligne)",
"placementSection": "Section de détail",
"readOnlyHint": "Les flux de travail intégrés sont en lecture seule — dupliquez pour modifier",
"remove": "Retirer le champ",
"removeOption": "Retirer l'option",
"required": "Obligatoire",
"title": "Champs",
"typeLabel": "Type",
"widget": "Composant",
"widgetDefault": "Par défaut"
},
"workflowNodes": {
"advisory": "",
"codeNote": "Exécute du TypeScript en bac à sable. La syntaxe est validée à l’enregistrement.",
"codeSource": "Source (TypeScript)",
"codeTimeout": "Délai d’expiration (ms)",
"cycleBlocked": "",
"edgeCondition": "",
"edgeConditionLabel": "Condition : {{condition}}",
"edgeInspector": "Lien",
"edgeNoVerdict": "— succès (aucun verdict) —",
@@ -6741,6 +6783,7 @@
"foreachWorktree": "Arbre de travail par étape",
"gateBlocks": "Barrière (bloque)",
"gateMode": "Mode de barrière",
"interpreterOnly": "",
"joinAll": "Toutes les branches",
"joinAny": "N’importe quelle branche",
"joinMode": "Mode de jointure",
@@ -6761,14 +6804,7 @@
"reviewPlan": "Plan review",
"reviewType": "Review type",
"splitNote": "Les branches s’exécutent simultanément depuis ce nœud. Les jointures d’exécution et de fusion ne sont pas autorisées dans une branche.",
"stepExecuteLabel": "Step execute",
"summaryAwaitInput": "",
"summaryCodeDefault": "",
"summaryGateAdvisory": "",
"summaryGateBlocks": "",
"summaryHoldRelease": "",
"summaryNotConfigured": "",
"summaryReviewType": ""
"stepExecuteLabel": "Step execute"
},
"workflows": {
"duplicateToCustomize": "",
@@ -6799,45 +6835,5 @@
"installRequestTitle": "Demande d'installation de Worktrunk",
"sha256": "SHA-256",
"version": "Version"
},
"taskFields": {
"unset": "—",
"moreFields": "Champs supplémentaires",
"orphaned": "Champs orphelins",
"saveFailed": "Échec de l'enregistrement du champ"
},
"workflowFields": {
"add": "Ajouter un champ",
"addOption": "Ajouter une option",
"badge": "Afficher comme badge",
"default": "Par défaut",
"defaultLabel": "Valeur par défaut",
"defaultTrue": "Activé par défaut",
"duplicateId": "Un champ avec cet id existe déjà",
"editId": "Modifier l'id",
"empty": "Aucun champ personnalisé pour l'instant. Ajoutez un champ pour étendre le formulaire et les cartes de la tâche.",
"idLabel": "Id du champ",
"idWarn": "Modifier l'id supprime les valeurs stockées sous l'ancien id (retirer + ajouter).",
"nameLabel": "Nom du champ",
"newFieldName": "Nouveau champ",
"newOptionLabel": "Option 1",
"noDefault": "— aucun —",
"optionColor": "Couleur de l'option",
"optionLabel": "Libellé de l'option",
"optionN": "Option {{n}}",
"optionValue": "Valeur de l'option",
"options": "Options",
"placement": "Emplacement",
"placementCard": "Badge de carte",
"placementDetail": "Détail (en ligne)",
"placementSection": "Section de détail",
"readOnlyHint": "Les flux de travail intégrés sont en lecture seule — dupliquez pour modifier",
"remove": "Retirer le champ",
"removeOption": "Retirer l'option",
"required": "Obligatoire",
"title": "Champs",
"typeLabel": "Type",
"widget": "Composant",
"widgetDefault": "Par défaut"
}
}

View File

@@ -1,9 +1,4 @@
{
"actions": {
"cancel": "Annuler",
"close": "Fermer",
"save": "Enregistrer"
},
"agents": {
"ratings": {
"trendDeclining": "",
@@ -34,7 +29,6 @@
"minutesAgo_other": ""
}
},
"archive": "Archiver",
"board": {
"rejection": {
"capacityExhausted": "",
@@ -44,7 +38,6 @@
"workflowMismatch": ""
}
},
"cancel": "Annuler",
"chat": {
"failedToGetResponse": "",
"failureReferenceId": "",
@@ -54,25 +47,15 @@
"openMailboxMessage": "",
"toolCallArgsPrefix": "",
"toolCallResultPrefix": "",
"toolCallsCount_one": "",
"toolCallsCount_other": "",
"toolCallsHeader": "",
"toolCallStatusCompleted": "",
"toolCallStatusError": "",
"toolCallStatusErrors": "",
"toolCallStatusRunning": "",
"toolCallsCount_one": "",
"toolCallsCount_other": "",
"toolCallsHeader": "",
"viewFailureDetails": ""
},
"close": "Fermer",
"columns": {
"archived": "Archivé",
"done": "Terminé",
"in-progress": "En cours",
"in-review": "En revue",
"todo": "À faire",
"triage": "Planification"
},
"delete": "Supprimer",
"health": {
"anomaly": {
"duplicateActiveId": "",
@@ -110,13 +93,6 @@
"modelSetToDefault": ""
}
},
"nodeStatus": {
"connecting": "",
"error": "",
"offline": "",
"online": "",
"unknown": ""
},
"nodes": {
"auth": {
"differ": "",
@@ -137,7 +113,13 @@
"stopped": ""
}
},
"refresh": "Actualiser",
"nodeStatus": {
"connecting": "",
"error": "",
"offline": "",
"online": "",
"unknown": ""
},
"research": {
"providerGitHub": "",
"providerLlmSynthesis": "",
@@ -145,7 +127,6 @@
"providerPageFetch": "",
"providerWebSearch": ""
},
"retry": "Réessayer",
"routing": {
"policyLabel": {
"block": "",
@@ -205,7 +186,6 @@
"zai": ""
}
},
"skip": "Ignorer",
"taskForm": {
"nodeStatusConnecting": "",
"nodeStatusError": "",
@@ -220,7 +200,6 @@
"refreshSourceInitialLoad": "",
"refreshSourceManual": ""
},
"tryAgain": "Réessayer",
"workflow": {
"postMerge": "",
"preMerge": "",
@@ -230,5 +209,14 @@
"statusRunning": "",
"statusSkipped": "",
"waitingForOutput": ""
},
"workflowNodes": {
"summaryAwaitInput": "",
"summaryCodeDefault": "",
"summaryGateAdvisory": "",
"summaryGateBlocks": "",
"summaryHoldRelease": "",
"summaryNotConfigured": "",
"summaryReviewType": ""
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -21,6 +21,7 @@
"agentRunLogsBackHint": "[Esc/q] 실행 목록으로 돌아가기",
"agentRunLogsTitle": "실행 로그 ({{index}})",
"agentsFooterHints": "[s] 시작 [x] 중지 [D] 삭제 [r] 새로고침 [Tab] 포커스 ↑↓ 선택",
"agentsListTitle_one": "",
"agentsListTitle_other": "",
"agentsNoAgents": "에이전트가 없습니다.",
"agentStarted": "에이전트 시작됨",
@@ -44,6 +45,7 @@
"filesEmpty": "(비어 있음)",
"filesEmptyFile": "(빈 파일)",
"filesFooterHints": "[Tab] 창 전환 [↑↓/jk] 이동 [Enter] 열기 [←/→] 접기/펼치기 [.] 숨김 [w] 줄 바꿈 [p] 프로젝트 [r] 새로고침",
"filesMoreLines_one": "",
"filesMoreLines_other": "",
"filesSelectProject": "프로젝트 선택",
"filesSelectToPreview": "미리볼 파일을 선택하세요",
@@ -151,6 +153,7 @@
"settingsFooterHints": "[Tab] 패널 전환 ↑↓ 설정 선택 [Space] 불리언 토글 [+/-] 숫자 조정 [←/→] 열거형 순환 [C/V/X/P/L/U/K/R] 원격 작업",
"settingsInteractivePanelTitle": "설정",
"settingsLoadingSettings": "설정 불러오는 중…",
"settingsMoreModels_one": "",
"settingsMoreModels_other": "",
"settingsPanelTitle": "설정",
"settingsPersistentTokenRegenerated": "영구 토큰이 재생성됨",
@@ -218,9 +221,6 @@
"utilitiesKillVitest": "Vitest 프로세스 종료",
"utilitiesPanelTitle": "유틸리티",
"utilitiesRefreshStats": "통계 새로고침",
"utilitiesToggleEnginePause": "엔진 일시 정지 전환",
"agentsListTitle_one": "",
"filesMoreLines_one": "",
"settingsMoreModels_one": ""
"utilitiesToggleEnginePause": "엔진 일시 정지 전환"
}
}

View File

@@ -1,9 +1,4 @@
{
"actions": {
"cancel": "취소",
"close": "닫기",
"save": "저장"
},
"agents": {
"ratings": {
"trendDeclining": "",
@@ -34,7 +29,6 @@
"minutesAgo_other": ""
}
},
"archive": "보관",
"board": {
"rejection": {
"capacityExhausted": "",
@@ -44,7 +38,6 @@
"workflowMismatch": ""
}
},
"cancel": "취소",
"chat": {
"failedToGetResponse": "",
"failureReferenceId": "",
@@ -54,25 +47,15 @@
"openMailboxMessage": "",
"toolCallArgsPrefix": "",
"toolCallResultPrefix": "",
"toolCallsCount_one": "",
"toolCallsCount_other": "",
"toolCallsHeader": "",
"toolCallStatusCompleted": "",
"toolCallStatusError": "",
"toolCallStatusErrors": "",
"toolCallStatusRunning": "",
"toolCallsCount_one": "",
"toolCallsCount_other": "",
"toolCallsHeader": "",
"viewFailureDetails": ""
},
"close": "닫기",
"columns": {
"archived": "보관됨",
"done": "완료",
"in-progress": "진행 중",
"in-review": "검토 중",
"todo": "할 일",
"triage": "계획"
},
"delete": "삭제",
"health": {
"anomaly": {
"duplicateActiveId": "",
@@ -110,13 +93,6 @@
"modelSetToDefault": ""
}
},
"nodeStatus": {
"connecting": "",
"error": "",
"offline": "",
"online": "",
"unknown": ""
},
"nodes": {
"auth": {
"differ": "",
@@ -137,7 +113,13 @@
"stopped": ""
}
},
"refresh": "새로고침",
"nodeStatus": {
"connecting": "",
"error": "",
"offline": "",
"online": "",
"unknown": ""
},
"research": {
"providerGitHub": "",
"providerLlmSynthesis": "",
@@ -145,7 +127,6 @@
"providerPageFetch": "",
"providerWebSearch": ""
},
"retry": "재시도",
"routing": {
"policyLabel": {
"block": "",
@@ -205,7 +186,6 @@
"zai": ""
}
},
"skip": "건너뛰기",
"taskForm": {
"nodeStatusConnecting": "",
"nodeStatusError": "",
@@ -220,7 +200,6 @@
"refreshSourceInitialLoad": "",
"refreshSourceManual": ""
},
"tryAgain": "다시 시도",
"workflow": {
"postMerge": "",
"preMerge": "",
@@ -230,5 +209,14 @@
"statusRunning": "",
"statusSkipped": "",
"waitingForOutput": ""
},
"workflowNodes": {
"summaryAwaitInput": "",
"summaryCodeDefault": "",
"summaryGateAdvisory": "",
"summaryGateBlocks": "",
"summaryHoldRelease": "",
"summaryNotConfigured": "",
"summaryReviewType": ""
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -21,6 +21,7 @@
"agentRunLogsBackHint": "[Esc/q] 返回运行列表",
"agentRunLogsTitle": "运行日志({{index}})",
"agentsFooterHints": "[s] 启动 [x] 停止 [D] 删除 [r] 刷新 [Tab] 焦点 ↑↓ 选择",
"agentsListTitle_one": "",
"agentsListTitle_other": "",
"agentsNoAgents": "未找到代理。",
"agentStarted": "代理已启动",
@@ -44,6 +45,7 @@
"filesEmpty": "(空)",
"filesEmptyFile": "(空文件)",
"filesFooterHints": "[Tab] 切换面板 [↑↓/jk] 移动 [Enter] 打开 [←/→] 折叠/展开 [.] 隐藏文件 [w] 换行 [p] 项目 [r] 重载",
"filesMoreLines_one": "",
"filesMoreLines_other": "",
"filesSelectProject": "选择项目",
"filesSelectToPreview": "选择文件以预览",
@@ -151,6 +153,7 @@
"settingsFooterHints": "[Tab] 切换面板 ↑↓ 选择设置 [Space] 切换布尔 [+/-] 调整数值 [←/→] 循环枚举 [C/V/X/P/L/U/K/R] 远程操作",
"settingsInteractivePanelTitle": "设置",
"settingsLoadingSettings": "正在加载设置…",
"settingsMoreModels_one": "",
"settingsMoreModels_other": "",
"settingsPanelTitle": "设置",
"settingsPersistentTokenRegenerated": "持久令牌已重新生成",
@@ -218,9 +221,6 @@
"utilitiesKillVitest": "终止 Vitest 进程",
"utilitiesPanelTitle": "工具",
"utilitiesRefreshStats": "刷新统计",
"utilitiesToggleEnginePause": "切换引擎暂停",
"agentsListTitle_one": "",
"filesMoreLines_one": "",
"settingsMoreModels_one": ""
"utilitiesToggleEnginePause": "切换引擎暂停"
}
}

View File

@@ -1,9 +1,4 @@
{
"actions": {
"cancel": "取消",
"close": "关闭",
"save": "保存"
},
"agents": {
"ratings": {
"trendDeclining": "",
@@ -34,7 +29,6 @@
"minutesAgo_other": ""
}
},
"archive": "归档",
"board": {
"rejection": {
"capacityExhausted": "",
@@ -44,7 +38,6 @@
"workflowMismatch": ""
}
},
"cancel": "取消",
"chat": {
"failedToGetResponse": "",
"failureReferenceId": "",
@@ -54,25 +47,15 @@
"openMailboxMessage": "",
"toolCallArgsPrefix": "",
"toolCallResultPrefix": "",
"toolCallsCount_one": "",
"toolCallsCount_other": "",
"toolCallsHeader": "",
"toolCallStatusCompleted": "",
"toolCallStatusError": "",
"toolCallStatusErrors": "",
"toolCallStatusRunning": "",
"toolCallsCount_one": "",
"toolCallsCount_other": "",
"toolCallsHeader": "",
"viewFailureDetails": ""
},
"close": "关闭",
"columns": {
"archived": "已归档",
"done": "已完成",
"in-progress": "进行中",
"in-review": "审核中",
"todo": "待办",
"triage": "规划"
},
"delete": "删除",
"health": {
"anomaly": {
"duplicateActiveId": "",
@@ -110,13 +93,6 @@
"modelSetToDefault": ""
}
},
"nodeStatus": {
"connecting": "",
"error": "",
"offline": "",
"online": "",
"unknown": ""
},
"nodes": {
"auth": {
"differ": "",
@@ -137,7 +113,13 @@
"stopped": ""
}
},
"refresh": "刷新",
"nodeStatus": {
"connecting": "",
"error": "",
"offline": "",
"online": "",
"unknown": ""
},
"research": {
"providerGitHub": "",
"providerLlmSynthesis": "",
@@ -145,7 +127,6 @@
"providerPageFetch": "",
"providerWebSearch": ""
},
"retry": "重试",
"routing": {
"policyLabel": {
"block": "",
@@ -205,7 +186,6 @@
"zai": ""
}
},
"skip": "跳过",
"taskForm": {
"nodeStatusConnecting": "",
"nodeStatusError": "",
@@ -220,7 +200,6 @@
"refreshSourceInitialLoad": "",
"refreshSourceManual": ""
},
"tryAgain": "重试",
"workflow": {
"postMerge": "",
"preMerge": "",
@@ -230,5 +209,14 @@
"statusRunning": "",
"statusSkipped": "",
"waitingForOutput": ""
},
"workflowNodes": {
"summaryAwaitInput": "",
"summaryCodeDefault": "",
"summaryGateAdvisory": "",
"summaryGateBlocks": "",
"summaryHoldRelease": "",
"summaryNotConfigured": "",
"summaryReviewType": ""
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -21,6 +21,7 @@
"agentRunLogsBackHint": "[Esc/q] 返回執行列表",
"agentRunLogsTitle": "執行日誌({{index}})",
"agentsFooterHints": "[s] 啟動 [x] 停止 [D] 刪除 [r] 重新整理 [Tab] 焦點 ↑↓ 選擇",
"agentsListTitle_one": "",
"agentsListTitle_other": "",
"agentsNoAgents": "找不到代理。",
"agentStarted": "代理已啟動",
@@ -44,6 +45,7 @@
"filesEmpty": "(空)",
"filesEmptyFile": "(空檔案)",
"filesFooterHints": "[Tab] 切換面板 [↑↓/jk] 移動 [Enter] 開啟 [←/→] 折疊/展開 [.] 隱藏檔案 [w] 換行 [p] 專案 [r] 重新載入",
"filesMoreLines_one": "",
"filesMoreLines_other": "",
"filesSelectProject": "選擇專案",
"filesSelectToPreview": "選擇檔案以預覽",
@@ -151,6 +153,7 @@
"settingsFooterHints": "[Tab] 切換面板 ↑↓ 選擇設定 [Space] 切換布林 [+/-] 調整數值 [←/→] 循環枚舉 [C/V/X/P/L/U/K/R] 遠端操作",
"settingsInteractivePanelTitle": "設定",
"settingsLoadingSettings": "正在載入設定…",
"settingsMoreModels_one": "",
"settingsMoreModels_other": "",
"settingsPanelTitle": "設定",
"settingsPersistentTokenRegenerated": "持久金鑰已重新產生",
@@ -218,9 +221,6 @@
"utilitiesKillVitest": "終止 Vitest 行程",
"utilitiesPanelTitle": "工具",
"utilitiesRefreshStats": "重新整理統計",
"utilitiesToggleEnginePause": "切換引擎暫停",
"agentsListTitle_one": "",
"filesMoreLines_one": "",
"settingsMoreModels_one": ""
"utilitiesToggleEnginePause": "切換引擎暫停"
}
}

View File

@@ -1,9 +1,4 @@
{
"actions": {
"cancel": "取消",
"close": "關閉",
"save": "儲存"
},
"agents": {
"ratings": {
"trendDeclining": "",
@@ -34,7 +29,6 @@
"minutesAgo_other": ""
}
},
"archive": "封存",
"board": {
"rejection": {
"capacityExhausted": "",
@@ -44,7 +38,6 @@
"workflowMismatch": ""
}
},
"cancel": "取消",
"chat": {
"failedToGetResponse": "",
"failureReferenceId": "",
@@ -54,25 +47,15 @@
"openMailboxMessage": "",
"toolCallArgsPrefix": "",
"toolCallResultPrefix": "",
"toolCallsCount_one": "",
"toolCallsCount_other": "",
"toolCallsHeader": "",
"toolCallStatusCompleted": "",
"toolCallStatusError": "",
"toolCallStatusErrors": "",
"toolCallStatusRunning": "",
"toolCallsCount_one": "",
"toolCallsCount_other": "",
"toolCallsHeader": "",
"viewFailureDetails": ""
},
"close": "關閉",
"columns": {
"archived": "已封存",
"done": "已完成",
"in-progress": "進行中",
"in-review": "審查中",
"todo": "待辦",
"triage": "規劃"
},
"delete": "刪除",
"health": {
"anomaly": {
"duplicateActiveId": "",
@@ -110,13 +93,6 @@
"modelSetToDefault": ""
}
},
"nodeStatus": {
"connecting": "",
"error": "",
"offline": "",
"online": "",
"unknown": ""
},
"nodes": {
"auth": {
"differ": "",
@@ -137,7 +113,13 @@
"stopped": ""
}
},
"refresh": "重新整理",
"nodeStatus": {
"connecting": "",
"error": "",
"offline": "",
"online": "",
"unknown": ""
},
"research": {
"providerGitHub": "",
"providerLlmSynthesis": "",
@@ -145,7 +127,6 @@
"providerPageFetch": "",
"providerWebSearch": ""
},
"retry": "重試",
"routing": {
"policyLabel": {
"block": "",
@@ -205,7 +186,6 @@
"zai": ""
}
},
"skip": "略過",
"taskForm": {
"nodeStatusConnecting": "",
"nodeStatusError": "",
@@ -220,7 +200,6 @@
"refreshSourceInitialLoad": "",
"refreshSourceManual": ""
},
"tryAgain": "重試",
"workflow": {
"postMerge": "",
"preMerge": "",
@@ -230,5 +209,14 @@
"statusRunning": "",
"statusSkipped": "",
"waitingForOutput": ""
},
"workflowNodes": {
"summaryAwaitInput": "",
"summaryCodeDefault": "",
"summaryGateAdvisory": "",
"summaryGateBlocks": "",
"summaryHoldRelease": "",
"summaryNotConfigured": "",
"summaryReviewType": ""
}
}

View File

@@ -6762,6 +6762,8 @@ export default interface Resources {
"codeNote": "Runs sandboxed TypeScript. Syntax is validated at save.",
"codeSource": "Source (TypeScript)",
"codeTimeout": "Timeout (ms)",
"cycleBlocked": "That connection would create a cycle — only rework edges inside a for-each template may loop back",
"edgeCondition": "Condition",
"edgeConditionLabel": "Condition: {{condition}}",
"edgeInspector": "Edge",
"edgeNoVerdict": "— success (no verdict) —",
@@ -6783,6 +6785,7 @@ export default interface Resources {
"foreachWorktree": "Per-step worktree",
"gateBlocks": "Gate (blocks)",
"gateMode": "Gate mode",
"interpreterOnly": "This workflow branches, so it runs on the graph interpreter — it can't compile to the linear step engine, but it will still run.",
"joinAll": "All branches",
"joinAny": "Any branch",
"joinMode": "Join mode",
@@ -6803,14 +6806,7 @@ export default interface Resources {
"reviewPlan": "Plan review",
"reviewType": "Review type",
"splitNote": "Branches run concurrently from this node. Execute and merge seams are not allowed inside a branch.",
"stepExecuteLabel": "Step execute",
"summaryAwaitInput": "Waits for user input",
"summaryCodeDefault": "TypeScript",
"summaryGateAdvisory": "Advisory",
"summaryGateBlocks": "Gate (blocks)",
"summaryHoldRelease": "Release: {{release}}",
"summaryNotConfigured": "Not configured",
"summaryReviewType": "{{type}} review"
"stepExecuteLabel": "Step execute"
},
"workflowSelector": {
"switchActiveMessage": "This task has an active session. Switching workflows aborts it and re-homes the card into the new workflow's entry column. Continue?",
@@ -7070,11 +7066,6 @@ export default interface Resources {
}
},
"common": {
"actions": {
"cancel": "Cancel",
"close": "Close",
"save": "Save"
},
"agents": {
"ratings": {
"trendDeclining": "↓ Declining",
@@ -7105,7 +7096,6 @@ export default interface Resources {
"minutesAgo_other": "{{count}}m ago"
}
},
"archive": "Archive",
"board": {
"rejection": {
"capacityExhausted": "That column is at capacity. Try again when a slot frees up.",
@@ -7115,7 +7105,6 @@ export default interface Resources {
"workflowMismatch": "Drag can't move a card between workflows. Use the workflow switcher instead."
}
},
"cancel": "Cancel",
"chat": {
"failedToGetResponse": "Failed to get response",
"failureReferenceId": "ID",
@@ -7134,16 +7123,6 @@ export default interface Resources {
"toolCallsHeader": "Tool calls",
"viewFailureDetails": "View failure details"
},
"close": "Close",
"columns": {
"archived": "Archived",
"done": "Done",
"in-progress": "In Progress",
"in-review": "In Review",
"todo": "Todo",
"triage": "Planning"
},
"delete": "Delete",
"health": {
"anomaly": {
"duplicateActiveId": "Duplicate active task ID",
@@ -7208,7 +7187,6 @@ export default interface Resources {
"stopped": "Stopped"
}
},
"refresh": "Refresh",
"research": {
"providerGitHub": "GitHub",
"providerLlmSynthesis": "LLM Synthesis",
@@ -7216,7 +7194,6 @@ export default interface Resources {
"providerPageFetch": "Page Fetch",
"providerWebSearch": "Web Search"
},
"retry": "Retry",
"routing": {
"policyLabel": {
"block": "Block execution",
@@ -7276,7 +7253,6 @@ export default interface Resources {
"zai": "GLM models by Zhipu AI — strong multilingual support"
}
},
"skip": "Skip",
"taskForm": {
"nodeStatusConnecting": "Connecting",
"nodeStatusError": "Error",
@@ -7291,7 +7267,6 @@ export default interface Resources {
"refreshSourceInitialLoad": "Initial load",
"refreshSourceManual": "Manual"
},
"tryAgain": "Try Again",
"workflow": {
"postMerge": "Post-merge",
"preMerge": "Pre-merge",
@@ -7301,6 +7276,15 @@ export default interface Resources {
"statusRunning": "Running…",
"statusSkipped": "Skipped",
"waitingForOutput": "Waiting for agent output…"
},
"workflowNodes": {
"summaryAwaitInput": "Waits for user input",
"summaryCodeDefault": "TypeScript",
"summaryGateAdvisory": "Advisory",
"summaryGateBlocks": "Gate (blocks)",
"summaryHoldRelease": "Release: {{release}}",
"summaryNotConfigured": "Not configured",
"summaryReviewType": "{{type}} review"
}
},
"errors": {