From 22bad863c1763bd955c26dc495a8697526182ac5 Mon Sep 17 00:00:00 2001 From: ochenstarik-ui <267932263+ochenstarik-ui@users.noreply.github.com> Date: Mon, 31 Aug 2026 16:12:00 +0700 Subject: [PATCH] Route workflow arrows through row gaps with semantic colors --- docs/reports/A48.md | 6 ++ .../a48/after/overview-colored-arrows.png | Bin 0 -> 150545 bytes docs/screenshots/a48/index.html | 2 +- .../router/web/static/index.html | 4 +- .../router/web/static/workflow.css | 13 +++ .../router/web/static/workflow.js | 86 ++++++++++++++---- tests/test_workflow_routes_a48.js | 27 ++++++ 7 files changed, 116 insertions(+), 22 deletions(-) create mode 100644 docs/screenshots/a48/after/overview-colored-arrows.png create mode 100644 tests/test_workflow_routes_a48.js diff --git a/docs/reports/A48.md b/docs/reports/A48.md index 486bd89..fdfd7c6 100644 --- a/docs/reports/A48.md +++ b/docs/reports/A48.md @@ -65,3 +65,9 @@ HubSnapshot: generation, seq, timestamp, profiles_by_provider, all_profiles, rea ## 2026-08-31 — оркестратор сверху по запросу владельца Владелец явно запросил изменить сохранённые координаты: оркестратор (430,60), первый ряд субагентов — два кодера и ревьюер на y=250; остальные 9 субагентов в трёх колонках ниже. Раскладка применена через штатную команду и сохранена `save_workflow`. После перезагрузки координаты подтверждены по DOM. Связи, модели и настройки агентов не менялись. Начальный вид клиента центрирует выбранного агента по горизонтали. Новый снимок: `docs/screenshots/a48/after/overview-orchestrator-top.png`; предыдущие сравнительные снимки показывают состояние до этого запроса. Проверка синтаксиса workflow.js прошла. + +## 2026-08-31 — разводка и цвета стрелок + +По запросу владельца изменено только отображение существующих связей. Нисходящая связь выходит снизу и входит сверху; переходы между соседними карточками идут напрямую, обратные связи — по отдельным нижним дорожкам, возврат к оркестратору — снаружи справа. Углы скруглены. SUCCESS/REVIEW_PASSED зелёные, REVIEW_FAILED/ERROR красные пунктирные, NEXT/ALWAYS золотые; наконечники и подписи используют соответствующий цвет. Невидимый hit-path больше не перекрашивает видимый путь. Длинные подписи переносятся в межузловом промежутке. Fit учитывает внешние линии. + +`node tests/test_workflow_routes_a48.js`: шесть связей текущей раскладки не пересекают 13 карточек, направление портов и возвратные дорожки проверены. Оба прежних JS-набора проходят. В браузере подтверждены разные stroke/marker, прозрачность шести hit-path, отсутствие пересечений подписей с узлами и ошибок консоли. Новый снимок: `after/overview-colored-arrows.png`. Старые снимки в галерее остаются историческим сравнением. Топология и настройки workflow не менялись. Полный произвольный граф с препятствиями не проверен; маршрутизация рассчитана на текущую раскладку по рядам. diff --git a/docs/screenshots/a48/after/overview-colored-arrows.png b/docs/screenshots/a48/after/overview-colored-arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..9f7852b03c3fb0648604082366c3ee9cc62e875f GIT binary patch literal 150545 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/a48/index.html b/docs/screenshots/a48/index.html index 00dcb63..9461bcd 100644 --- a/docs/screenshots/a48/index.html +++ b/docs/screenshots/a48/index.html @@ -1,4 +1,4 @@ A48 — визуальное сравнение -

A48 · Сравнение с макетами

Клиент проверен с живыми данными; визуальное согласование остаётся за владельцем. «До»: хаб 81a58f6. «После»: клиент A48 с тем же защищённым API. 21 снимок до и 21 после. Аккаунтов 0, поэтому заполненные карточки и выбор реальной модели не проверены.

