feat(workflows): add full Workflow section — visual constructor, dashboard & execution engine #1
Reference in New Issue
Block a user
Delete Branch "genspark_ai_developer"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
New Feature: Workflow Builder & Execution Engine
Database Schema (4 new tables)
Backend (server/workflows.ts + 13 tRPC endpoints)
Frontend — Visual Constructor
Navigation & Routing
Files Changed (12 new, 4 modified)
drizzle/schema.ts(4 tables),drizzle/0007_workflows.sql,server/workflows.ts, 6 React componentsApp.tsx,DashboardLayout.tsx,routers.ts,schema.tsPHASE A COMPLETE: каждый агент теперь может жить в отдельном Docker Swarm контейнере как автономная единица. - HTTP-сервер агента: GET /health, GET /info, POST /chat, POST /task, GET /tasks, GET /tasks/{id}, GET /memory - Загружает конфиг из shared DB по AGENT_ID env var (model, systemPrompt, allowedTools) - 4 горутины-воркера для параллельной обработки задач - In-memory task queue (buffered channel, depth=100) + ring buffer последних 50 задач - Callback URL: POST результата при завершении async задачи - Sliding window памяти: загружает последние 20 сообщений из DB при каждом запросе - Изолированные инструменты: агент получает только allowedTools из своей конфигурации - Агент сам вызывает LLM напрямую через LLM_BASE_URL (не через Gateway) - Graceful shutdown с таймаутом 15s - 20 unit-тестов: все PASS - Покрытие: инициализация, task queue, /health, /info, /task, /tasks, /memory, инструменты, lifecycle - Multi-stage Go build: golang:1.23-alpine → alpine:3.21 - EXPOSE 8001, HEALTHCHECK на /health каждые 15s - Агенты деплоятся динамически Swarm (не статический сервис в stack) - Новые поля в таблице agents: serviceName, servicePort, containerImage, containerStatus - SQL migration: drizzle/migrations/0006_agent_container_fields.sql - AgentConfig + AgentRow: новые поля serviceName, servicePort, containerImage, containerStatus - UpdateContainerStatus() — обновление статуса при деплое/остановке - GetAgentHistory() — sliding window памяти агента из DB - SaveHistory() — сохранение диалога агента в DB - delegate_to_agent: реальный HTTP POST к контейнеру агента через overlay DNS - sync: POST /chat (ждёт ответ) - async: POST /task (возвращает task_id) - fallback: если агент не запущен — информативное сообщение - SetDatabase() — инжекция DB для резолва адресов живых агентов - Orchestrator инжектирует DB в Executor через SetDatabase() при инициализацииView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.