Improvements
- Response header attribute update — Use
_inngest.response.headers attribute rather than inngest.response_headers metadata for response header tracking (#3797)
- Queue processing performance — Use goroutines for processing partitions, add weighted distribution for peek sizes, and start collecting peeked item metrics (#3775, #3784, #3727)
- Batch processing updates — Add max buffer size for batching and update batch job processing (#3747, #3773, #3770)
- Lease tracking improvements — Store lease issue timestamps and provide them to Extend/Release, and disable capacity lease acquire on backlog refill (#3800, #3736)
- Queue item scavenging — Track scavenge count for requeued queue items (#3799)
- Latency tracking — Make latency tracker a system job with a specific constructor for partition job tracking (#3793, #3787)
- EWMA caching — Add exponentially weighted moving average cache for improved performance (#3776)
- TLS ticket caching — Add cache for TLS tickets to reduce handshake overhead (#3762)
- Debounce and rate limit constraints — Update constraint API to handle combinations of debounce and rate limiting (#3749)
- Signal pause reliability — Retry pause writes for
waitForSignal registration (#3732)
- Compaction reliability — Prevent compaction from being context-cancelled and trigger compaction on delete by ID (#3722, #3720)
- Shard lease handling — Attempt to grab a shard lease before kicking off the ticker (#3719)
- AI metadata — Add more AI metadata to traces (#3629)
- Parallelism fix — Reset
die after parallelism ends (#3717)
- Concurrency key handling — Exclude custom concurrency keys missing in config (#3706)
- UI: Trace tooltips — Add tooltips for Inngest and server timing (#3789)
- UI: Run details view toggle — Add triple-escape toggle to switch between old and new Run Details views (#3711)
- Reduced log noise — Remove excessive logging, debug-level pause deletion logs, and connect worker capacity requeue messages (#3734, #3708, #3730)
- Step saving — Ensure only pending steps with opcode planned are saved (#3790)
Bug Fixes
- Fix duplicate synced app issues — De-duplicate synced apps that may or may not include a port (#3777)
- Trace infrastructure errors — Fix infrastructure error output for trace display (#3772)
- Pointer mismatch — Fix pointer mismatch and empty error message handling (#3778)
- Checkpoint API — Propagate SaveStep errors correctly in checkpoint API (#3758)
- Timeline visualization — Fix queue segment styling and add delay segment generation in timeline view (#3756)
- Expand/contract fix — Fix expand and contract behavior (#3742)
- Code block API cleanup — Clean up new code block API implementation (#3743)
- Capacity lease logging — Fix capacity lease extension error log (#3746)
- Throttle constraints — Fix throttle constraint handling (#3740)
- Peeked item metrics — Fix successive count logic, division by zero, and clock consistency in peeked item metrics (#3728) - Constraint check source — Add correct constraint check source (#3705)
- Idempotency key validation — Fix validation for long idempotency key IDs (#3795)
<details>
<summary>Full changelog</summary>
- Use
_inngest.response.headers attribute rather than inngest.response_headers metadata (#3797)
- Store lease issue timestamps and provide to Extend/Release (#3800)
- Track scavenge count for requeued queue items (#3799)
- Add tooltips for Inngest and server timing (#3789)
- Add test for duplicate apps (#3777)
- Make latency tracker a system job (#3793)
- Ensure we only save pending steps with opcode planned (#3790)
- Add specific constructor for latency partition job tracking (#3787)
- Add weighted distribution for peek sizes (#3784)
- EWMA cache (#3776)
- Move hook above error return on events page (#3774)
- Use goroutines for processing partitions (#3775)
- Update batch jobs (#3773)
- Update partition processing (#3770)
- Add cache for TLS tickets (#3762)
- Add max buffer size for batching (#3747)
- Update constraint API to handle combination of debounce + rate limit (#3749)
- Retry pause writes for waitForSignal registration (#3732)
- Remove excessive logging (#3734)
- Disable capacity lease acquire on backlog refill (#3736)
- Don't print requeue messages for connect worker capacity error (#3730)
- Start collecting peeked item metrics (#3727)
- Reset
die after parallelism ends (#3717)
- Prevent compaction from being context cancelled (#3722)
- Trigger compaction on delete by ID (#3720)
- Attempt to grab a shard lease before kicking off the ticker (#3719)
- Add more AI metadata (#3629)
- Implement toggle between old and new run details views (#3711)
- No longer debug log every pause deletion (#3708)
- Exclude custom concurrency keys missing in config (#3706)
- Fix infrastructure error output for trace (#3772)
- Fix pointer mismatch + empty error message (#3778)
- Propagate SaveStep errors in checkpoint API (#3758)
- Fix timeline visualization: update queue segment styling and add delay segment generation (#3756)
- Fix expand/contract (#3742)
- Code block API cleanup (#3743)
- Fix capacity lease extension error log (#3746)
- Fix throttle constraints (#3740)
- Fix peeked item metrics: successive count logic, division by zero, clock consistency (#3728)
- Add correct constraint check source (#3705)
</details>