What's Changed
Breaking Changes
- Refactor: Dockerimage by @wolflu05 in #5007
- Label plugin refactor by @SchrodingersGat in #5251
- Skip ready functions if not in main thread or plugins are not loaded yet by @wolflu05 in #5005
Security Patches
- Bump django - fix CVE-2023-36053 by @matmair in #5168
- Add email login by @matmair in #5209
- Add deepsource for more security testing by @matmair in #5714
- Api token updates by @SchrodingersGat in #5664
- Fix admin site - Custom admin URL by @SchrodingersGat in #5766
- Bump pillow from 9.5.0 to 10.0.1 by @dependabot in #5657
New Features
- add report feature for stock locations by @xeno27 in #5134
- Stocktake external by @SchrodingersGat in #5182
- Add 'available' filter for BuildLine API endpoint by @SchrodingersGat in #5186
- Stocktake location filter by @SchrodingersGat in #5185
- Support Debian 12 on installer by @matmair in #5205
- Added required attribute to settings/plugins, refactor: allValues by @wolflu05 in #5224
- Add database model for defining custom units by @SchrodingersGat in #5268
- P UI: Basic UI & Auth setup by @matmair in #5207
- Adds trigger when plugins are loaded by @matmair in #5260
- P-UI: Fast language / theme / server selection by @matmair in #5301
- P UI: Show server version on auth by @matmair in #5314
- Use error report fork by @matmair in #5171
- Increased settings value length from 200 to 2000 by @matmair in #5403
- [P-UI] Home page by @matmair in #5344
- Use
IS_DEV_OR_DEMO
for playground by @matmair in #5454 - [FR/P_UI] Sentry.io integration for front-end by @matmair in #5453
- Modal api forms by @SchrodingersGat in #5355
- PUI: Scan Page by @matmair in #5500
- Fix set password when no old password exists by @Adoliin in #5562
- [P UI] Make base url configurable by @matmair in #5577
- Let plugins decide if events should be processed or not by @lippoliv in #5618
- Plugin reload mechanism by @SchrodingersGat in #5649
- Feature/Tree picker by @wolflu05 in #5595
- Native LDAP support by @wolflu05 in #5226
- Plugin auto migrate by @SchrodingersGat in #5668
- Report orientation by @SchrodingersGat in #5678
- Feature/location types by @wolflu05 in #5588
- Add basic support for scanning vendor barcodes by @30350n in #5509
- [PUI] Render status labels by @matmair in #5759
- [PUI] Added Server Info Modal by @matmair in #5810
- [PUI] Added AboutInventreeModal by @matmair in #5813
- Printing options by @wolflu05 in #5786
- [PUI] Settings simplification and restructure by @matmair in #5822
- [PUI] Add user managment to frontend by @matmair in #5862
- [PUI] Add more formatters by @matmair in #5771
- Expose API version descriptors for admins via API by @matmair in #5865
- Label sheet printer by @SchrodingersGat in #5883
- Added first UI components for user managment by @matmair in #5875
- Form improvements by @wolflu05 in #5837
- Added order cancel notifications by @matmair in #5912
- PUI general improvements by @wolflu05 in #5947
- PO barcode- add line by @SchrodingersGat in #5949
- [PUI] Allow rendering of custom states by @matmair in #6008
- LDAP group membership support by @mechanarchy in #6003
- Give the people what they want by @SchrodingersGat in #6021
- PUI: navigation/admin center improvements by @wolflu05 in #5953
- State transition support for generic states by @matmair in #6017
- Sales order barcode allocate by @SchrodingersGat in #6072
Bug Fixes
- fix: add missing build model property by @markxoe in #5127
- Rendering fix for build allocation table by @SchrodingersGat in #5145
- Order table improvements by @SchrodingersGat in #5151
- Handle case where git head is detached by @SchrodingersGat in #5161
- Handle exception when creating default labels by @SchrodingersGat in #5163
- Param fix by @SchrodingersGat in #5183
- Shorten string fix by @SchrodingersGat in #5187
- Fix quantity aggregation for stock table by @SchrodingersGat in #5188
- Fix range filtering for serial number by @SchrodingersGat in #5189
- Fix allocation check for completing build order by @SchrodingersGat in #5199
- Fix cli on 22.04 by @matmair in #5204
- Fix link to SalesOrder in stock history table by @SchrodingersGat in #5210
- Docker: add missing reporting libs by @SchrodingersGat in #5213
- Add missing callback for attachment delete button by @SchrodingersGat in #5219
- Protected settings fix by @SchrodingersGat in #5229
- Only update theme if value provided by @SchrodingersGat in #5240
- fix: make protected setting again changeable through admin ui by @wolflu05 in #5245
- Translation stat fix by @SchrodingersGat in #5250
- Fix language code for pt-br by @SchrodingersGat in #5256
- Fix settings function callback by @matmair in #5259
- Label plugin fix by @SchrodingersGat in #5266
- Update translate task by @SchrodingersGat in #5283
- Fix company index page title by @SchrodingersGat in #5288
- Show built in label printing plugin even if the external plugins are … by @martonmiklos in #5304
- Stock installed table fix by @SchrodingersGat in #5305
- Fix admin url to point to right model by @Nerade in #5319
- Email config fix by @SchrodingersGat in #5336
- Allow duplicate BOM items when duplicating a part by @SchrodingersGat in #5347
- Exclude some common fields from django-import-export by @SchrodingersGat in #5349
- Handle errors when printing reports by @SchrodingersGat in #5360
- Handle purchase price export for .xls files by @SchrodingersGat in #5362
- Return 404 on API requests other than GET by @SchrodingersGat in #5365
- Fix for label printing plugins by @SchrodingersGat in #5371
- Fix for migration - updating from old version by @SchrodingersGat in #5372
- Fix SSO check comparing id against name and extend log output by @hvraven in #5340
- Fix auto-allocation of build outputs by @SchrodingersGat in #5378
- Pint unit fix by @SchrodingersGat in #5381
- Improve sorting of part column for BOM table by @SchrodingersGat in #5386
- Handle case where calculation may be performed on invalid values by @SchrodingersGat in #5394
- Packages - force python 3.9 by @matmair in #5206
- Email fix by @SchrodingersGat in #5396
- Fix plugin pickeling by @wolflu05 in #5412
- Purchase history graph fix by @SchrodingersGat in #5421
- Fix build output unallocate button by @SchrodingersGat in #5426
- Fix for potential NoReverseMatch error by @SchrodingersGat in #5440
- Catch IndexError when importing data by @SchrodingersGat in #5439
- Disable "add rate" button in Admin interface by @SchrodingersGat in #5444
- Fix html tag in template by @SchrodingersGat in #5445
- Bug fix for daily stocktake check by @SchrodingersGat in #5455
- Default expiry fix by @SchrodingersGat in #5466
- Url fix by @SchrodingersGat in #5472
- Login form fix by @SchrodingersGat in #5502
- Fix missing filters for get settings validator by @wolflu05 in #5480
- [PUI] Fix related field by @SchrodingersGat in #5524
- Fix for
%
(percent) unit (missing unary operator "%") by @30350n in #5527 - Reset table pagination when search term changes by @SchrodingersGat in #5534
- Update required parts for build orders by @SchrodingersGat in #5542
- Docker CI test by @SchrodingersGat in #5544
- Plugin loading fixes by @SchrodingersGat in #5572
- Fix static url error for favicon.ico by @SchrodingersGat in #5574
- Add validation check to "Convert to Variant" form by @SchrodingersGat in #5583
- Primary address fix by @SchrodingersGat in #5592
- Fix bug in loading setting from cache by @SchrodingersGat in #5612
- Exception handling by @SchrodingersGat in #5622
- Fixed LOG style errors by @matmair in #5628
- Exchange rate emergency fix by @matmair in #5632
- Prevent plugin URL routing if ENABLE_PLUGINS_URL setting is disabled by @SchrodingersGat in #5648
- Fix for plugin installation via web interface by @SchrodingersGat in #5646
- Fix: Allow allocation of variants to sales order lines by @1337joe in #5656
- Bug fix for plugin reload mechanism by @SchrodingersGat in #5660
- Fix location priority when receiving items by @SchrodingersGat in #5661
- Catch potential exception when performing unit conversion by @SchrodingersGat in #5699
- Platform URL fixes by @SchrodingersGat in #5705
- Fix API URLs for related fields by @SchrodingersGat in #5707
- BOM Table - Fix pricing when subassembly is open by @SchrodingersGat in #5721
- Fix news dashboard by @matmair in #5741
- [React] Improvements to API forms by @SchrodingersGat in #5742
- Fixed PlaygroundArea accordion behaviour by @matmair in #5760
- Stock item bug fix by @SchrodingersGat in #5767
- Fix imports in inventree_extras.py by @SchrodingersGat in #5770
- Fixes for table rendering by @SchrodingersGat in #5782
- Update sales_order.js by @SchrodingersGat in #5784
- Fixes for PUI CI run/login timeouts by @matmair in #5785
- Build part change fix by @SchrodingersGat in #5808
- Improve deletion behaviour for InvenTreeTree model by @SchrodingersGat in #5806
- Update .deepsource.toml by @SchrodingersGat in #5812
- Update .deepsource.toml by @SchrodingersGat in #5814
- Recursive delete fix fix by @SchrodingersGat in #5819
- Prevent settings from writing to the database during import by @SchrodingersGat in #5844
- Fix bug when user opts not to receive error reports by @SchrodingersGat in #5846
- Fully remove deepsource cov by @matmair in #5874
- BOM tree fix by @SchrodingersGat in #5870
- Token admin fix by @SchrodingersGat in #5891
- Revert "Bumped docker base image" by @SchrodingersGat in #5905
- Revert "Form improvements" by @SchrodingersGat in #5913
- Distinct query fix by @SchrodingersGat in #5916
- Quick fix for unit test by @SchrodingersGat in #5920
- API bug fix: Distinct query by @SchrodingersGat in #5940
- Fixes call to processField by @SchrodingersGat in #5943
- [PUI] Fixed a few modeltype links by @matmair in #5969
- Add custom InvenTreeDateFilter class by @SchrodingersGat in #5970
- Improve handling of checkUserRole by @SchrodingersGat in #5976
- API filter fix by @SchrodingersGat in #5979
- [PUI] URL fixes by @matmair in #5989
- Fix reloading on viewport size change by @wolflu05 in #6005
- Check for null part instance by @SchrodingersGat in #6011
- Do not autoescape part full-name template by @SchrodingersGat in #6024
- Ensure template string is cached by @SchrodingersGat in #6027
- Bug fix for label-skip implementation by @SchrodingersGat in #6030
- Fix validation for Build model by @SchrodingersGat in #6038
- Handle "showmigrations" command by @SchrodingersGat in #6062
- Handle IntegrityError when saving PartPricing object by @SchrodingersGat in #6070
- Allow plugin loading when calling 'showmigrations' by @afkiwers in #6076
- Bump django-maintenance-mode by @SchrodingersGat in #6079
- Fix unit test by @SchrodingersGat in #6084
- Another attempt at fixing unit test by @SchrodingersGat in #6096
Devops / Setup Changes
- Add migration check for 0.12.0 database by @SchrodingersGat in #5174
- Docker build: Update python deps by @SchrodingersGat in #5270
- P UI: Rearrange CI by @matmair in #5276
- P UI: Added frontend publishing for bare-metal (git) by @matmair in #5277
- Remove
container-name:
s from Compose file by @ssterling in #5339 - Add netlify for fast previews by @matmair in #5353
- Increase yarn timeout in dockerfile by @SchrodingersGat in #5505
- Fix controlling log level in devcontainer by @lippoliv in #5604
- Add flake8-logging linting by @matmair in #5620
- Add worker task to VS Code by @lippoliv in #5605
- Move broken plugin samples to disabled folders by @matmair in #5642
- Improve sentry.io integration by @SchrodingersGat in #5700
- Remove --no-frontend option by @SchrodingersGat in #5568
- Added python test paths to deepsource by @matmair in #5738
- Update sponsors.yml by @SchrodingersGat in #5793
- Update sponsors.yml by @SchrodingersGat in #5794
- Add deepsource code coverage by @matmair in #5717
- Deactivated coverage analyzer by @matmair in #5851
- Small size optimisation for devcontainer by @matmair in #5852
- Use gpg for install script instead of apt-key by @matmair in #5856
- [PUI] Added tests for PUI backend stuff by @matmair in #5864
- Update sponsors action by @SchrodingersGat in #5887
- Bumped docker base image by @matmair in #5889
- Only run sposnor action if on upstream repo by @matmair in #5931
- Docker CI Updates by @SchrodingersGat in #5909
- Refactor docker image for devcontainer by @SchrodingersGat in #6029
- Notify when packager build fails by @SchrodingersGat in #6039
- Installer CLI fix by @SchrodingersGat in #6049
- chore(docker): Remove intermediate
prebuild
stage by @p-fruck in #6068 - FAQ - removeSuffix error by @SchrodingersGat in #6081
Other Changes
- Update version.py by @SchrodingersGat in #5124
- Query improvements for BuildLine table by @SchrodingersGat in #5153
- Remove old method by @SchrodingersGat in #5156
- Do not enforce unit type conversion for part parameters by @SchrodingersGat in #5160
- Restrict "recently updated" stock to "available" by @SchrodingersGat in #5165
- Task improvements by @SchrodingersGat in #5159
- Update 2fa lib by @matmair in #5169
- Bump general deps by @matmair in #5170
- Unit check option by @SchrodingersGat in #5175
- use django-q2 by @SchrodingersGat in #5167
- fix: generic status import by @wolflu05 in #5192
- Support traditional Chinese (zh-hant) locale by @SchrodingersGat in #5261
- Update django-allauth-2fa to 0.11.1 by @SchrodingersGat in #5273
- Mantine by @SchrodingersGat in #5274
- Bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in #5279
- Bump semver from 6.3.0 to 6.3.1 in /src/frontend by @dependabot in #5272
- Update InvenTree demo url by @hasecilu in #5281
- React tweaks by @SchrodingersGat in #5300
- Typo fix by @SchrodingersGat in #5307
- Remove error message by @SchrodingersGat in #5315
- Fix selecting default label template by @martonmiklos in #5317
- Fix selecting the default stock item label template by @martonmiklos in #5318
- P-UI: Dependency bumps by @matmair in #5298
- Fix "your" word duplicated by @hasecilu in #5335
- P-UI: Add old dashboard page for now by @matmair in #5325
- [WIP] Mantine datatables by @SchrodingersGat in #5218
- Global search input drawer by @SchrodingersGat in #5346
- Build output table sort by @SchrodingersGat in #5380
- Hindi support by @SchrodingersGat in #5389
- Bump deps by @matmair in #5385
- P-UI: Add playground for new components by @matmair in #5359
- Small style fixes in panel.md by @matmair in #5404
- Add missing init.py to InvenTree/web by @bcc in #5390
- Sales order variant stock by @SchrodingersGat in #5415
- Add optional "description" column to SalesOrderLineItem table by @SchrodingersGat in #5419
- [P_UI] Added django settings for p_ui by @wolflu05 in #5343
- Catch OperationalError when updating exchange rates by @SchrodingersGat in #5438
- Raise error if no search term provided for search endpoint by @SchrodingersGat in #5441
- Paginate notifications on the server by @SchrodingersGat in #5503
- Optional error notification by @SchrodingersGat in #5506
- Bump deps by @matmair in #5487
- Issued by filter by @SchrodingersGat in #5515
- Transfer fields by @SchrodingersGat in #5518
- Refactor table columns by @SchrodingersGat in #5519
- [PUI] Part detail page by @SchrodingersGat in #5521
- [PUI] Attachment table by @SchrodingersGat in #5525
- [PUI] Implement Notes editor by @SchrodingersGat in #5529
- [PUI] Add simple "related parts" table by @SchrodingersGat in #5530
- [PUI]: Basic notifications page by @SchrodingersGat in #5537
- [PUI] Improve search panel by @SchrodingersGat in #5538
- Copy notes by @SchrodingersGat in #5546
- Remove old debug messages by @SchrodingersGat in #5551
- [PUI] Build detail page by @SchrodingersGat in #5554
- [PUI] Part category page by @SchrodingersGat in #5555
- [PUI] Instance hook by @SchrodingersGat in #5564
- [PUI] Stock location table by @SchrodingersGat in #5566
- Fix useInstance hook by @SchrodingersGat in #5567
- Path detail API by @SchrodingersGat in #5569
- Improve breadcrumbs using new path API by @SchrodingersGat in #5570
- [P UI] Router syntax switch by @matmair in #5575
- Attachment URL method by @SchrodingersGat in #5584
- Make idAccessor configurable by @matmair in #5599
- Update urls.py by @SchrodingersGat in #5603
- Stop cascade update_pricing if prices didn't change by @lippoliv in #5606
- Interactive forms by @SchrodingersGat in #5608
- Update minimum_stock field by @SchrodingersGat in #5609
- Use prefetch to improve query efficiency by @SchrodingersGat in #5613
- Allow Base URL to exist without TLD by @SchrodingersGat in #5615
- Fix docstring for @scheduled_task decorator by @SchrodingersGat in #5626
- Improve formatting of log messages in settings.py by @SchrodingersGat in #5636
- Don't ignore parts without stock in stocktake by @lippoliv in #5627
- Allow plugin list to be filtered by "sample" or "builtin" status by @SchrodingersGat in #5647
- Plugin missing fix by @SchrodingersGat in #5653
- Unit conversion improvements by @SchrodingersGat in #5658
- Allow reload of plugin registry when config changes by @SchrodingersGat in #5662
- Bump postcss from 8.4.29 to 8.4.31 in /src/frontend by @dependabot in #5665
- Bump deps by @matmair in #5666
- Fix tags table rendering by @1337joe in #5675
- Open External Links in new window by @Limb in #5674
- Type model information in SearchDrawer by @matmair in #5597
- Import export fix by @SchrodingersGat in #5677
- Update settings API endpoints: by @SchrodingersGat in #5684
- User roles state by @SchrodingersGat in #5685
- [React] Use typed paths by @SchrodingersGat in #5686
- [React] Settings state manager by @SchrodingersGat in #5687
- Add new "location_type" column to stock location table by @SchrodingersGat in #5688
- Api tweaks by @SchrodingersGat in #5690
- Improved BOM import process by @SchrodingersGat in #5698
- Sentry: ignore NotAuthenticated errors by @SchrodingersGat in #5702
- [React] API Image Functionality by @SchrodingersGat in #5696
- Adds toggle for text elements in panel tabs by @SchrodingersGat in #5706
- Improved implementation of panel collapse by @SchrodingersGat in #5708
- [React] Part parameters table by @SchrodingersGat in #5709
- Improve useInstance hook by @SchrodingersGat in #5710
- Fix by @SchrodingersGat in #5711
- [React] Settings interface by @SchrodingersGat in #5679
- Fix typo by @SchrodingersGat in #5715
- Fix money field kwargs by @SchrodingersGat in #5722
- Cache default currency by @SchrodingersGat in #5723
- Improve checks for scheduled tasks at startup by @SchrodingersGat in #5724
- Refactor plugin loading by @SchrodingersGat in #5726
- Remove stockitemmanager by @SchrodingersGat in #5727
- Prefetch RuleSet objects for group by @SchrodingersGat in #5725
- [React] Maximize screen width by @SchrodingersGat in #5728
- [React] Update part parameters table by @SchrodingersGat in #5731
- Allow stock items to be reallocated for build items by @30350n in #5693
- Version bump by @matmair in #5740
- Refactor: remove blank lines after docstring by @matmair in #5736
- Refactor: replace multiple
==
checks within
by @matmair in #5737 - Refactor unnecessary else / elif when if block has a return statement by @matmair in #5735
- Adds 'A3' as report size option by @SchrodingersGat in #5733
- [React] Purchasing and Sales by @SchrodingersGat in #5743
- [React] Login improvements by @SchrodingersGat in #5752
- React UI improvements by @SchrodingersGat in #5756
- Token tweaks by @SchrodingersGat in #5761
- More token tweaks by @SchrodingersGat in #5764
- Add admin filters for ApiToken by @SchrodingersGat in #5768
- plugin hash - reduce error outputs by @SchrodingersGat in #5772
- Part responsible owner by @SchrodingersGat in #5774
- Frontend server settings by @SchrodingersGat in #5765
- Bump action versions by @matmair in #5776
- Check minimum python version before launching by @SchrodingersGat in #5795
- Improve WSL detection for vite.config.ts by @SchrodingersGat in #5796
- Various style fixes by @matmair in #5797
- React interface updates by @SchrodingersGat in #5798
- [React] Tree navigation by @SchrodingersGat in #5800
- [PUI] Adjust default radius by @matmair in #5809
- [React] BOM table by @SchrodingersGat in #5816
- [React] Stylish form titles by @SchrodingersGat in #5817
- Part table extra options by @SchrodingersGat in #5821
- Skip plugin registry reload if performing django functions by @SchrodingersGat in #5823
- Update django money / py-moneyed dependencies by @30350n in #5778
- React updates by @SchrodingersGat in #5826
- Bump django_money version back to 3.2.0, Fix #5825 by @30350n in #5828
- [React] SupplierPart table by @SchrodingersGat in #5833
- Bump python dependencies by @matmair in #5854
- [PUI] Added pricing settings by @matmair in #5857
- [React] PO detail pgae by @SchrodingersGat in #5847
- [React] Currency table by @SchrodingersGat in #5858
- [React] Build improvements by @SchrodingersGat in #5859
- [React] Order tables by @SchrodingersGat in #5860
- Add translation support for Bulgarian by @SchrodingersGat in #5863
- Added example with user data input to the panel mixin doc by @SergeoLacruz in #5848
- [PUI] Small nav additions by @matmair in #5855
- PO auto fill fix by @SchrodingersGat in #5871
- Ulugbek erkinov master by @SchrodingersGat in #5872
- [Platform] BOM Table by @SchrodingersGat in #5876
- Pinned action column by @SchrodingersGat in #5880
- Allow decimal values in new forms by @SchrodingersGat in #5881
- updated sponsors by @SchrodingersGat in #5890
- Parameter table updates by @SchrodingersGat in #5892
- Activate / deactivate plugins by @SchrodingersGat in #5895
- Model render refactor by @SchrodingersGat in #5894
- Bump axios from 1.5.1 to 1.6.0 in /src/frontend by @dependabot in #5901
- Owner list API updates by @SchrodingersGat in #5906
- Improve RenderOwner function by @SchrodingersGat in #5910
- Report image rendering fix by @SchrodingersGat in #5907
- Fix some issues with supplier barcode plugins by @30350n in #5919
- Refactoring by @SchrodingersGat in #5921
- Error handling by @SchrodingersGat in #5923
- Refactoring supplier barcode support by @SchrodingersGat in #5922
- Factored typecasting out by @matmair in #5925
- CUI dependent/nested fields by @wolflu05 in #5924
- Toggle full name display of users by @LavissaWoW in #5927
- Bump weasyprint by @matmair in #5885
- Refactor existing barcode API endpoints by @SchrodingersGat in #5937
- Improve error handling when updating currency exchange by @SchrodingersGat in #5939
- [PUI] Api state extension/cleanup by @matmair in #5934
- Make modals/forms more reactive by @wolflu05 in #5897
- Improvements for part.full_name by @SchrodingersGat in #5946
- Add owner toggle setting to new UI Frontend by @LavissaWoW in #5952
- Part pricing override by @SchrodingersGat in #5956
- Project Responsible by @SchrodingersGat in #5944
- add ability to export part image data by @SchrodingersGat in #5971
- Documentation update; New frontend docs, additional info on devcontainer by @LavissaWoW in #5974
- Extend API for labels and reports to allow creating new items by @miggland in #5982
- [PUI] Helper to render an instance for an url by @matmair in #5977
- [PUI] Template helpers by @matmair in #5993
- Update CODEOWNERS by @matmair in #5996
- Add useTable hook by @SchrodingersGat in #6000
- Bump cryptography from 41.0.5 to 41.0.6 by @dependabot in #6002
- More tables by @SchrodingersGat in #5999
- [PUI] Enable passing of string urls to apiUrl by @matmair in #6012
- Add facility to skip first "n" cells when printing labels by @SchrodingersGat in #6028
- [API] Add default location filter to part endpoint by @LavissaWoW in #6016
- Admin section refactor by @SchrodingersGat in #6033
- Api image fix by @SchrodingersGat in #6034
- Fix for table double loading by @SchrodingersGat in #6035
- Bump vite from 4.4.11 to 4.4.12 in /src/frontend by @dependabot in #6041
- Url validation by @SchrodingersGat in #6045
- Add INVENTREE_STRICT_URLS to PUI by @SchrodingersGat in #6046
- Disable part prefetch on stock item save by @martonmiklos in #6051
- [PUI] refactor table filter selector by @SchrodingersGat in #6047
- Prevent check for low stock when creating new items by @SchrodingersGat in #6055
- [PUI] Fix Build Router by @LavissaWoW in #6054
- [PUI] Table loading refactor by @LavissaWoW in #6014
- Plugin loading improvements by @SchrodingersGat in #6056
- fix(SSO): log error message when EMAIL_HOST is empty by @p-fruck in #6067
- [PUI] URl / panel fix by @SchrodingersGat in #6078
- Revert "[PUI] URl / panel fix" by @SchrodingersGat in #6088
- Add item key by @SchrodingersGat in #6089
- Table Hook Updates by @SchrodingersGat in #6093
- Update version.py by @SchrodingersGat in #6095
New Contributors
- @markxoe made their first contribution in #5127
- @xunleii made their first contribution in #5141
- @RitchieP made their first contribution in #5144
- @spike77453 made their first contribution in #5150
- @xeno27 made their first contribution in #5134
- @sebastienAPP made their first contribution in #5264
- @ssterling made their first contribution in #5339
- @hvraven made their first contribution in #5340
- @Petrox made their first contribution in #5428
- @saharshtapi made their first contribution in #5501
- @30350n made their first contribution in #5527
- @Adoliin made their first contribution in #5562
- @lippoliv made their first contribution in #5604
- @1337joe made their first contribution in #5656
- @Limb made their first contribution in #5674
- @CodingPupper3033 made their first contribution in #5805
- @mechanarchy made their first contribution in #5990
- @afkiwers made their first contribution in #6076
Full Changelog: 0.12.0...0.13.0