feat(client): workflow-graph Tasks page with teams board and jobs drawer
The Subagent page becomes the Tasks page per the approved Variant-D design: - tasks-model.ts feeds BOTH modes from one pre-order node list: graph canvas (TasksGraph: layered nodes over bezier edges, drag-pan, wheel-zoom-to-cursor, phase frames, bottom-right control cluster) and the classic tree (TasksTree: keyboard navigable) — the view toggle and fold toggle stay reachable in both modes. - Workflow runs (workflows.list) hang under their origin agent; member agents re-parent under the run node, missing ones synthesize from run data; completed leaf agents fold into per-parent aggregate nodes (click or cluster toggle to expand/re-collapse). - Agent Teams (experimental): roster enriches nodes; a header chip opens the shared task board popover with basic CAS operations (complete / reopen / delete / reassign / create / edit); no experimental layer → the whole block hides (structural degradation). - Background jobs move into a bottom drawer that auto-collapses at 8+ agents (manual toggle wins); job output opens as an anchored popover (event replay, never the model's cursor); two-click kill preserved. - Live activity lines render as glyph + tool + args (tool-icons map onto host primitive icons). - Node click jumps to the transcript; ⓘ opens the detail popover; popovers follow the selection-popup dismissal contract (Escape / outside click / anchor off-screen via IntersectionObserver). - tasksViewMode pref (graph default) with a select row in settings; 58 new copy keys across zh/en/ja + 18 third-language dictionaries; dead CSS from the old tree/dock pruned. - Tests: 6 new page-interaction specs (auto-collapse, both-mode toggle, jump, fold, popover); jobs-view suite re-pointed at the popover; prefs/builtins/smoke lock tests updated for the new pref.
This commit is contained in:
@@ -390,6 +390,64 @@ export const ja: Record<string, string> = {
|
||||
jobKill: '終了',
|
||||
jobKillConfirm: 'もう一度クリックして終了を確認',
|
||||
jobKillError: '終了に失敗',
|
||||
tasksViewGraph: 'ワークフロー図',
|
||||
tasksViewTree: 'ツリー',
|
||||
tasksViewSwitchToGraph: 'ワークフロー図に切替',
|
||||
tasksViewSwitchToTree: 'ツリーに切替',
|
||||
settingsViewModeTitle: 'タスク管理の既定ビュー',
|
||||
settingsViewModeDesc: 'タスク管理ページを開いたときの表示方法(ページ内で一時切替可能)',
|
||||
settingsViewModeGraph: 'ワークフロー図',
|
||||
settingsViewModeGraphDesc: '階層ノードグラフ(ズーム・パン対応)',
|
||||
settingsViewModeTree: 'ツリー',
|
||||
settingsViewModeTreeDesc: '従来のインデントツリー(キーボード操作可)',
|
||||
tasksWorkflowMember: 'ワークフローメンバー',
|
||||
tasksFoldCompleted: '✓ {count} 件完了',
|
||||
tasksFoldExpand: '完了ノードを展開',
|
||||
tasksFoldCollapse: '完了ノードを折りたたむ',
|
||||
tasksZoomIn: '拡大',
|
||||
tasksZoomOut: '縮小',
|
||||
tasksZoomFit: 'キャンバスに合わせる',
|
||||
tasksNodeJump: 'トランスクリプトを開く',
|
||||
tasksNodeState: '状態',
|
||||
tasksNodeMode: 'モード',
|
||||
tasksNodeModel: 'モデル',
|
||||
tasksNodeTeamRole: 'チーム役割',
|
||||
tasksNodeActivity: '最新アクティビティ',
|
||||
tasksStateRunning: '実行中',
|
||||
tasksStateIdle: '待機',
|
||||
tasksStateDone: '完了',
|
||||
tasksStateError: 'エラー',
|
||||
teamBoard: 'チームタスクボード',
|
||||
teamChip: 'チーム {members} 名 · {tasks} タスク',
|
||||
teamMembers: 'メンバー',
|
||||
teamTasksEmpty: '共有タスクはまだありません',
|
||||
teamTaskCreate: 'タスクを作成',
|
||||
teamTaskSubject: '件名',
|
||||
teamTaskDescription: '説明',
|
||||
teamTaskOwner: '担当',
|
||||
teamTaskUnowned: '未割当',
|
||||
teamTaskPending: '未着手',
|
||||
teamTaskInProgress: '進行中',
|
||||
teamTaskCompleted: '完了',
|
||||
teamTaskBlocked: 'ブロック',
|
||||
teamTaskComplete: '完了',
|
||||
teamTaskReopen: '再オープン',
|
||||
teamTaskDelete: '削除',
|
||||
teamTaskDeleteConfirm: '削除を確認',
|
||||
teamTaskEdit: '編集',
|
||||
teamTaskSave: '保存',
|
||||
teamTaskCancel: 'キャンセル',
|
||||
teamTaskConflict: '他の場所で変更されました。最新に更新しました',
|
||||
teamTaskError: '操作に失敗: {message}',
|
||||
teamTaskDeleted: '削除済み',
|
||||
workflowRunning: '進行中',
|
||||
workflowCompleted: '完了',
|
||||
workflowCancelled: 'キャンセル',
|
||||
workflowFailed: '失敗',
|
||||
workflowPhaseUnnamed: '無名フェーズ',
|
||||
workflowMembers: '{done}/{total} メンバー',
|
||||
jobsAutoCollapsed: 'エージェント多数のため自動折りたたみ',
|
||||
catalogLoadFailed: '{count} 個のブランチの読み込みに失敗',
|
||||
addPluginsTabCard: 'Tab プラグインを追加',
|
||||
addPluginsTabCardDesc: '新しいサイドバーページを登録',
|
||||
addPluginsViewerCard: 'プレビュープラグインを追加',
|
||||
|
||||
Reference in New Issue
Block a user