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:
@@ -382,6 +382,64 @@ export const ko: 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