Skip to content

Releases: kpumuk/lazykiq

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 07 May 00:23
Immutable release. Only release title and notes can be modified.
c21d19a

This is mostly a maintenance release, which simplifies and cleans up the code, as well as Go version bump to pick up CVE fixes for TLS library.

Lazykiq will now ask for a confirmation before pausing or stopping a Sidekiq process in dangerous mode:

CleanShot 2026-05-06 at 19 55 39@2x

Changelog

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 24 Mar 12:32
Immutable release. Only release title and notes can be modified.
fdc2a0c

This release addresses visual artifacts for people that don't have Nerd fonts installed. We only used a single glyph to render the navbar, but for those who don't have it — it made the UI look broken due to missing UTF8 character.

There is a performance optimization for Errors screen, and some visual artifacts addressed when switching between screens.

CleanShot 2026-03-24 at 08 31 22@2x

I decided to promote this release to a minor version. The project turned 90 days yesterday, can't believe!

Changelog

v0.0.16

Choose a tag to compare

@github-actions github-actions released this 21 Mar 18:11
Immutable release. Only release title and notes can be modified.
0cc04aa

This release is mostly about performance and consistency. When filtering sorted sets, we loaded and parsed JSON for all items, but then rendered only some — but no more, cutting memory in half and saving on some CPU (especially when skipping some of the rows for pagination).

Speaking of pagination, previously I forgot to hook up [ and ] for filtered views, and now they should work fine. Another performance optimization is that previously when switching between views, old Redis requests continued and then the results were discarded — now we will cancel the request right away.

Oh, and speaking of consistency you can filter jobs in the queue view, which was not previously not possible (and is still impossible in native Sidekiq web).

CleanShot 2026-03-21 at 14 10 55@2x

Changelog

v0.0.15

Choose a tag to compare

@github-actions github-actions released this 19 Mar 16:49
Immutable release. Only release title and notes can be modified.
e747875

One more release to strengthen the release process: introduced release provenance bundles to the release artifacts (see Signed-Releases).

Changelog

v0.0.14

Choose a tag to compare

@github-actions github-actions released this 18 Mar 23:37
Immutable release. Only release title and notes can be modified.
e4819f2

There are no functional changes in this release, I have been refactoring the codebase and tightening security in a preparation for a 0.1 (or 1.0 if I feel brave) release.

Changelog

v0.0.13

Choose a tag to compare

@github-actions github-actions released this 21 Jan 00:53
Immutable release. Only release title and notes can be modified.
e2634d1

With this release we truly embrace TUI instead of simply replicating the Web view by implementing native scrolling instead of pagination. Now when there are more jobs that we can show on the screen — you will see a scrollbar, and scrolling down will automatically fetch more rows from Redis, never loading all the jobs at the same time. Magical experience!

Screenshot 2026-01-20 at 7 51 53 PM

Can you spot another new feature on the screenshot? Yes, we've got bulk actions (make sure you understand the limitations before using the --danger mode!)

Changelog

  • 9a4509b: Added job retries to scheduled/retry/dead views (@kpumuk)
  • 47406c3: Fixed light-blue metrics background being out of place on a dark theme (@kpumuk)
  • f68b3cb: Refactored paginated views to lazy loading of the data (@kpumuk)
  • 9a0af2d: Clamp all the things (math simplified) (@kpumuk)
  • 2c5e903: Added g/G shortcuts to lazytable so that all views behave similarly (@kpumuk)
  • f62ad37: Implemented 'all' actions on the queues - delete all, retry all, kill all (@kpumuk)
  • e2634d1: Added dialog tests (@kpumuk)

v0.0.12

Choose a tag to compare

@github-actions github-actions released this 08 Jan 23:54
Immutable release. Only release title and notes can be modified.
ad65d28

It took a long time to bake this release for a very unexpected reason — some time in the middle I decided to patch ntchart for Bubbletea v2, and did not realize that using replace in the go.mod would stop goreleaser from doing its job. But enough complaining, huge kudos to @neomantra for releasing ntcharts v2, and let's check out what's new.

We have got mini-help in the context bar at the top, and help window to check the shortcuts you might have forgotten:

