n8n/packages/cli/src/execution-lifecycle
Guillaume Jacquart aa7edc2b03
perf(editor): Keep sub-workflow progress off the execution hot path
Two costs that scaled with the number of sub-executions rather than with
anything visible, both of which a parent loop over a few hundred items would
have multiplied.

The progress arc no longer trickles between steps. The trickle needed a
1s interval, and because the composable was called unconditionally, every
default node on the canvas ran one whether a sub-workflow was executing or
not. The arc's own reason for existing was weak once the point was granted
that the rotating running border already shows the node is alive, so this
drops the behaviour rather than gating the timer.

The reachable-node count is now computed on first emit instead of at hook
registration, and node events return early when no parent pushRef resolves.
Executions with no editor session — the overwhelming majority — no longer
walk the child workflow's graph at all. Nodes are still tallied before that
bail-out, so an editor attaching mid-run sees a truthful count.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 10:50:08 +02:00
..
__tests__ perf(editor): Keep sub-workflow progress off the execution hot path 2026-10-06 10:50:08 +02:00
shared chore: Add typescript/no-deprecated and establish a baseline (#40168) 2026-10-02 12:54:37 +00:00
execute-error-workflow.ts chore: Bundle/2.x (#40030) 2026-10-01 09:50:06 +03:00
execution-lifecycle-hooks.ts perf(editor): Keep sub-workflow progress off the execution hot path 2026-10-06 10:50:08 +02:00
restore-binary-data-id.ts fix: Serve binary data stored in the temp execution dir (#38270) 2026-09-11 09:51:30 +00:00
save-execution-progress.ts refactor(core): Migrate execution service to ExecutionPersistence (#31762) 2026-06-05 11:41:46 +00:00
to-save-settings.ts refactor(core): Port save settings (#18557) 2025-08-20 09:49:54 +02:00