elelem v0.3.0 — callbacks chain instead of replace Registering the same On* twice now runs both handlers, in registration order, and the first error stops the chain. Previously the second registration silently discarded the first, which failed by absence: no error, no log, just a handler that stopped running. ResetCallback(kinds...) and ResetCallbacks() are how a caller replaces rather than adds. The two token-limit handlers keep replace semantics on purpose.