CleanShot 2026-01-08 at 18 46 59@2x

New process view screen that allows to pause or stop Sidekiq processes (press s on "Busy" page):

CleanShot 2026-01-08 at 18 48 15@2x

New queues view screen that allows to clear a queue (press s on Queues page):

CleanShot 2026-01-08 at 18 49 42@2x

New dangerous mode (--danger or --yolo) allows some of the modifying operations, like pausing/stopping processes, deleted jobs from the queues, clearing queues. We will have more!

And other minor changes:

  • numbers formatting and alignment improved across all the screends
  • treeview rendering and interactions for busy view
  • developer console to debug issues and look the exact Redis commands Lazykiq is sending (--developer, and then press ~/F12 in the UI)

Changelog

  • bebd7e5: Renamed interface.go to api.go to better represent the purpose (@kpumuk)
  • f2e74b9: Filter uses a popup dialog instead of always taking a line on the screen (@kpumuk)
  • 6591e06: Added filter by jobs to the Busy page (@kpumuk)
  • 3bcb261: Introduced help and context bar to show contextual view key bindings (@kpumuk)
  • 9f50cd6: Optimized context items rendering in the context bar (header) (@kpumuk)
  • 07b72a6: Optimized rendering of the help modal (@kpumuk)
  • 6286d89: Updated ntcharts with bubbletea v2 compatibility, moved all theme colors into the theme (@kpumuk)
  • 72ed1d7: Added govulncheck as a tool so that we don't have undeclared dependencies (used in lefthook) (@kpumuk)
  • f0d3b37: Configured dependabot to update dependencies every week on Monday (@kpumuk)
  • 7d5ed5e: Refactored charts code to move it from the views to components for better readability (@kpumuk)
  • 66a5b85: Run Sidekiq 8.0 and 8.1 side by side in the simulation stand (@kpumuk)
  • 907244f: Fix Sidekiq 7 version detection by properly iterating SCAN (@kpumuk)
  • 032ffd2: Added a specialized queues view, and limit number of queues in the header to 5 (@kpumuk)
  • f342669: Align counts to the right when it makes sense (and refactored metrics) (@kpumuk)
  • 70b9143: Added process view to the Busy page (@kpumuk)
  • 5e56e9f: Select the whole row in the treeview on busy page (@kpumuk)
  • dff8b45: Updated color theme to fix yellow on blow for row selection on xterm (@kpumuk)
  • 02c9f50: Added pagination to the metrics table, switched period adjustment keys from brackets to braces (@kpumuk)
  • 99e5f99: Render aggregated data in the metrics view header (@kpumuk)
  • 3abfcd7: Compressed pagination hints into a single row (@kpumuk)
  • cf0d764: Render job details in the header (queue and class name) (@kpumuk)
  • f58f268: Introducing dangerous actions, along with process management (@kpumuk)
  • dc33bbd: Added queue deletion operation (@kpumuk)
  • 29f1e4f: Can delete or kill jobs using shift-d / shift-k in retry, scheduled, and dead sets (@kpumuk)
  • 97282e8: Refactored timestamp parsing for consistency (supports both Sidekiq 7 and Sidekiq 8) (@kpumuk)
  • 46d9afa: Added "c" shortcut to copy JID from the job tables, process identity from the process list, and JSON data from job details view (@kpumuk)
  • fd14b7c: Fixed danger shortcut background in light theme (@kpumuk)
  • b56effc: Initial implementation of dev console (@kpumuk)
  • 235c828: Refactored to overlay on top of the data views like in Quake, tracks context and duration as well (@kpumuk)
  • 19e79dd: Removed the command stats from the navbar, as it adds more confusion than necessary (@kpumuk)
  • 269a9cc: Refactored contextbar for better readability, switched rendering to use Table from lipgloss, and introduced golden tests for layout testing (@kpumuk)
  • 25977f3: Use timestamps as a score for all job sets. When killing a job (to move to dead set) - calculate Ruby-compatible score (@kpumuk)

v0.0.11

Choose a tag to compare

@github-actions github-actions released this 03 Jan 02:26
Immutable release. Only release title and notes can be modified.
8044f19

