Go to file
Lucio Lelii 0f155e2040 feat(flow-editor): add swimlanes and JSON IO type support
Implements the frontend side of the control-flow engine's Fase 4-5
backend extension: presentation-only swimlanes for grouping nodes by
actor/responsibility, and a new IOType.JSON for structured input/
output descriptors. Both are additive/optional fields, backward
compatible with existing flows.

Swimlanes:
- Model: FlowLane (id, name, description, order, color), FlowData.lanes,
  and an optional laneId on every block/container.
- Lane management (add/rename/reorder/color/delete) in a new "Lanes"
  section of the title toolbar, mirroring the existing Global Inputs
  editor. Deleting a lane clears laneId on any node that referenced it,
  avoiding an immediate NODE_LANE_NOT_FOUND validation error.
- Real visual swimlanes on the rete.js canvas: horizontal color-coded
  bands with labels that pan/zoom together with the nodes, backed by a
  transform layer kept in sync with the area's live transform.
- Drag-to-reassign: moving a node updates its laneId based on the drop
  Y position, but only for genuine pointer drags — programmatic moves
  (initial load, clone, server-side node regeneration) are excluded via
  the existing programmatic-translation tracking, so loading a flow
  never silently reassigns lanes.
- A small lane badge on the node header confirms the current
  assignment after a drag.
- The readonly/execution-view diff and patch logic now accounts for
  laneId and lanes so live updates are detected correctly.

Also fixes a data-loss bug found while wiring this up: exportGraph()
rebuilt each node and the top-level FlowData as explicit object
literals that never carried laneId/lanes through, and flowFromApi()
never normalized lanes coming back from the backend — both would have
silently dropped the field on save/reload, the same class of bug fixed
earlier for biasAnnotations.

JSON IO type:
- Global input type picker now offers JSON alongside TEXT/FILE.
- Behavioral probe editor: JSON-typed mock outputs default to {} and
  use the JSON textarea editor instead of a plain text input.
- portSelectableKinds (generic-node) includes JSON among the concrete
  types offered wherever a port's kind is ANY.

Verified with the full suite (253/253, 21 new tests) and a live
end-to-end browser check: created two lanes, dragged a node from the
unassigned area into a lane (confirmed via the node's lane badge),
saved, and reopened the saved flow with the lane assignment intact.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-22 14:54:43 +02:00
.vscode refactor: code quality improvements (tasks 1-15) 2026-04-09 14:53:02 +02:00
docker refactor: code quality improvements (tasks 1-15) 2026-04-09 14:53:02 +02:00
docs feat: improve auth flow and task execution UX 2026-04-09 14:01:56 +02:00
public solved node input output issue 2026-01-28 17:19:57 +01:00
src feat(flow-editor): add swimlanes and JSON IO type support 2026-07-22 14:54:43 +02:00
.dockerignore Add suspended execution resume support and production Docker setup 2026-03-22 10:35:30 +01:00
.editorconfig initial commit 2025-12-11 12:51:55 +01:00
.gitignore initial commit 2025-12-11 12:51:55 +01:00
.postcssrc.json initial commit 2025-12-11 12:51:55 +01:00
Dockerfile turnstile siteKey added with a env var 2026-03-26 13:51:31 +01:00
README.md Improve schema-driven nodes and interactive execution chat 2026-03-19 15:18:09 +01:00
angular.json Add suspended execution resume support and production Docker setup 2026-03-22 10:35:30 +01:00
components.json first commit 2026-01-07 16:07:33 +01:00
nginx.conf Add suspended execution resume support and production Docker setup 2026-03-22 10:35:30 +01:00
package-lock.json refactor: code quality improvements (tasks 1-15) 2026-04-09 14:53:02 +02:00
package.json refactor: code quality improvements (tasks 1-15) 2026-04-09 14:53:02 +02:00
tsconfig.app.json modified for deprecation 2026-04-10 09:08:38 +02:00
tsconfig.json modified for deprecation 2026-04-10 09:08:38 +02:00
tsconfig.spec.json modified for deprecation 2026-04-10 09:08:38 +02:00

README.md

HumAInFlow

This project was generated using Angular CLI version 21.0.3.

Development server

To start a local development server, run:

ng serve

Once the server is running, open your browser and navigate to http://localhost:4200/. The application will automatically reload whenever you modify any of the source files.

Code scaffolding

Angular CLI includes powerful code scaffolding tools. To generate a new component, run:

ng generate component component-name

For a complete list of available schematics (such as components, directives, or pipes), run:

ng generate --help

Building

To build the project run:

ng build

This will compile your project and store the build artifacts in the dist/ directory. By default, the production build optimizes your application for performance and speed.

Running unit tests

To execute unit tests with the Vitest test runner, use the following command:

ng test

Running end-to-end tests

For end-to-end (e2e) testing, run:

ng e2e

Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.

Additional Resources

For more information on using the Angular CLI, including detailed command references, visit the Angular CLI Overview and Command Reference page.