Version 5.3.0
October 9, 2026
Added
- A Last Edited By condition rule for every element condition: custom sources, element-index filters, relation field conditions. Pick a user to keep the elements whose last edit was theirs, or switch to Any edit for everything they touched ("Entries Jane touched this week"), and optionally limit it to the last N days. It reads the edit log, so deletes, restores and moves count too.
Changed
- The edit log's (element, site) index now includes the date, so the new rule's per-element lookup and the Last Editor column's date ordering stay fast on a large log. A migration replaces the old index.
Fixed
- Permanently deleting the user you're logged in as no longer fails on the edit log's
userIdforeign key. The delete is recorded with no user, as is anything else that request records afterwards; trashing your own account is still recorded as you.
Version 5.2.0
October 8, 2026
Added
- Rat now records deletes, restores and structure moves, not only saves. Each row has who did it, when, the element's type, ID and site, and its title at the time. Deletes are recorded as Deleted (to the trash) or Deleted permanently; moves say what the element was placed against and its parent and position before and after.
- The Edit History sidebar, the Recent Edits widget and the element-history endpoint show the new
actions with their own labels. The endpoint's rows gain
action,actionLabel,details,summary,elementLabelandsiteId. - The Recent Edits widget has a Show option; Deletions only turns it into a Recent Deletions list.
php craft rat/log/deleted [--search=…] [--limit=N]lists who deleted what, including elements deleted permanently, searched by the title recorded at the time.- Admins can read the history of an element that was deleted permanently from the element-history endpoint. Everybody else still gets a 404 for it.
Changed
- A permanent delete no longer erases the element's history. A foreign key deleted the log rows along with the element, so the record of who deleted it went with it. The migration drops it.
- Elements in the trash are now checked against the viewer's permissions like any other, rather than being shown to admins only.
- Deletes, restores and moves show in an element's history whichever site it's viewed in, since they happen on every site at once.
Version 5.1.3
October 5, 2026
Rat now prunes its edit log. During Craft's garbage collection, entries older than 90 days are deleted. Change that under Settings → Plugins → Rat, or set it to 0 to keep everything. On a site that has been running for a while, the first prune can remove a lot, so raise the setting first if you want more history kept. Front-end saves by visitors who aren't signed in, and Commerce orders and carts, are no longer recorded.
Fixed
- The edit log grew without limit:
cleanupOldLogs()existed, but nothing called it. It now runs on Craft's garbage collection, keeping the new Keep edit history for setting (90 days by default), and there's aphp craft rat/log/prune [--days=N]command. - Every front-end save was logged, so a store gained rows on every cart action. Saves by anonymous front-end visitors are now skipped (a setting turns them back on), and so are Commerce orders (an editable list of excluded element types). Saves made by queue jobs are still recorded, even when Craft runs the queue from an anonymous request.
cleanupOldLogs()built its cutoff in the server's time zone while Craft stores dates in UTC, so rows were kept or deleted up to a day off. It now compares in UTC, and deletes in chunks so pruning a large log doesn't lock the table for long.- The Recent Edits widget loaded each entry's element and editor one query at a time, up to 500 queries per render for a user who can see little. Elements now load in one query per type and site, and editors in one query. The edit-history sidebar loads its editors in one query too.
- The Last Editor index column ran one query per row. It's now fetched for the whole page in one query.
Version 5.1.2
September 15, 2026
Fixed
- User avatars no longer render blank in the Edit History sidebar and the Recent Edits widget. The templates called
Asset::getThumbUrl(), which doesn’t exist in Craft 5; they now useUser::getThumbHtml(), the same method Craft’s own CP header uses (#1) - The element-history endpoint no longer throws
UnknownMethodExceptionfor users with a photo; it now generates thumbnail URLs through the assets service - Users without a photo now get their initials instead of an empty circle
- The “View more...” link in the Edit History sidebar now loads more history. The JavaScript behind it was never shipped, so the link did nothing and the
rat/edit-log/element-historyendpoint it was built for was never called - The sidebar no longer offers a “View more...” link when the first page is exactly full and nothing follows it
Changed
- The element-history response now also includes
html(rendered rows, so entries appended by the “View more...” link match the ones rendered with the page) andhasMore. The existinghistoryarray is unchanged
Version 5.1.1
July 22, 2026
Security
- Edit history is now gated by the same permissions Craft uses for the element itself. The element-history endpoint returns 403 for elements the current user can’t view, and the Recent Edits widget no longer lists edits to sections a user has no access to
Fixed
- Saving an element whose label exceeds 255 characters no longer fails. The label is truncated to fit the column instead of throwing out of the element’s own save
- Edits recorded within the same second are now ordered newest-first consistently in the widget and sidebar, and no longer shift between pages
- The “Last Editor” column no longer shows a stale value when an element is saved and re-rendered in the same request
Changed
- The uninstall migration uses
dropTableIfExists()instead of the deprecatedMigrationHelper::dropTable() - Added a DDEV environment and a Codeception test suite (unit + integration against a real Craft install)
Version 5.1.0
July 5, 2026
Added
- “Last Editor” column, available on every element index (entries, categories, assets, users, Commerce products, etc.), showing who made the most recent tracked edit and when
- “Last Editor” sort option on element indexes, so you can order any list by who last touched each element
Version 5.0.0
June 12, 2026
Added
- Initial release
- Track edits to entries, assets, globals, categories, tags, users, and Commerce elements
- Dashboard widget showing recent edit activity
- Element sidebar panel showing edit history per element
- Multi-site support
- Automatic filtering of drafts, revisions, propagating saves, and bulk resaves