v0.39.7

hpcaitech/Open-Sorav0.39.7Jul 16, 2026by github-actions[bot]

AI Summary

This release introduces a critical security patch for internal worker functions and migrates to a forked validation library to resolve performance concerns and trust issues with the original maintainer.

Key Highlights

  • Security fix: Wrapped internal worker functions with `routine.SafeWrap` to auto-recover panics
  • Replaced validation library due to performance issues and trust concerns with the original maintainer
  • Fixed missing import collection fields property access
  • Fixed View collection validator and added friendly error messages

Breaking Changes

  • Replaced `go-ozzo/ozzo-validation` with a fork; requires updating import paths in Go code.

Full Release Notes

> _To update the prebuilt executable you can run `./pocketbase update`._

> [!IMPORTANT]
> This release includes a security fix related to [#7762](https://github.com/pocketbase/pocketbase/discussions/7762).

- Replaced `github.com/go-ozzo/ozzo-validation` with the fork `github.com/pocketbase/ozzo-validation` since the original library has recently changed ownership and the new maintainer cannot be trusted.
  _There are plans to create eventually a new validation library from scratch more suited for our needs in PocketBase because ozzo-validation is known to have some minor performance and obscure regex issues, but until then we'll stick with the fork (and if you use `ozzo-validation` in your own Go code, I'd suggest to swap the imports with the fork)_.

- Fixed missing import collection `fields` property access ([#7760](https://github.com/pocketbase/pocketbase/issues/7760)).

- Fixed View collection `*` validator and added more friendly error messages ([#7761](https://github.com/pocketbase/pocketbase/issues/7761)).

- ⚠️ Security fix for unhandled panic in internal worker goroutines ([#7762](https://github.com/pocketbase/pocketbase/discussions/7762)).
    _To prevent this from showing again, all existing internal worker functions were wrapped with [`routine.SafeWrap(f)`](https://pkg.go.dev/github.com/pocketbase/pocketbase/tools/routine#SafeWrap) (auto recovers and returns any eventual panic as regular error)._