# What changed in sift

> 4 changes in sift 8 from its official release notes, upgrade guides and advisories: 3 breaking, 1 deprecations. Each one cited. Sources checked 2026-10-27. HTML: https://unstale.sh/npm/sift/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## sift 8

### Breaking changes

- Queries now expect an exact object shape; an object with an additional property does not match a query that specifies only one property. (8.0.0) — [release notes](https://github.com/crcn/sift.js/blob/HEAD/changelog.md)
- Passing an array as the second argument is deprecated; use array.filter with sift(query) instead. (8.0.0) — [release notes](https://github.com/crcn/sift.js/blob/HEAD/changelog.md)
- The second parameter is now an options object rather than a select function, with expressions and select shown as options. (8.0.0) — [release notes](https://github.com/crcn/sift.js/blob/HEAD/changelog.md)

### Deprecations

- indexOf is deprecated in favor of using array.findIndex with sift(query). (8.0.0) — [release notes](https://github.com/crcn/sift.js/blob/HEAD/changelog.md)
