Should debug nodes be capable of passing the message forwards?

Yea I see now that there is a winder interest in the pass through debug node so I'll be adding support for this back in into logIO node.

I'm considering adding an output node to existing logIO inline and wired modes.

  • in case logIO is in inline mode, logIO behaves as core debug node, meaning it logs OUT messages of left connection node + passes messages forward
  • in case logIO is in wired mode, logIO logs IN or/and OUT messages of all connected nodes + passes messages forward

All other logIO modes all, select, flow will remain as is, with only input wire connection.

Edit: nothing much can be done regarding button and output kinda overlapping each other in this case
image

Yeah, this is why Dave pushed back (and why I said I think it's time for a rethink on node buttons) as there is a strong use case for having both input+button and output+button.

Fwiw, my image-tools viewer node has this arrangement because cloning images when viewing/debugging is super expensive. So you wouldn't be the first.

1 Like

Yup - still pushing back... this is my small hill to die on..
looks really fugly (IMHO)... just don't do it.

1 Like

Only other way I can think of atm to have a cake and eat it too is to look into annotations and to create custom svg button, similar to flow-debugger.

Not sure it's worth it though for just a visual effect.

Just because I strenuously object to it doesn't mean you can't do it... but yes as this is debugging then something like the debugger would not be inappropriate.

I don't personally like the idea that ticking or unticking a checkbox in the config can delete a wire in the flow.

But it's not so different from a function node's Setup tab where you can specify the number of outputs; if you reduce the number, wires are deleted.

Maybe a similar setup tab on the debug node for consistency?
Obviously only 1 or 0 allowed!
Or should this be on the Appearance tab?

These options both make it harder to use the more economical version of the debug node though.

Incidentally, why is the debug node's icon at the RHS?

:smile:

I agree - unfortunately, there is a need. Short of redesigning nodes appearance (e.g. inset buttons) or adding a feature (like hover to reveal or right click context menu options) to nodes, we have little choice.

TBH, I really dislike that we have to deploy after toggling a button (especially the debug node). Dont get me wrong, i understand why it is the way it is but there are ways we could solve this. For example, a local store (of overrides) that can be updated without deploy would make the situation a lot smoother (storage on systems permitting) but I'm not trying to solve that here and now.

Is it more or less fugly ?

This is what I was suggesting above. The toggle on/off inside the node.
The input/output wires are always there.

When the toggle is on, debug is available in the debug panel, if off, the debug node is a simple pass-through.

It means, that we don't need to rewire anything to add (activate) or remove (de-activate) debug.

1 Like

err - no you don't "have top" deploy - it is flagging that the state of the flow has changed so there are changes - but you don't have to deploy. You can always hit ctrl-z if you want.

do you mean (maybe) that the state of each debug node (and other nodes with toggles) is held purely in the client browser - so always off in the flow by default... (otherwise all would be on for every "new" client)... Interesting idea...

Slightly less :slight_smile:

You're right (as usual ;)) I'll me be more explicit. Once you toggle the debug, the workspace is marked dirty. Only a refresh or deploy clears this state. At this point my OCD kicks in and I need to deploy. Sometimes I don't want to deploy. Sometimes I may have actually made modifications that I really do want to deploy. The point is it's just a bit of a pain and suboptimal UX (IMVHO)

That is one option yes. But in this thought experiment I was thinking of a server local state store.

wouldn't that get really messy real quick when team editing ?

Re deploy - yes - it would be nice if click the toggle checked the undo history first and if it had already been toggled did an undo instead.

While on the topic of debug button (and probably other nodes with buttons) behavior, not sure if anyone noticed the following bug:

  • if you deselect the button, debug node stops logging without a deploy (as intended)
  • if you then reload the page, you get a warning about unsaved changes but you decide to ignore them
  • upon page reload button is represented with active ON state as it was before changes were made (as intended), but actual state of the debug node is inactive - logs are off, although button represents active state

Actually, it is probably significantly less accessible and non-touch friendly. Whether or not it looks "nicer" may be a moot point.

But that would cause different behaviours on different browser even for the same user. I would politely suggest that is an even worse outcome?

Or even testing on multiple browsers!

1 Like

No it would be a much cleaner and better UX

As of writing (v3.x, v4.x): If you click to disable debug, server side stops sending messages (to all open clients). If you look at the the 2nd browser, the debug is enabled - but no messages are arriving. If I deploy the first, the 2nd does not know or reflect this change and you would be unaware there was a change until you deploy on the 2nd - at which time you are warned about needing to merge. In effect, by having the state in a server side store, anyone refreshing (or deploying) would not get a merge conflict and would (ideally) just get back the updated state. In an ideal world, the state change would actually be transmitted to open editors (meaning they could reflect the users choice - all without ever having to deal with the dreaded "merge"). In fact, a deploy is already communicated to all open editors today (you get a 5sec toast about changes been made) however you have to catch that, review it/merge it, refresh the page (potentially losing local changes) or face the merge issue when you deploy.

Example: I disabled the debug on the LHS and deployed. 10secs later, i look at the RHS and see the debug is enabled but there are no messages coming in! I decide to change something innocuous and I am faced with the merge toast.

chrome_wXt3gEVDNC

Now play that out as server side state (instead of flow modification) and instead of displaying a toast about flows changed, the editor simply updates the state of the debug button on connected clients!

EDIT
For the record: This is a thought experiment - what I am suggesting may ultimately not be feasible

I think it would greatly improve things TBH Dave. See above post.

Its not a bug, but a side effect of how the button state is persisted in flow json. This bolsters some of what I was talking about above.

I know, just trying to find a good temp solution until we get core support to be more flexible with the UI.

What about this? :slight_smile:

Maybe I misunderstood what was being said. It looked as though the idea was to store the current on/off state in browser storage which would certainly result in different instances of the Editor having different behaviours.

I am certainly in favour of things that would make multi-editor use more consistent.