🚤 The theme of this release is SPEED 🚤

  • 9x+ faster global Sidekiq stats fetching (top bar, every 5 seconds)
  • 2.5x faster Busy page loading
  • 2x faster Sidekiq stats loading (and that is ON TOP of 9x from 2 lines above) - switched to Lua
  • 1.5x faster dashboard, and also removed a separate statistics call - the dashboard reuses global stats that we have optimized 18x above
  • 2x faster job metrics with significant reduction of redis operations performed over the wire (down to 5ms for 8hr period)
  • Refactored job metrics panel to reduce allocations (and forgot to write down the measurement with all that excitement)

Visually, metrics summary page got formatted counters (and I think this is the only visual change):

CleanShot 2026-01-02 at 21 25 24@2x

Changelog

  • 5539cb6: Use "slices" package for more idiomatic slice copying and search (@kpumuk)
  • f88f963: Optimized performance of statistics fetching (@kpumuk)
  • bb61699: Performance optimization for the Busy page (@kpumuk)
  • 14ef1f3: Switched stats to use Lua script for ultimate performance (@kpumuk)
  • 88b61d6: Performance optimization for the dashboard of about 1.5x (@kpumuk)
  • d34f18a: Optimized dashboard to avoid separate realtime data fetching (@kpumuk)
  • 289f989: Switched job metrics to Lua and refactored Sidekiq version detection (@kpumuk)
  • 2312fd6: Optimized how job metrics view processes histogram data (@kpumuk)
  • b5c22c4: Formatted numbers on the job metrics table view (@kpumuk)
  • 0934c31: Limit metric periods to 8h on Sidekiq 7, and display better error message when there are no jobs stats for a given period (@kpumuk)

v0.0.10

Choose a tag to compare

@github-actions github-actions released this 02 Jan 00:38
Immutable release. Only release title and notes can be modified.
d4a130f

First release of 2026! Feels like 2025 was just yesterday.

A huge new feature is a tree view for active jobs. In it, Lazykiq will show all processes, and all threads in them that are running a job:

CleanShot 2026-01-01 at 19 35 16@2x

Note

Click "t" to activate or deactivate tree view mode on the "Busy page.

Those cyan tags represent queue weights, and they also can be seen in the default view:

CleanShot 2026-01-01 at 19 36 31@2x

In addition to this:

  • Dashboard now shows redis connection URL.
  • Version is shown in bottom right corner
  • Selected job on the table persists when the table is refreshed. This might move cursor on the screen, but the job you highlighted should still be selected as long as it is still in the same queue or job set.

Changelog

  • 13d4ec3: Demo stand now produces ActiveJob wrapped jobs, ActionMailer in ActiveJob wrapper, and tags (@kpumuk)
  • 6779b38: Empty state on busy and queues pages is 1 line short. Size does matter after all (@kpumuk)
  • 4c578c0: Remove style allocation from the rendering path in the frame component (@kpumuk)
  • 0c8b9ce: Show URL of the Redis instance we are currently connected to (@kpumuk)
  • 58ee9dd: Show queue weights on the Busy page (@kpumuk)
  • 7ecc7ad: Tree mode for the busy view: press 't' to see active jobs grouped by process (@kpumuk)
  • 3291d42: When table data is updated, make sure cursor stays on the same row even if the row index shifted (@kpumuk)
  • d17efdc: Sidekiq 8.0.6 introduced 'capsules' struct into the process info, and plans to remove queues and weights soon (@kpumuk)
  • c396447: Show Lazykiq version in the bottom right corner (@kpumuk)
  • 4c8928f: Switch from using queues and weights to capsules for all UI purposes (@kpumuk)

v0.0.9

Choose a tag to compare

@github-actions github-actions released this 31 Dec 00:19
Immutable release. Only release title and notes can be modified.
7e16f20

Another maintenance release, now with a Homebrew Tap for MacOS and Linux:

brew install --cask kpumuk/tap/lazykiq

Changelog

  • 7e16f20: Publish releases to the homebrew tap kpumuk/tap/lazykiq (@kpumuk)