From 6879390b8f6514088bdaabb17e1832fc43234698 Mon Sep 17 00:00:00 2001 From: Frank Song Date: Fri, 8 May 2026 15:19:04 +0000 Subject: [PATCH] Fix Kanban lifecycle controls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove Kanban card Start and bulk Running controls (PATCH to running was unsafe) - Rename "Nudge dispatcher" → "Preview dispatcher" (matches dry-run semantics) - Add empty-board guidance kanban_work_queue_hint Rebased onto master post-v0.51.23 by maintainer; preserves Japanese translations from #1863 (kanban_nudge_dispatcher: ディスパッチャープレビュー). Closes #1885 Co-authored-by: Frank Song --- static/i18n.js | 24 ++++++++++++++++-------- static/index.html | 8 ++++---- static/panels.js | 16 ++++++++++++---- tests/test_kanban_ui_static.py | 13 ++++++++++++- 4 files changed, 44 insertions(+), 17 deletions(-) diff --git a/static/i18n.js b/static/i18n.js index 6101c1f6..e799924d 100644 --- a/static/i18n.js +++ b/static/i18n.js @@ -489,6 +489,7 @@ const LOCALES = { kanban_include_archived: 'Include archived', kanban_no_matching_tasks: 'No matching tasks', kanban_no_data: 'No Kanban data', + kanban_work_queue_hint: 'This is the Hermes Agent work queue. Create or triage a task, assign it, move it to Ready, then let the dispatcher claim it.', kanban_unavailable: 'Kanban unavailable', kanban_read_only: 'Read-only view', kanban_empty: 'Empty', @@ -514,7 +515,7 @@ const LOCALES = { kanban_add_comment: 'Add comment', kanban_only_mine: 'Only mine', kanban_bulk_action: 'Bulk action', - kanban_nudge_dispatcher: 'Nudge dispatcher', + kanban_nudge_dispatcher: 'Preview dispatcher', kanban_stats: 'Stats', kanban_worker_log: 'Worker log', kanban_block: 'Block', @@ -1507,6 +1508,7 @@ const LOCALES = { kanban_include_archived: 'アーカイブを含める', kanban_no_matching_tasks: '一致するタスクがありません', kanban_no_data: 'カンバンデータがありません', + kanban_work_queue_hint: 'これは Hermes Agent のワークキューです。タスクを作成またはトリアージし、担当者を割り当て、Ready に移動すると、ディスパッチャーがそれをクレームします。', kanban_unavailable: 'カンバンを利用できません', kanban_read_only: '読み取り専用', kanban_empty: '空', @@ -1532,7 +1534,7 @@ const LOCALES = { kanban_add_comment: 'コメント追加', kanban_only_mine: '自分のみ', kanban_bulk_action: '一括操作', - kanban_nudge_dispatcher: 'ディスパッチャーに催促', + kanban_nudge_dispatcher: 'ディスパッチャープレビュー', kanban_stats: '統計', kanban_worker_log: 'ワーカーログ', kanban_block: 'ブロック', @@ -2364,6 +2366,7 @@ const LOCALES = { kanban_include_archived: 'Include archived', kanban_no_matching_tasks: 'No matching tasks', kanban_no_data: 'No Kanban data', + kanban_work_queue_hint: 'This is the Hermes Agent work queue. Create or triage a task, assign it, move it to Ready, then let the dispatcher claim it.', kanban_unavailable: 'Kanban unavailable', kanban_read_only: 'Read-only view', kanban_empty: 'Empty', @@ -2389,7 +2392,7 @@ const LOCALES = { kanban_add_comment: 'Add comment', kanban_only_mine: 'Only mine', kanban_bulk_action: 'Bulk action', - kanban_nudge_dispatcher: 'Nudge dispatcher', + kanban_nudge_dispatcher: 'Preview dispatcher', kanban_stats: 'Stats', kanban_worker_log: 'Worker log', kanban_block: 'Block', @@ -3316,6 +3319,7 @@ const LOCALES = { kanban_include_archived: 'Include archived', kanban_no_matching_tasks: 'No matching tasks', kanban_no_data: 'No Kanban data', + kanban_work_queue_hint: 'This is the Hermes Agent work queue. Create or triage a task, assign it, move it to Ready, then let the dispatcher claim it.', kanban_unavailable: 'Kanban unavailable', kanban_read_only: 'Read-only view', kanban_empty: 'Empty', @@ -3341,7 +3345,7 @@ const LOCALES = { kanban_add_comment: 'Add comment', kanban_only_mine: 'Only mine', kanban_bulk_action: 'Bulk action', - kanban_nudge_dispatcher: 'Nudge dispatcher', + kanban_nudge_dispatcher: 'Preview dispatcher', kanban_stats: 'Stats', kanban_worker_log: 'Worker log', kanban_block: 'Block', @@ -4256,6 +4260,7 @@ const LOCALES = { kanban_include_archived: 'Include archived', kanban_no_matching_tasks: 'No matching tasks', kanban_no_data: 'No Kanban data', + kanban_work_queue_hint: 'This is the Hermes Agent work queue. Create or triage a task, assign it, move it to Ready, then let the dispatcher claim it.', kanban_unavailable: 'Kanban unavailable', kanban_read_only: 'Read-only view', kanban_empty: 'Empty', @@ -4281,7 +4286,7 @@ const LOCALES = { kanban_add_comment: 'Add comment', kanban_only_mine: 'Only mine', kanban_bulk_action: 'Bulk action', - kanban_nudge_dispatcher: 'Nudge dispatcher', + kanban_nudge_dispatcher: 'Preview dispatcher', kanban_stats: 'Stats', kanban_worker_log: 'Worker log', kanban_block: 'Block', @@ -5217,6 +5222,7 @@ const LOCALES = { kanban_include_archived: 'Include archived', kanban_no_matching_tasks: 'No matching tasks', kanban_no_data: 'No Kanban data', + kanban_work_queue_hint: 'This is the Hermes Agent work queue. Create or triage a task, assign it, move it to Ready, then let the dispatcher claim it.', kanban_unavailable: 'Kanban unavailable', kanban_read_only: 'Read-only view', kanban_empty: 'Empty', @@ -5242,7 +5248,7 @@ const LOCALES = { kanban_add_comment: 'Add comment', kanban_only_mine: 'Only mine', kanban_bulk_action: 'Bulk action', - kanban_nudge_dispatcher: 'Nudge dispatcher', + kanban_nudge_dispatcher: 'Preview dispatcher', kanban_stats: 'Stats', kanban_worker_log: 'Worker log', kanban_block: 'Block', @@ -7207,6 +7213,7 @@ const LOCALES = { kanban_include_archived: 'Include archived', kanban_no_matching_tasks: 'No matching tasks', kanban_no_data: 'No Kanban data', + kanban_work_queue_hint: 'This is the Hermes Agent work queue. Create or triage a task, assign it, move it to Ready, then let the dispatcher claim it.', kanban_unavailable: 'Kanban unavailable', kanban_read_only: 'Read-only view', kanban_empty: 'Empty', @@ -7232,7 +7239,7 @@ const LOCALES = { kanban_add_comment: 'Add comment', kanban_only_mine: 'Only mine', kanban_bulk_action: 'Bulk action', - kanban_nudge_dispatcher: 'Nudge dispatcher', + kanban_nudge_dispatcher: 'Preview dispatcher', kanban_stats: 'Stats', kanban_worker_log: 'Worker log', kanban_block: 'Block', @@ -8123,6 +8130,7 @@ const LOCALES = { kanban_include_archived: 'Include archived', kanban_no_matching_tasks: 'No matching tasks', kanban_no_data: 'No Kanban data', + kanban_work_queue_hint: 'This is the Hermes Agent work queue. Create or triage a task, assign it, move it to Ready, then let the dispatcher claim it.', kanban_unavailable: 'Kanban unavailable', kanban_read_only: 'Read-only view', kanban_empty: 'Empty', @@ -8148,7 +8156,7 @@ const LOCALES = { kanban_add_comment: 'Add comment', kanban_only_mine: 'Only mine', kanban_bulk_action: 'Bulk action', - kanban_nudge_dispatcher: 'Nudge dispatcher', + kanban_nudge_dispatcher: 'Preview dispatcher', kanban_stats: 'Stats', kanban_worker_log: 'Worker log', kanban_block: 'Block', diff --git a/static/index.html b/static/index.html index c1f8670f..d730af2f 100644 --- a/static/index.html +++ b/static/index.html @@ -158,9 +158,9 @@
- + - +
@@ -709,7 +709,7 @@
- +
@@ -1118,7 +1118,7 @@