You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Addresses the three deferred review comments from #663:
1. Idempotency no longer dedupes SIMULATED contractWrite previews. A preview
(is_simulated unset/true) skips the idempotency cache entirely, so a client
reusing a key across a preview and a later real execute can't get the cached
preview back in place of the broadcast. Only an explicit is_simulated=false
contractWrite is deduped (contractWriteIsSimulated mirrors the runner default).
2. The idem:noderun: cache now uses a native Badger TTL (new Storage.SetWithTTL,
backed by badger.Entry.WithTTL) so entries are reaped by the store even when a
key is never re-read (the common fresh-key-per-action case) — bounding growth
instead of relying on read-after-expiry deletion. The embedded timestamp +
read-time check remain as a safety net.
3. runNodeRespToOpenAPI wraps an EMPTY results array as {results: []} instead of
dropping it to metadata=null, so clients see a consistent shape for a
legitimately empty result set.
Also: gofmt trailing newline in version/version.go (left by the release bump).
Tests: contractWriteIsSimulated resolution, empty-array wrapping. Build clean.
0 commit comments