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:
@@ -388,6 +388,64 @@ export const nl: Record<string, string> = {
|
||||
jobKill: 'Beëindigen',
|
||||
jobKillConfirm: 'Klik nogmaals om beëindigen te bevestigen',
|
||||
jobKillError: 'Beëindigen mislukt',
|
||||
tasksViewGraph: 'Workflowgrafiek',
|
||||
tasksViewTree: 'Boom',
|
||||
tasksViewSwitchToGraph: 'Omschakelen naar de workflowgrafiek',
|
||||
tasksViewSwitchToTree: 'Omschakelen naar de boom',
|
||||
settingsViewModeTitle: 'Standaardweergave van de takenpagina',
|
||||
settingsViewModeDesc: 'Hoe de takenpagina bij het openen wordt weergegeven (de schakelaar op de pagina wisselt nog steeds ad hoc)',
|
||||
settingsViewModeGraph: 'Workflowgrafiek',
|
||||
settingsViewModeGraphDesc: 'Gelaagde knoppengrafiek met in- en uitzoomen en pannen',
|
||||
settingsViewModeTree: 'Boom',
|
||||
settingsViewModeTreeDesc: 'Klassieke inspringboom, navigeerbaar met het toetsenbord',
|
||||
tasksWorkflowMember: 'Workflowlid',
|
||||
tasksFoldCompleted: '✓ {count} voltooid',
|
||||
tasksFoldExpand: 'Voltooide knopen uitklappen',
|
||||
tasksFoldCollapse: 'Voltooide knopen inklappen',
|
||||
tasksZoomIn: 'Inzoomen',
|
||||
tasksZoomOut: 'Uitzoomen',
|
||||
tasksZoomFit: 'Passend maken',
|
||||
tasksNodeJump: 'Transcript openen',
|
||||
tasksNodeState: 'Status',
|
||||
tasksNodeMode: 'Modus',
|
||||
tasksNodeModel: 'Model',
|
||||
tasksNodeTeamRole: 'Teamrol',
|
||||
tasksNodeActivity: 'Laatste activiteit',
|
||||
tasksStateRunning: 'Bezig',
|
||||
tasksStateIdle: 'Inactief',
|
||||
tasksStateDone: 'Voltooid',
|
||||
tasksStateError: 'Fout',
|
||||
teamBoard: 'Teamtakenbord',
|
||||
teamChip: 'Team {members} leden · {tasks} taken',
|
||||
teamMembers: 'Leden',
|
||||
teamTasksEmpty: 'Nog geen gedeelde taken',
|
||||
teamTaskCreate: 'Nieuwe taak',
|
||||
teamTaskSubject: 'Onderwerp',
|
||||
teamTaskDescription: 'Beschrijving',
|
||||
teamTaskOwner: 'Verantwoordelijke',
|
||||
teamTaskUnowned: 'Niet opgeëist',
|
||||
teamTaskPending: 'Te doen',
|
||||
teamTaskInProgress: 'Bezig',
|
||||
teamTaskCompleted: 'Voltooid',
|
||||
teamTaskBlocked: 'Geblokkeerd',
|
||||
teamTaskComplete: 'Voltooien',
|
||||
teamTaskReopen: 'Heropenen',
|
||||
teamTaskDelete: 'Verwijderen',
|
||||
teamTaskDeleteConfirm: 'Verwijderen bevestigen',
|
||||
teamTaskEdit: 'Bewerken',
|
||||
teamTaskSave: 'Opslaan',
|
||||
teamTaskCancel: 'Annuleren',
|
||||
teamTaskConflict: 'De taak is elders gewijzigd; vernieuwd',
|
||||
teamTaskError: 'Bewerking mislukt: {message}',
|
||||
teamTaskDeleted: 'Verwijderd',
|
||||
workflowRunning: 'Bezig',
|
||||
workflowCompleted: 'Voltooid',
|
||||
workflowCancelled: 'Geannuleerd',
|
||||
workflowFailed: 'Mislukt',
|
||||
workflowPhaseUnnamed: 'Naamloze fase',
|
||||
workflowMembers: '{done}/{total} leden',
|
||||
jobsAutoCollapsed: 'Automatisch ingeklapt (veel agents)',
|
||||
catalogLoadFailed: '{count} branches konden niet worden geladen',
|
||||
addPluginsTabCard: 'Tabblad-plugins toevoegen',
|
||||
addPluginsTabCardDesc: 'Een nieuwe zijbalkpagina registreren',
|
||||
addPluginsViewerCard: 'Preview-plugins toevoegen',
|
||||
|
||||
Reference in New Issue
Block a user