База кода: 80aab00. Контрольная ширина снимков: 1280 px. Макеты имеют разные исходные размеры; изображения показаны полностью, без подмены данных.

Обзор 1536×1024 · Граф после перетаскивания и вписывания · Адаптивность 760 px

+

A48 · Сравнение с макетами

Клиент проверен с живыми данными; визуальное согласование остаётся за владельцем. «До»: хаб 81a58f6. «После»: клиент A48 с тем же защищённым API. 21 снимок до и 21 после. Аккаунтов 0, поэтому заполненные карточки и выбор реальной модели не проверены.

База кода: 80aab00. Контрольная ширина снимков: 1280 px. Макеты имеют разные исходные размеры; изображения показаны полностью, без подмены данных.

Обзор 1536×1024 · Граф после перетаскивания и вписывания · Адаптивность 760 px

Последняя доработка: оркестратор сверху и цветные стрелки

diff --git a/src/antigravity_provider/router/web/static/index.html b/src/antigravity_provider/router/web/static/index.html index 0f44855..1c75406 100644 --- a/src/antigravity_provider/router/web/static/index.html +++ b/src/antigravity_provider/router/web/static/index.html @@ -128,7 +128,7 @@
- +
@@ -136,7 +136,7 @@
ОжидаетРаботаетПроверяетОшибкаЗавершено - → Успех⇢ Возврат + → Успех⇢ Возврат / ошибка→ Следующий шаг
diff --git a/src/antigravity_provider/router/web/static/workflow.css b/src/antigravity_provider/router/web/static/workflow.css index a512d66..32badd7 100644 --- a/src/antigravity_provider/router/web/static/workflow.css +++ b/src/antigravity_provider/router/web/static/workflow.css @@ -188,3 +188,16 @@ body[data-workflow-mode="edit"] .workflow-toolbar { display:flex; justify-conten .workflow-inspector .inspector-section { padding:10px; margin:8px 0; } .workflow-inspector .inspector-section p { line-height:1.4; margin:6px 0; } .workflow-inspector dl { gap:6px 10px; margin:8px 0; } +/* Keep the interaction hit area invisible: it must not paint over colored links. */ +.workflow-edges .workflow-edge-hit { stroke:transparent; stroke-width:16; fill:none; marker-end:none; } +.edge-success { --edge-color:var(--status-healthy); } +.edge-return { --edge-color:var(--status-error); } +.edge-next { --edge-color:var(--accent); } +.workflow-edges .workflow-link { stroke:var(--edge-color); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; marker-end:revert-layer; } +.workflow-edges .workflow-link.edge-success { marker-end:url(#wf-arrow-success); } +.workflow-edges .workflow-link.edge-return { marker-end:url(#wf-arrow-return); stroke-dasharray:5 5; } +.workflow-edges .workflow-link.edge-next { marker-end:url(#wf-arrow-next); } +.workflow-edges marker path { fill:var(--edge-color); stroke:none; marker-end:none; } +.edge-label-group .workflow-edge-label { fill:var(--edge-color); font-size:10px; } +.edge-label-group .workflow-label-bg { fill:var(--canvas-bg); stroke:none; } +.edge-legend.next { color:var(--accent); } diff --git a/src/antigravity_provider/router/web/static/workflow.js b/src/antigravity_provider/router/web/static/workflow.js index 04160da..9495d01 100644 --- a/src/antigravity_provider/router/web/static/workflow.js +++ b/src/antigravity_provider/router/web/static/workflow.js @@ -326,33 +326,76 @@ function finishConnection(event) { openEdgeDialog({ id: `edge-${Date.now()}`, source, target, condition: 'SUCCESS', label: '' }, true); } +function roundedWorkflowPath(points, radius = 18) { + let path = `M ${points[0].x} ${points[0].y}`; + for (let i = 1; i < points.length - 1; i++) { + const prev = points[i-1], corner = points[i], next = points[i+1]; + const before = Math.hypot(corner.x-prev.x,corner.y-prev.y); + const after = Math.hypot(next.x-corner.x,next.y-corner.y); + const r = Math.min(radius,before/2,after/2); + if (!r) continue; + const x = corner.x+(prev.x-corner.x)*r/before, y = corner.y+(prev.y-corner.y)*r/before; + const nx = corner.x+(next.x-corner.x)*r/after, ny = corner.y+(next.y-corner.y)*r/after; + path += ` L ${x} ${y} Q ${corner.x} ${corner.y} ${nx} ${ny}`; + } + const end = points.at(-1); + return path + ` L ${end.x} ${end.y}`; +} + +function workflowEdgeRoute(source, target, lane = 0) { + const sx = source.x+source.width/2, tx = target.x+target.width/2; + const sy = source.y+source.height/2, ty = target.y+target.height/2; + // Downward branches leave the bottom and enter the top of the next row. + if (target.y >= source.y+source.height+32) { + const y = (source.y+source.height+target.y)/2; + return {points:[{x:sx,y:source.y+source.height+5},{x:sx,y},{x:tx,y},{x:tx,y:target.y-7}],x:(sx+tx)/2,y:y-10,width:Math.max(100,Math.abs(tx-sx)-24)}; + } + // Forward transitions between peers use the open horizontal corridor. + if (Math.abs(sy-ty)<40 && target.x >= source.x+source.width+24) { + const x1=source.x+source.width+5, x2=target.x-7; + return {points:[{x:x1,y:sy},{x:x2,y:ty}],x:(x1+x2)/2,y:Math.min(sy,ty)-16,width:Math.max(50,x2-x1-10)}; + } + // Feedback between peers runs below their row, separate from forward arrows. + if (Math.abs(sy-ty)<40) { + const y=Math.max(source.y+source.height,target.y+target.height)+38+lane*28; + return {points:[{x:sx,y:source.y+source.height+5},{x:sx,y},{x:tx,y},{x:tx,y:target.y+target.height+7}],x:(sx+tx)/2,y:y+14,width:Math.max(90,Math.abs(tx-sx)-30)}; + } + // Upward return travels outside both nodes and enters from the right. + const x=Math.max(source.x+source.width,target.x+target.width)+48+lane*24; + return {points:[{x:source.x+source.width+5,y:sy},{x,y:sy},{x,y:ty},{x:target.x+target.width+7,y:ty}],x:(x+target.x+target.width)/2,y:ty-14,width:Math.max(80,x-target.x-target.width-24)}; +} + +function workflowLabelLines(text, width) { + const limit=Math.max(8,Math.floor(width/5.7)); + const words=String(text).split(/\s+/), lines=[]; + let line=''; + for (const word of words) { + if (line && (line+' '+word).length>limit) { lines.push(line); line=''; } + line+=(line?' ':'')+word; + } + if(line) lines.push(line); + return lines; +} + function drawWorkflowEdges() { const svg = document.getElementById('workflow-edges'); const layer = document.getElementById('workflow-edge-layer'); if (!svg || !layer) return; - const parts = []; - const labels = []; - const occupiedLabels = []; + const parts = [], labels = []; + let feedbackLane=0; workflowUi.draftEdges.forEach((edge) => { const source = document.querySelector(`.workflow-node[data-agent-id="${CSS.escape(edge.source)}"]`); const target = document.querySelector(`.workflow-node[data-agent-id="${CSS.escape(edge.target)}"]`); if (!source || !target) return; - const x1 = source.offsetLeft + source.offsetWidth; - const y1 = source.offsetTop + source.offsetHeight / 2; - const x2 = target.offsetLeft; - const y2 = target.offsetTop + target.offsetHeight / 2; - const klass = String(edge.condition || '').toLowerCase(); - const label = edge.label || edge.condition; - const labelWidth = Math.max(70, String(label).length * 6 + 16); - const labelX = (x1 + x2) / 2; - let labelY = Math.min(source.offsetTop, target.offsetTop) - 30; - const boxes = [...document.querySelectorAll('.workflow-node')].map(node => ({left:node.offsetLeft,top:node.offsetTop,width:node.offsetWidth,height:node.offsetHeight})); - const overlaps = box => labelX + labelWidth/2 > box.left - 6 && labelX - labelWidth/2 < box.left + box.width + 6 && labelY + 12 > box.top - 6 && labelY - 12 < box.top + box.height + 6; - while ([...boxes,...occupiedLabels].some(overlaps)) labelY -= 30; - occupiedLabels.push({left:labelX-labelWidth/2,top:labelY-12,width:labelWidth,height:24}); - const path = `M ${x1} ${y1} C ${x1+28} ${y1}, ${x1+28} ${labelY}, ${x1} ${labelY} L ${x2} ${labelY} C ${x2-28} ${labelY}, ${x2-28} ${y2}, ${x2} ${y2}`; - labels.push(`${wfEscape(label)}`); - parts.push(``); + const rect=node=>({x:node.offsetLeft,y:node.offsetTop,width:node.offsetWidth,height:node.offsetHeight}); + const condition=String(edge.condition || '').toUpperCase(); + const tone=['REVIEW_FAILED','ERROR'].includes(condition)?'return':['SUCCESS','REVIEW_PASSED'].includes(condition)?'success':'next'; + const route=workflowEdgeRoute(rect(source),rect(target),tone==='return'?feedbackLane++:0); + const path=roundedWorkflowPath(route.points); + const lines=workflowLabelLines(edge.label || condition,Math.min(220,route.width)); + const width=Math.max(...lines.map(line=>line.length))*5.7+12, height=lines.length*13+6; + labels.push(`${wfEscape(edge.label || condition)} · ${wfEscape(condition)}${lines.map((line,i)=>`${wfEscape(line)}`).join('')}`); + parts.push(``); }); layer.innerHTML = parts.join(''); document.getElementById('workflow-label-layer').innerHTML = labels.join(''); @@ -424,6 +467,11 @@ function fitWorkflowGraph() { maxX = Math.max(maxX, x + Number(label.getAttribute('width'))); maxY = Math.max(maxY, y + Number(label.getAttribute('height'))); }); + document.querySelectorAll('.workflow-link').forEach(path => { + const box = path.getBBox(); + minX = Math.min(minX, box.x); minY = Math.min(minY, box.y); + maxX = Math.max(maxX, box.x+box.width); maxY = Math.max(maxY, box.y+box.height); + }); const width = maxX - minX || 200; const height = maxY - minY || 120; const pad = 60; diff --git a/tests/test_workflow_routes_a48.js b/tests/test_workflow_routes_a48.js new file mode 100644 index 0000000..dae82ff --- /dev/null +++ b/tests/test_workflow_routes_a48.js @@ -0,0 +1,27 @@ +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const vm = require('node:vm'); +const context = vm.createContext({document:{addEventListener(){}},console}); +vm.runInContext(fs.readFileSync('src/antigravity_provider/router/web/static/workflow.js','utf8'),context); +const nodes=[{x:430,y:60,width:250,height:116},...Array.from({length:12},(_,i)=>({x:70+i%3*360,y:250+Math.floor(i/3)*240,width:250,height:116}))]; +const edges=[[0,1,0],[1,2,0],[2,1,0],[2,3,0],[3,2,1],[3,0,0]]; +for(const [source,target,lane] of edges){ + const route=context.workflowEdgeRoute(nodes[source],nodes[target],lane); + for(let i=1;in.x&&a.xn.y&&Math.min(a.y,b.y)n.y&&a.yn.x&&Math.min(a.x,b.x)${target} crosses a card`); + } + } + assert(!context.roundedWorkflowPath(route.points).includes('NaN')); +} +const down=context.workflowEdgeRoute(nodes[0],nodes[1]); +assert.equal(down.points[0].x,nodes[0].x+nodes[0].width/2); +assert.equal(down.points.at(-1).y,nodes[1].y-7); +const feedback=context.workflowEdgeRoute(nodes[2],nodes[1]); +assert(feedback.points[1].y>nodes[2].y+nodes[2].height); +console.log('A48 routes: downward ports, separate feedback lanes, six routes avoid all 13 cards');