You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
workflow: dispose() drops the ephemeral Bot records before the release finishes #1387
What goes wrong — write() lands the state with ephemeral/handed already gone, and releaseAll is fired without being awaited (void). On a hot reload or process exit the release can be cut off half-way, so those Bots stay in the roster as hidden forever: the user cannot see them and cannot delete them. The longer the plugin lives the more of them accumulate.
Fix — release first, then delete and write(), and return the promise so the host can await dispose().
Same area, smaller — plugins/workflow/index.js:27,47,56-59: liveNames gains a name in spawn() but release(id) never removes it, so the set grows without bound inside one process.
Reproduce — start a workflow with spawn returning ids, call dispose() while release is slow (returns a pending promise), then read the persisted state: runs[*].ephemeral is gone while release never resolved.
Activity
docs(workflow): record the dispose order and the runner-name release (#…
fix(workflow): release run Bots before dispose() drops their ids (#1387)
fix(workflow): release run Bots before dispose() drops their ids (Thi…
End workflow zombie runs on dispose and reap (ThinkFlowLab#1465)
Release every live run's Bots on workflow dispose
fix(workflow): settle a run's node map when the run is ended (ThinkFl…
Release every live run's Bots on workflow dispose
Release every live run's Bots on workflow dispose