Release v0.146.0

02 July 2026

This is the sort of release that’s huge and tiny at the same time: we’ve added a plugin system! Plugins are optional components that you can add to your Manyfold instance that can add extra UI, file types, APIs, all sorts of things. This means that (a) we can add more optional features without bloating the core too much and (b) it should be much easier for other people to write code that slots into Manyfold.

You can manage plugins on a new page in the settings area, and you can see a list of available plugins on the main website. For now, it’s a very small list, but we hope it will expand a lot! Over time, we may also move some existing features out into plugins, so that the main app can be slimmed down a bit.

What’s Changed

✨ New Features ✨

  • Disable autoloading by default by @Floppy in #6481
  • Core plugin architecture by @Floppy in #6493
  • Plugin list in settings area showing versions, names, and other metadata by @Floppy in #6535
  • Install plugins from zipfiles by @Floppy in #6555
  • Add PLUGINS_PATH environment variable to configure where plugins are loaded from by @Floppy in #6568

    🐛 Bug Fixes 🐛

  • Remove non-functional federation jobs when not running in federated mode by @Floppy in #6491
  • Fix error with nil extensions when showing relationships by @Floppy in #6521
  • Fix link to plugin docs by @Floppy in #6559
  • Fix error with plugin names that seem plural by @Floppy in #6562
  • Fix imagemagick download error in CI builds by @Floppy in #6571
  • Fix error showing linked file formats on model page by @Floppy in #6578
  • Fix error when link has no domain to extract (e.g. file:// links) by @Floppy in #6579

    🌍 Internationalization 🌏

  • Translations updated: es by @Floppy in #6538
  • Translations updated: ja by @Floppy in #6542
  • Translations updated: ru by @Floppy in #6543
  • Translations updated: nl by @Floppy in #6540
  • Translations updated: fr by @Floppy in #6547
  • Translations updated: cs by @Floppy in #6546
  • Translations updated: de by @Floppy in #6539
  • Translations updated: zh-CN by @Floppy in #6541
  • Translations updated: pl by @Floppy in #6545

    🛠️ Other Improvements 🛠️

  • Use Faker::UniquenessGenerator to stop name clashes in tests by @Floppy in #6492
  • Build file handler list during initialisation by @Floppy in #6498
  • Add fallback icon for slicer links by @Floppy in #6501
  • Dynamic media type registration by @Floppy in #6502
  • Improvements to code documentation system by @Floppy in #6518
  • Detect plugins regardless of folder naming by @Floppy in #6536
  • Restore removed translation keys by @Floppy in #6558
  • Pass file to FileHandler#open_url_for by @Floppy in #6561
  • Add :model_menu UI hook by @Floppy in #6563
  • Set plugin folder ownership on startup by @Floppy in #6564
  • Check for manyfold_version string in plugin metadata by @Floppy in #6567
  • Configure PLUGINS_PATH for docker images by @Floppy in #6569
  • Refactor & tidy up plugin initialisation by @Floppy in #6570

Full Changelog: v0.145.1…v0.146.0

See the original release on GitHub: v0.146.0


This site uses Just the Docs, a documentation theme for Jekyll, and Umami, a privacy-preserving web analytics platform.