diff --git a/ui/src/i18n/locales/de.ts b/ui/src/i18n/locales/de.ts index 3f4b7ab332a..d00846c6986 100644 --- a/ui/src/i18n/locales/de.ts +++ b/ui/src/i18n/locales/de.ts @@ -487,6 +487,15 @@ export const de: TranslationMap = { disabledHelpEnd: ", und laden Sie dann diesen Tab neu.", noLinkedSession: "Keine verknüpfte Sitzung", stopSession: "Sitzung stoppen", + editCard: "Karte bearbeiten", + fieldTitle: "Titel", + fieldNotes: "Notizen", + fieldStatus: "Status", + fieldPriority: "Priorität", + fieldAgent: "Agent", + fieldSession: "Sitzung", + fieldLabels: "Labels", + labelsPlaceholder: "ui, docs", lifecycleUnlinked: "Keine Sitzung", lifecycleUnlinkedDetail: "Sitzung starten oder verknüpfen", lifecycleMissing: "Sitzung fehlt", @@ -499,6 +508,25 @@ export const de: TranslationMap = { lifecycleDoneDetail: "Zur Überprüfung verschoben", lifecycleNeedsReview: "Überprüfung erforderlich", lifecycleNeedsReviewDetail: "Lauf gestoppt oder fehlgeschlagen", + gameButton: "Minispiel", + gameTitle: "Card Chase", + gameStart: "Erreiche das Startfeld.", + gameBoundary: "Grenze erreicht.", + gameBlocked: "Blockiert.", + gameContinue: "Weiter so.", + gameWin: "Start abgeschlossen.", + gameMoves: "Züge {count}", + gameWins: "Siege {count}", + gameBoard: "Card Chase-Spielfeld", + gameControls: "Card Chase-Steuerung", + gameAgent: "Agent", + gameLaunch: "Start", + gameBlockedCell: "Blockiert", + gameOpenCell: "Offen", + gameMoveUp: "Nach oben bewegen", + gameMoveLeft: "Nach links bewegen", + gameMoveDown: "Nach unten bewegen", + gameMoveRight: "Nach rechts bewegen", }, overview: { access: { diff --git a/ui/src/i18n/locales/es.ts b/ui/src/i18n/locales/es.ts index 4393170b4a5..3fae7d4f951 100644 --- a/ui/src/i18n/locales/es.ts +++ b/ui/src/i18n/locales/es.ts @@ -484,6 +484,15 @@ export const es: TranslationMap = { disabledHelpEnd: ", luego vuelve a cargar esta pestaña.", noLinkedSession: "Sin sesión vinculada", stopSession: "Detener sesión", + editCard: "Editar tarjeta", + fieldTitle: "Título", + fieldNotes: "Notas", + fieldStatus: "Estado", + fieldPriority: "Prioridad", + fieldAgent: "Agente", + fieldSession: "Sesión", + fieldLabels: "Etiquetas", + labelsPlaceholder: "ui, docs", lifecycleUnlinked: "Sin sesión", lifecycleUnlinkedDetail: "Inicia o vincula una sesión", lifecycleMissing: "Falta la sesión", @@ -496,6 +505,25 @@ export const es: TranslationMap = { lifecycleDoneDetail: "Movido a revisión", lifecycleNeedsReview: "Necesita revisión", lifecycleNeedsReviewDetail: "La ejecución se detuvo o falló", + gameButton: "Minijuego", + gameTitle: "Card Chase", + gameStart: "Alcanza la casilla de lanzamiento.", + gameBoundary: "Límite alcanzado.", + gameBlocked: "Bloqueado.", + gameContinue: "Sigue adelante.", + gameWin: "Lanzamiento completado.", + gameMoves: "Movimientos {count}", + gameWins: "Victorias {count}", + gameBoard: "Tablero de Card Chase", + gameControls: "Controles de Card Chase", + gameAgent: "Agente", + gameLaunch: "Lanzamiento", + gameBlockedCell: "Bloqueado", + gameOpenCell: "Abierto", + gameMoveUp: "Mover arriba", + gameMoveLeft: "Mover a la izquierda", + gameMoveDown: "Mover abajo", + gameMoveRight: "Mover a la derecha", }, overview: { access: { diff --git a/ui/src/i18n/locales/ja-JP.ts b/ui/src/i18n/locales/ja-JP.ts index 178e1ba00a7..5ce9b1a824b 100644 --- a/ui/src/i18n/locales/ja-JP.ts +++ b/ui/src/i18n/locales/ja-JP.ts @@ -487,6 +487,15 @@ export const ja_JP: TranslationMap = { disabledHelpEnd: "を設定してから、このタブを再読み込みしてください。", noLinkedSession: "リンクされたセッションがありません", stopSession: "セッションを停止", + editCard: "カードを編集", + fieldTitle: "タイトル", + fieldNotes: "メモ", + fieldStatus: "ステータス", + fieldPriority: "優先度", + fieldAgent: "エージェント", + fieldSession: "セッション", + fieldLabels: "ラベル", + labelsPlaceholder: "ui, docs", lifecycleUnlinked: "セッションなし", lifecycleUnlinkedDetail: "セッションを開始またはリンク", lifecycleMissing: "セッションが見つかりません", @@ -499,6 +508,25 @@ export const ja_JP: TranslationMap = { lifecycleDoneDetail: "レビューに移動しました", lifecycleNeedsReview: "レビューが必要", lifecycleNeedsReviewDetail: "実行が停止または失敗しました", + gameButton: "ミニゲーム", + gameTitle: "Card Chase", + gameStart: "ローンチタイルに到達してください。", + gameBoundary: "境界に到達しました。", + gameBlocked: "ブロックされています。", + gameContinue: "続けてください。", + gameWin: "ローンチをクリアしました。", + gameMoves: "移動 {count}", + gameWins: "勝利 {count}", + gameBoard: "Card Chase ボード", + gameControls: "Card Chase コントロール", + gameAgent: "エージェント", + gameLaunch: "ローンチ", + gameBlockedCell: "ブロック済み", + gameOpenCell: "オープン", + gameMoveUp: "上に移動", + gameMoveLeft: "左に移動", + gameMoveDown: "下に移動", + gameMoveRight: "右に移動", }, overview: { access: { diff --git a/ui/src/i18n/locales/pt-BR.ts b/ui/src/i18n/locales/pt-BR.ts index 612fc3e54b6..6bf69529c74 100644 --- a/ui/src/i18n/locales/pt-BR.ts +++ b/ui/src/i18n/locales/pt-BR.ts @@ -484,6 +484,15 @@ export const pt_BR: TranslationMap = { disabledHelpEnd: ", depois recarregue esta aba.", noLinkedSession: "Nenhuma sessão vinculada", stopSession: "Parar sessão", + editCard: "Editar cartão", + fieldTitle: "Título", + fieldNotes: "Notas", + fieldStatus: "Status", + fieldPriority: "Prioridade", + fieldAgent: "Agente", + fieldSession: "Sessão", + fieldLabels: "Etiquetas", + labelsPlaceholder: "ui, docs", lifecycleUnlinked: "Nenhuma sessão", lifecycleUnlinkedDetail: "Inicie ou vincule uma sessão", lifecycleMissing: "Sessão ausente", @@ -496,6 +505,25 @@ export const pt_BR: TranslationMap = { lifecycleDoneDetail: "Movido para revisão", lifecycleNeedsReview: "Precisa de revisão", lifecycleNeedsReviewDetail: "A execução foi interrompida ou falhou", + gameButton: "Mini game", + gameTitle: "Card Chase", + gameStart: "Alcance o bloco de lançamento.", + gameBoundary: "Limite alcançado.", + gameBlocked: "Bloqueado.", + gameContinue: "Continue.", + gameWin: "Lançamento concluído.", + gameMoves: "Movimentos {count}", + gameWins: "Vitórias {count}", + gameBoard: "Tabuleiro do Card Chase", + gameControls: "Controles do Card Chase", + gameAgent: "Agente", + gameLaunch: "Lançamento", + gameBlockedCell: "Bloqueado", + gameOpenCell: "Aberto", + gameMoveUp: "Mover para cima", + gameMoveLeft: "Mover para a esquerda", + gameMoveDown: "Mover para baixo", + gameMoveRight: "Mover para a direita", }, overview: { access: { diff --git a/ui/src/i18n/locales/zh-CN.ts b/ui/src/i18n/locales/zh-CN.ts index f31d428dc4e..31312533acb 100644 --- a/ui/src/i18n/locales/zh-CN.ts +++ b/ui/src/i18n/locales/zh-CN.ts @@ -481,6 +481,15 @@ export const zh_CN: TranslationMap = { disabledHelpEnd: ",然后重新加载此标签页。", noLinkedSession: "没有已关联的会话", stopSession: "停止会话", + editCard: "编辑卡片", + fieldTitle: "标题", + fieldNotes: "备注", + fieldStatus: "状态", + fieldPriority: "优先级", + fieldAgent: "代理", + fieldSession: "会话", + fieldLabels: "标签", + labelsPlaceholder: "ui, docs", lifecycleUnlinked: "无会话", lifecycleUnlinkedDetail: "启动或关联会话", lifecycleMissing: "会话缺失", @@ -493,6 +502,25 @@ export const zh_CN: TranslationMap = { lifecycleDoneDetail: "已移至审核", lifecycleNeedsReview: "需要审核", lifecycleNeedsReviewDetail: "运行已停止或失败", + gameButton: "迷你游戏", + gameTitle: "卡片追逐", + gameStart: "到达发布图块。", + gameBoundary: "已到达边界。", + gameBlocked: "已阻挡。", + gameContinue: "继续前进。", + gameWin: "发布已完成。", + gameMoves: "移动 {count}", + gameWins: "获胜 {count}", + gameBoard: "卡片追逐棋盘", + gameControls: "卡片追逐控制", + gameAgent: "代理", + gameLaunch: "发布", + gameBlockedCell: "已阻挡", + gameOpenCell: "开放", + gameMoveUp: "向上移动", + gameMoveLeft: "向左移动", + gameMoveDown: "向下移动", + gameMoveRight: "向右移动", }, overview: { access: { diff --git a/ui/src/i18n/locales/zh-TW.ts b/ui/src/i18n/locales/zh-TW.ts index 66d388276b1..8ad11546cbd 100644 --- a/ui/src/i18n/locales/zh-TW.ts +++ b/ui/src/i18n/locales/zh-TW.ts @@ -481,6 +481,15 @@ export const zh_TW: TranslationMap = { disabledHelpEnd: ",然後重新載入此分頁。", noLinkedSession: "沒有已連結的工作階段", stopSession: "停止工作階段", + editCard: "編輯卡片", + fieldTitle: "標題", + fieldNotes: "備註", + fieldStatus: "狀態", + fieldPriority: "優先順序", + fieldAgent: "代理", + fieldSession: "工作階段", + fieldLabels: "標籤", + labelsPlaceholder: "ui, docs", lifecycleUnlinked: "沒有工作階段", lifecycleUnlinkedDetail: "開始或連結工作階段", lifecycleMissing: "找不到工作階段", @@ -493,6 +502,25 @@ export const zh_TW: TranslationMap = { lifecycleDoneDetail: "已移至審查", lifecycleNeedsReview: "需要審查", lifecycleNeedsReviewDetail: "執行已停止或失敗", + gameButton: "小遊戲", + gameTitle: "卡片追逐", + gameStart: "到達啟動方格。", + gameBoundary: "已到達邊界。", + gameBlocked: "已封鎖。", + gameContinue: "繼續前進。", + gameWin: "啟動已完成。", + gameMoves: "移動 {count}", + gameWins: "獲勝 {count}", + gameBoard: "卡片追逐棋盤", + gameControls: "卡片追逐控制項", + gameAgent: "代理", + gameLaunch: "啟動", + gameBlockedCell: "已封鎖", + gameOpenCell: "開放", + gameMoveUp: "向上移動", + gameMoveLeft: "向左移動", + gameMoveDown: "向下移動", + gameMoveRight: "向右移動", }, overview: { access: { diff --git a/ui/src/ui/controllers/workboard.test.ts b/ui/src/ui/controllers/workboard.test.ts index 3672e2d1f8e..53a43dac87b 100644 --- a/ui/src/ui/controllers/workboard.test.ts +++ b/ui/src/ui/controllers/workboard.test.ts @@ -543,6 +543,7 @@ describe("workboard controller", () => { expect(client.request).toHaveBeenNthCalledWith(1, "chat.abort", { sessionKey: sampleSession.key, + runId: "run-1", }); expect(client.request).toHaveBeenNthCalledWith(2, "workboard.cards.update", { id: "card-1", @@ -565,6 +566,7 @@ describe("workboard controller", () => { expect(client.request).toHaveBeenCalledOnce(); expect(client.request).toHaveBeenCalledWith("chat.abort", { sessionKey: sampleSession.key, + runId: "stale-run", }); expect(state.cards).toEqual([linked]); }); diff --git a/ui/src/ui/controllers/workboard.ts b/ui/src/ui/controllers/workboard.ts index 88d46d5c256..54a1d1295a6 100644 --- a/ui/src/ui/controllers/workboard.ts +++ b/ui/src/ui/controllers/workboard.ts @@ -784,6 +784,7 @@ export async function stopWorkboardCard(params: { try { const abortResult = await params.client.request("chat.abort", { sessionKey: params.card.sessionKey, + ...(params.card.runId ? { runId: params.card.runId } : {}), }); const aborted = isRecord(abortResult) &&