Skip to content

Fix CallLogSummary desync, double real invoke, per-caller rate-limit pruning, add args cap (#1193-#1196) - #1224

Merged
Maki-Zeninn merged 2 commits into
Maki-Zeninn:mainfrom
icentedward76-sketch:fix-configure-route-double-invoke-rate-limit-args-cap-1193-1194-1195-1196
Aug 29, 2026
Merged

Fix CallLogSummary desync, double real invoke, per-caller rate-limit pruning, add args cap (#1193-#1196)#1224
Maki-Zeninn merged 2 commits into
Maki-Zeninn:mainfrom
icentedward76-sketch:fix-configure-route-double-invoke-rate-limit-args-cap-1193-1194-1195-1196

Conversation

@icentedward76-sketch

Copy link
Copy Markdown
Contributor

Closes #1193
Closes #1194
Closes #1195
Closes #1196

…pruning, add args cap

- router-middleware: configure_route only wipes CallLog when
  log_retention actually changes, and now goes through call_log::clear
  so CallLogSummary is cleared alongside it instead of going stale —
  the same desync class issue Maki-Zeninn#812 fixed for reset_route_call_log,
  reintroduced here through a different entry point (Maki-Zeninn#1193).
- router-middleware: prune_stale_rate_limits now resolves each
  caller's *effective* window (their per-caller CallerRateLimitConfig
  override when set, else the route's base window) instead of pruning
  every caller against the route's base window alone — a caller with a
  longer override window was having their rate-limit state evicted,
  and their call count silently reset, long before their real window
  elapsed (Maki-Zeninn#1196).
- router-execution: execute()'s simulate_first path called
  dry_run_invoke (a genuine try_invoke_contract call, not a
  side-effect-free preview) once for "simulation" and again as the
  first retry-loop attempt, invoking the target function for real
  twice. The simulation result is now carried into the loop as attempt
  Maki-Zeninn#1 instead of being re-invoked (Maki-Zeninn#1194).
- router-execution: added MAX_ARGS_PER_CALL (20), mirroring
  router-multicall's existing guard, and a new ArgsTooLarge error
  variant, checked in both execute() and simulate() before args reach
  try_invoke_contract (Maki-Zeninn#1195).

Closes Maki-Zeninn#1193
Closes Maki-Zeninn#1194
Closes Maki-Zeninn#1195
Closes Maki-Zeninn#1196
@drips-wave

drips-wave Bot commented Aug 29, 2026

Copy link
Copy Markdown

@icentedward76-sketch Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Maki-Zeninn
Maki-Zeninn merged commit 2520b59 into Maki-Zeninn:main Aug 29, 2026
7 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment