Center the orchestrator above saved subagent rows

This commit is contained in:
ochenstarik-ui 2026-08-31 16:06:40 +07:00
parent 144196bb01
commit f398616291
3 changed files with 6 additions and 2 deletions

View file

@ -61,3 +61,7 @@ HubSnapshot: generation, seq, timestamp, profiles_by_provider, all_profiles, rea
Переключатель LIVE/EDIT перенесён в шапку; KPI на desktop в одном ряду; инспектор занимает правый столбец рядом с графом и нижними карточками. Уплотнены шапка и холст. Подписи лежат на линиях связей, а не отдельно от них. Начальный вид сфокусирован на оркестраторе, Fit учитывает настоящие размеры узлов и подписей. Перетаскивание продолжает работать вне холста до отпускания мыши. Исправлены критический индикатор, объяснение сетевого замера, нулевая задержка в таблицах и отображение ранее настроенной, но неподтверждённой модели.
Оригинальная пользовательская вкладка с несохранённым графом не перезагружалась. Проверки выполнялись в отдельной вкладке того же защищённого preview. Python, службы и установленный хаб не менялись. Нужна последующая функциональная проверка на подключённых аккаунтах; визуальную приёмку выполняет владелец.
## 2026-08-31 — оркестратор сверху по запросу владельца
Владелец явно запросил изменить сохранённые координаты: оркестратор (430,60), первый ряд субагентов — два кодера и ревьюер на y=250; остальные 9 субагентов в трёх колонках ниже. Раскладка применена через штатную команду и сохранена `save_workflow`. После перезагрузки координаты подтверждены по DOM. Связи, модели и настройки агентов не менялись. Начальный вид клиента центрирует выбранного агента по горизонтали. Новый снимок: `docs/screenshots/a48/after/overview-orchestrator-top.png`; предыдущие сравнительные снимки показывают состояние до этого запроса. Проверка синтаксиса workflow.js прошла.

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

View file

@ -393,8 +393,8 @@ function focusWorkflowStart() {
const node = document.querySelector('.workflow-node.selected') || document.querySelector('.workflow-node');
if (!canvas || !node) return;
workflowUi.scale = .85;
workflowUi.panX = 80 - node.offsetLeft * workflowUi.scale;
workflowUi.panY = 110 - node.offsetTop * workflowUi.scale;
workflowUi.panX = canvas.clientWidth / 2 - (node.offsetLeft + node.offsetWidth / 2) * workflowUi.scale;
workflowUi.panY = 60 - node.offsetTop * workflowUi.scale;
updateCanvasTransform();
}