v8.4.0
grokability/snipe-itv8.4.0Feb 23, 2026by snipe
AI Summary
This major release focuses on performance improvements by fixing n+1 query problems, adds sticky columns to table views for better UX, and introduces a standardized right-side panel across most screens. It also includes numerous bug fixes for dark/light mode, label scaling, and security improvements.
Key Highlights
- Fixed n+1 query problems for significant performance improvements
- Added sticky columns to most table views
- Introduced standardized right-side panel for more information at a glance
- Multiple security fixes and patches
- Ability to clone components
New Features
- Sticky columns in table views
- Standardized right-side panel
- Clone components functionality
- Reset to default theme option
- Theme preview for effects
Full Release Notes
Happy Monday! Today we're releasing 8.4.0 of Snipe-IT! In it you'll find tons of small bug fixes and some bigger ones. **As always, we highly recommend upgrading to the latest stable version of Snipe-IT, as we are constantly improving the product and patching security issues we come across.** ### Smallish: - Several small security fixes - Loads of fixes to light/dark mode - Some label scaling fixes - Less noisy SCIM debugging when it's not actually helpful - Ability to clone components - Fixed a few breadcrumb titles ### Biggish? - We identified a few queries that were not optimized as well as they could be, so it was creating an "n+1" problem. The more items you had, the more queries you'd be doing. **We've fixed those and things should be a LOT snappier now.** - We've added sticky columns to most of the table views. We have tried really hard to make them be the ones that make sense (name, as the left-side sticky, and actions and/or checkin/checkin where appropriate). I expect you'll let us know if we guessed wrong here. - A more standardized right-side panel in *most* screens (not users and not assets or "Your Profile" yet). We're really quite excited about this, as we feel it exposes a lot more of the potentially important information you need to see while looking at an item than we we used to. A few fewer clicks, and a lot more information exposed, but also able to be tucked away if you need larger screen real-estate. ## What's Changed * Added "reset to default" for theme, preview for effects in profile by @snipe in https://github.com/grokability/snipe-it/pull/18347 * Add SCIM url to admin settings index view by @snipe in https://github.com/grokability/snipe-it/pull/18358 * Fixed #18325: Ensure existing permission group users are maintained when editing a group by @dylang3 in https://github.com/grokability/snipe-it/pull/18326 * Replaced deprecated Symfony `Request::get()` usage by @joelpittet in https://github.com/grokability/snipe-it/pull/18363 * Bump `actions/upload-artifact` from 5 to 6 by @dependabot[bot] in https://github.com/grokability/snipe-it/pull/18349 * Bump `actions/cache` from 4 to 5 by @dependabot[bot] in https://github.com/grokability/snipe-it/pull/18348 * Fixed #18384: Remove backticks in bulk-actions.blade.php to avoid unintentional `shell_exec()` call by @dylang3 in https://github.com/grokability/snipe-it/pull/18388 * Fixed #18377 - make `min` for names consistent by @snipe in https://github.com/grokability/snipe-it/pull/18392 * Fixed: `paragonie/sodium_compat` - Missing check that a point is on the prime subgroup for Edwards25519 by @joelpittet in https://github.com/grokability/snipe-it/pull/18391 * Fixed #17816 - Added quantity to activity reports by @marcusmoore in https://github.com/grokability/snipe-it/pull/18359 * Fixed #18394 - LDAP sync test table background in dark mode by @snipe in https://github.com/grokability/snipe-it/pull/18395 * Fixed #18291 - update PHP versions and alpine versions by @snipe in https://github.com/grokability/snipe-it/pull/18393 * Fixed #17652 - Fixed company select2 drop-down when modals clicked by @uberbrady in https://github.com/grokability/snipe-it/pull/18396 * Adds [RB-20474] a try/catch to ms teams audit notification by @Godmartinz in https://github.com/grokability/snipe-it/pull/18397 * Set `$files` in `UploadedFilesController` API POST endpoint only if there are results by @snipe in https://github.com/grokability/snipe-it/pull/18398 * Fixed #18405: Clean up closing divs to fix footer position by @dbakan in https://github.com/grokability/snipe-it/pull/18406 * Fixed: Prefer display name of user on UI by @kenchan0130 in https://github.com/grokability/snipe-it/pull/18404 * Fixed #18402 - Clean up SAML readonly display by @snipe in https://github.com/grokability/snipe-it/pull/18410 * Fixed #18415 - LDAP sync improvements to allow null display_name and bulk editing display_name by @snipe in https://github.com/grokability/snipe-it/pull/18430 * Refactor the exceptions for Audit log (again) by @Godmartinz in https://github.com/grokability/snipe-it/pull/18419 * Fix [RB-20479] Checkin/Checkout notifications from logging as errors by @Godmartinz in https://github.com/grokability/snipe-it/pull/18418 * Fixed #8740: Use log instance with configured log path by @ManiacTwister in https://github.com/grokability/snipe-it/pull/18440 * Fixed #18312: support aws rds mysql with force tls by @vasiliyplotnikov in https://github.com/grokability/snipe-it/pull/18387 * Fixed #18409 - command line option to purge signatures by @snipe in https://github.com/grokability/snipe-it/pull/18437 * Fixed - throw fewer exceptions on SCIM misconfigurations by @uberbrady in https://github.com/grokability/snipe-it/pull/18442 * Fixed #18135 - only unset sensitive variables in the web UI importer by @snipe in https://github.com/grokability/snipe-it/pull/18439 * Fixes Label text scaling by @Godmartinz in https://github.com/grokability/snipe-it/pull/18434 * Fixed #18449 - small sidenav improvements for selected contexts by @snipe in https://github.com/grokability/snipe-it/pull/18450 * Improved loading speeds on group create and edit page by @marcusmoore in https://github.com/grokability/snipe-it/pull/18368 * Use basic container+box for primary index pages with one column by @snipe in https://github.com/grokability/snipe-it/pull/18454 * Fixed inconsistent negative symbol at Audit Log Report when Next Audit Date is set to the current date by @iryadifarhan in https://github.com/grokability/snipe-it/pull/18256 * Fixed storing image for accessory and consumable creation via api by @marcusmoore in https://github.com/grokability/snipe-it/pull/18457 * Fixed #17309 - include EOL date in custom asset report by @marcusmoore in https://github.com/grokability/snipe-it/pull/18458 * Next step in container+box component by @snipe in https://github.com/grokability/snipe-it/pull/18456 * Added eager load to Expiring Alerts command by @marcusmoore in https://github.com/grokability/snipe-it/pull/18466 * Fixes #18353 Label title scales with label fields. adjusted label row allotment. by @Godmartinz in https://github.com/grokability/snipe-it/pull/18459 * Moved anonymous box blade components into their own directory by @snipe in https://github.com/grokability/snipe-it/pull/18471 * Moved helper query, to eager load through Asset API index by @Godmartinz in https://github.com/grokability/snipe-it/pull/18472 * Added tab components by @snipe in https://github.com/grokability/snipe-it/pull/18473 * Renamed box blade component wrapper to index by @snipe in https://github.com/grokability/snipe-it/pull/18474 * Fixed #18475 - reference the correct model when checking in an asset via import by @marcusmoore in https://github.com/grokability/snipe-it/pull/18476 * Added sticky column by @snipe in https://github.com/grokability/snipe-it/pull/18478 * Removed font-size override on tabs by @snipe in https://github.com/grokability/snipe-it/pull/18479 * Moved more indexes to blade components by @snipe in https://github.com/grokability/snipe-it/pull/18480 * Moved form components into their own directory by @snipe in https://github.com/grokability/snipe-it/pull/18482 * Add translation and template name for Label Preview by @Godmartinz in https://github.com/grokability/snipe-it/pull/18490 * Fixes `Undefined variable $files` Exception by @spencerrlongg in https://github.com/grokability/snipe-it/pull/18484 * Bumped PHPUnit version by @marcusmoore in https://github.com/grokability/snipe-it/pull/18492 * Update models with new components by @snipe in https://github.com/grokability/snipe-it/pull/18514 * Do not delete asset name if update request does not have a name by @bilias in https://github.com/grokability/snipe-it/pull/18470 * Fix Livewire and Passport routes for subpath hosting by @joelpittet in https://github.com/grokability/snipe-it/pull/18524 * Consolidated custom fieldset edit/show by @snipe in https://github.com/grokability/snipe-it/pull/18529 * Update the name of the object within the side panel by @snipe in https://github.com/grokability/snipe-it/pull/18535 * Fixes title alignment to fit label L7163_A by @Godmartinz in https://github.com/grokability/snipe-it/pull/18539 * Updated subject line of acceptance reminder emails by @marcusmoore in https://github.com/grokability/snipe-it/pull/18542 * Added some `withCount()` params to tweak the 'minimum number of assets' notification by @uberbrady in https://github.com/grokability/snipe-it/pull/18544 * Fixed: Incorrect index reference in `MoveUploadsToNewDisk.php` by @matmair in https://github.com/grokability/snipe-it/pull/13506 * More refactoring of tabs, tab panes, and tables by @snipe in https://github.com/grokability/snipe-it/pull/18537 * Fixed #18557 - Tweak `numRemaining()` to not re-query for un-checked-out components by @uberbrady in https://github.com/grokability/snipe-it/pull/18564 * Added #18555 - ability to clone components by @snipe in https://github.com/grokability/snipe-it/pull/18565 * Fixed new vs update button label on custom fieldset creation, fixed breadcrumbs on new custom fieldset creation screen by @snipe in https://github.com/grokability/snipe-it/pull/18566 * Small importer improvements, added larger CSV samples by @snipe in https://github.com/grokability/snipe-it/pull/18569 * Converted consumables to new blade component by @snipe in https://github.com/grokability/snipe-it/pull/18570 * Fixed #18571 - Fixed cross-company `created_by` in asset acceptance by @uberbrady in https://github.com/grokability/snipe-it/pull/18572 * Fixed #18435 - Use correct option value for currency format selector by @snipe in https://github.com/grokability/snipe-it/pull/18578 * Quick fix for alert menu 1001 queries by @snipe in https://github.com/grokability/snipe-it/pull/18580 * Adds `field_encrypted` to fields API response by @spencerrlongg in https://github.com/grokability/snipe-it/pull/18575 ## New Contributors * @dylang3 made their first contribution in https://github.com/grokability/snipe-it/pull/18326 * @ManiacTwister made their first contribution in https://github.com/grokability/snipe-it/pull/18440 * @vasiliyplotnikov made their first contribution in https://github.com/grokability/snipe-it/pull/18387 * @bilias made their first contribution in https://github.com/grokability/snipe-it/pull/18470 * @matmair made their first contribution in https://github.com/grokability/snipe-it/pull/13506 **Full Changelog**: https://github.com/grokability/snipe-it/compare/v8.3.7...v8.3.8-pre