Since accumulate string only takes a single symbol per push I figured to emulate it with a count node and store each value in a separate buffer. Alas all values are reseted to the current “push” ignoring the update conditions.
Which “pulse…” nodes are you using? I assume pusle-on-true. You could actually skip that since boolean becoming true is treated as a pulse. This looks to me like it should work; perhaps the problem is with other code that is not included here? You might also want to consider using a queue instead of simulating one with counter. gweimer/utils — XOD has queue-buffer node & util-example-queue showing advanced usage; you would not need to implement both push & pop functions. Using this generic node would likely require more memory & CPU cycles than your custom code, though.
It could be a timing issue. The buffers could be getting update pulse before format has calculated the new value. You don’t show surrounding code, so it is difficult to determine exactly what is happening. A ‘delay’ node to slow down pulse in buffer code might help (above the ‘count’ node means you only need one ‘delay’ node).
Another alternative is to use pulse to buffer node above format-number and use ‘gate’ nodes to determine which of the buffer nodes above concat get that pulse, but you still might need defer node to force format-number to update before buffers update.