The frontend serializeValue hook resolved %date:...% at queue time, baking
the queue timestamp into the serialized prompt. Prompts queued within the
same second (or re-run from history) shared one filename and silently
overwrote each other when add_counter_to_filename was off. %date% now
passes through to the backend, which formats it with datetime.now() at
save time; the date: check also runs before the '.' split so formats with
dots (e.g. %date:yyyy.M.d%) are not mistaken for %Node.Widget% patterns.
As a safety net, counter-less saves now fall back to an incrementing
suffix when the target file already exists instead of overwriting it.