Start, stop and pause flows, and show what their nodes print
Flows can now be taken off the engine and put back. Stopped state lives in a runtime.json beside the flow, not in the flow document: the canvas autosaves that document, so a stopped flow would otherwise start itself again on the next edit. A stopped flow gets no subscriptions, schedules or webhooks, its nodes are skipped by the scheduler, and running it answers 409. Pausing holds a flow's nodes while its values keep arriving, so the canvas still shows what is coming in. Node code is user code and print is how it says things, so stdout is teed through a contextvar sink active only during a node execution — one event per execution, capped, so a chatty node cannot outrun the stream. A node that fails sends its traceback the same way, trimmed to the author's own frames. The dock gains a logs panel and a pause control; the dashboard replaces its placeholder with what is running, stopped or failing; the edge inspector can send the last message again. Single-stepping is deferred and noted: the scheduler keeps no progress between calls, so a step button would re-run the same node rather than advance. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
606ab3c423
commit
7344eac262
@@ -52,6 +52,11 @@ external interfaces. See `docs/architecture/structure.canvas` → *Backend – M
|
||||
- [x] REST + WebSocket API over the engine: create/read/update flows, edit node
|
||||
source, run, and stream values, node status and execution events
|
||||
- [x] Dependency-loop detection and graph validation surfaced as API errors
|
||||
- [x] Per-flow start/stop, stored in a `runtime.json` beside the flow so it
|
||||
survives a restart and stays out of the autosaved document; pause/resume
|
||||
holds a flow's nodes while its values keep arriving
|
||||
- [x] Node log streaming: what a node prints, and the traceback of one that
|
||||
fails, reach the editor as `node_log` events
|
||||
- [ ] MQTT broker / InfluxDB compose services for local development
|
||||
- [x] Git-based versioning of the flow store (one commit per saved change)
|
||||
- [x] Draft/publish split: edits autosave to `flow.draft.json` / `nodes.draft/`,
|
||||
@@ -94,6 +99,10 @@ React + Vite, primarily desktop but usable on mobile. See `docs/architecture/str
|
||||
- [x] Validation shown on the node it belongs to, and summarised in the dock
|
||||
- [x] Publish control and draft markers in the flow bar, discard in the flow
|
||||
panel, and a conflict dialog when another client got there first
|
||||
- [x] Dashboard showing which flows run, which are stopped and which have
|
||||
errors, with a switch per flow
|
||||
- [x] Logs panel in the canvas dock, pause/resume beside Run, and replaying an
|
||||
edge's last message from the inspector
|
||||
- [ ] Device assignment per node, selectable from compatible devices
|
||||
- [ ] Test-node affordance on the canvas
|
||||
- [ ] User management screens
|
||||
|
||||
Reference in New Issue
Block a user