Big release and changes today, JDK 25 enforcement and the groundwork for some big changes going forward with automation in mind and some big tool speed and memory improvements to be rolled out over coming weeks
Due to the size of this release we recommend organisations do a backup before upgrade
- New JPDFium repository enhancement for 'merge' and 'split' tools to allow up to 99% less memory consumption on merges and splits (Special thanks to PDFium and EmbedPDF for this, Please check out EmbedPDF and donate to them, great project for the future of PDF for OSS)
- Forced JDK 25 for improved memory efficiency and compatibility issues
- Introduced Stirling.com code into OSS repo to make it source viewable and allow us to return stirling.com to the old UI (Coming very soon!)
- New folder system for file storage with a "my files" UI. Customisable folders and storage for server! (must be enabled in settings)
- Desktop multi-window support
- Desktop auto updater (WIP)
- Performance/cache improvements for browser
- OAuth2 / OIDC diagnostic logging flag
- Landscape page-size options
Bug fixes
- Fixed font loss in Rearrange / Overlay / Auto-split / OCR
- Fix issue with SSO Auto-login setting not correctly setting
- Certain desktop login loop issues
- Username showing as guest not User/username
- Compare tool issues
- File selection issues
- Tab refresh issues
- Missing icons
- Stop logo being dragable
- Mobile QR code upload URL fixes
- Merge reliability issues fixed
- Fixed in-page drag-to-reorder in desktop
What's Changed
Bug Fixes
- fix(task): make
task dev/task dev:allwork on Windows by @ConnorYoh in #6392 - Various bug fixes found while testing SaaS build by @jbrunton96 in #6459
- fix: Use frontend/editor for locales paths by @Ludy87 in #6483
- fix(update-service): correct GitHub branch reference for version retrieval by @Ludy87 in #6333
- fix(e2e): stop files-page tests racing the skeleton-grid render by @Frooodle in #6533
- fix: harden multi-file response detection so merge can't fail silently by @Frooodle in #6516
- Fix intermittently failing Playwright tests in main by @jbrunton96 in #6541
- fix(i18n): wrap hard-coded English strings in t() across UI by @Frooodle in #6566
- fix(desktop): enable in-page drag-drop in Tauri build by @Frooodle in #6548
- fix(automate): flip AutomationEntry tooltip to position=left by @Frooodle in #6550
- Fix desktop app not being able to load pdfium by @jbrunton96 in #6575
Enhancements
- perf(frontend): stabilize hot-path context subscriptions to fix excessive rerenders by @ConnorYoh in #6373
- Snag/disable logo drag by @EthanHealy01 in #6393
- migrate exportUpdatedPages from bytes to stream by @Frooodle in #6201
- build(deps): bump rustls-webpki from 0.103.9 to 0.103.13 in /frontend/src-tauri by @dependabot[bot] in #6323
- build(deps): bump quinn-proto from 0.11.13 to 0.11.14 in /frontend/src-tauri by @dependabot[bot] in #6322
- build(deps): bump tokio from 1.49.0 to 1.50.0 in /frontend/src-tauri in the tokio group across 1 directory by @dependabot[bot] in #6296
- build(deps): bump devalue from 5.6.4 to 5.8.1 in /frontend by @dependabot[bot] in #6367
- Updated Spanish translation by @IberianSoldierPC in #6309
- SaaS Consolidation by @Frooodle in #6384
- JDK25 - Integrate Stirling-Tools JPDFium for PDF operations by @Frooodle in #6387
- build(deps): bump svelte from 5.55.0 to 5.55.9 in /frontend by @dependabot[bot] in #6409
- build(deps-dev): bump ip-address from 10.1.0 to 10.2.0 in /frontend by @dependabot[bot] in #6319
- build(deps): bump protobufjs from 7.5.6 to 7.6.0 in /frontend by @dependabot[bot] in #6401
- build(deps): bump ws from 8.20.0 to 8.20.1 in /frontend by @dependabot[bot] in #6400
- Fix unresolved Material Symbols icon names in frontend by @Ludy87 in #6443
- chore: address restructure PR review feedback by @reecebrowne in #6423
- impl migration to pdfium for split by @Frooodle in #6410
- Fix login loop by @Frooodle in #6402
- test(frontend): cover MIME precedence in non-PDF type detection by @saul1310 in #6438
- test(frontend): add URL-encoded filename parsing case by @saul1310 in #6436
- chore: fix "Endoints" typo in health route comment by @mvanhorn in #6446
- Add cluster backplane abstraction and interfaces by @Frooodle in #6449
- Add server-side folders and files page UI by @Frooodle in #6383
- feat(oauth2): opt-in claim-dump diagnostics for OIDC login failures by @ConnorYoh in #6456
- Add S3 storage and cluster artifact backend by @Frooodle in #6457
- folder and file fixes by @Frooodle in #6461
- saas: harden CreditService Stripe ordering + lint @AutoJobPostMapping weights by @ConnorYoh in #6458
- Fix SSO auto-login and custom metadata settings not persisting on restart by @Frooodle in #6468
- feat: add Agents UI to proprietary right sidebar by @EthanHealy01 in #6454
- Fix username display issues by @jbrunton96 in #6471
- Update indexeddb to v9 to unify SaaS and OSS users by @jbrunton96 in #6474
- Add desktop multi-window support by @Frooodle in #6463
- Disable Save-to-server when storage off, fix QR port 0 by @Frooodle in #6473
- perf(api): optimize static asset caching, enable ETag support, and expand response compression mime types. by @balazs-szucs in #6273
- Add CI coverage summaries and aggregate JaCoCo report by @Frooodle in #6451
- Add Valkey cluster backplane and sticky-410 ownership (clusters) by @Frooodle in #6472
- UI changes to update and support auto updating by @Frooodle in #6075
- PAYG: hash-lineage detection primitives (modular extractor / store / detector) by @ConnorYoh in #6464
- Make zoom key command behave the same regardless of mouse position by @jbrunton96 in #6508
- Switch to use JPDFium v1.0.2, which signs the Mac binaries by @jbrunton96 in #6521
- Update Backend 3rd Party Licenses by @stirlingbot[bot] in #6407
- Fix mockServiceWorker.js reformatting by @jbrunton96 in #6526
- sort comments sidebar in visual reading order (#6439) by @Frooodle in #6514
- Fix settings: dark borders, update dropdown z-index, dead accessibility link by @Frooodle in #6528
- Improvements to agent chat markdown rendering. by @EthanHealy01 in #6507
- Fix z-index conflicts: Google Drive picker, automate dropdowns, tooltips by @Frooodle in #6513
- chore: i18n time utils and use TFunction type (#6507) by @EthanHealy01 in #6539
- Make any typing linting opt-out instead of opt-in by @jbrunton96 in #6542
- Fix desktop updater latest.json generation for releases by @Frooodle in #6540
- perf(compression): add vite-plugin-compression for gzip and Brotli support by @balazs-szucs in #6279
- Minor: sanitize SVG by @Frooodle in #6572
- feat(settings): link ENTERPRISE badges to plan page by @Frooodle in #6560
- exclude unused Redis auto-config by @Frooodle in #6547
- Explicitly test for console warnings & errors by @jbrunton96 in #6502
- Lazy-load Stripe SDK so it only loads on checkout by @Frooodle in #6546
- Hide endpoints by @Frooodle in #6586
- fix many UI issues by @Frooodle in #6569
- PAYG: V14 + V15 — subscription_id, free-tier, RPCs, audit logs by @ConnorYoh in #6532
- SaaS-aware API landing page by @Frooodle in #6585
- stop background flash on tab switches, unblock Audit/Usage demos by @Frooodle in #6562
- fix folder causing 500 toast when deleted on another machine by @Frooodle in #6551
- Fix font loss in rearrange/overlay/autosplit/OCR from PDFBox by @Frooodle in #6545
- Minor: Office doc changes by @Frooodle in #6571
Docker Updates
- build(deps): bump sigstore/cosign-installer from 4.1.1 to 4.1.2 by @dependabot[bot] in #6377
- test Depot runners for team commits by @Frooodle in #6394
- build(deps): bump step-security/harden-runner from 2.19.1 to 2.19.3 by @dependabot[bot] in #6422
- ci: harden workflow runners and update checkout action pins by @Ludy87 in #6445
- Add CI DB migration smoke test against v2.0/v2.5/v2.10 updates by @Frooodle in #6453
Translation Changes
- Fix Tauri artifact copy path so installers upload (smoke + release) by @Frooodle in #6466
- ci(github-actions): replace deprecated app-id input with client-id by @Ludy87 in #6485
Development Tools
- build(deps): bump fast-uri from 3.0.6 to 3.1.2 in /devTools by @dependabot[bot] in #6332
Other Changes
- build(deps): bump urllib3 from 2.6.3 to 2.7.0 in /testing/cucumber in the pip group across 1 directory by @dependabot[bot] in #6352
- deps: align Bouncy Castle modules to shared version property by @Ludy87 in #6362
- build(deps): bump step-security/harden-runner from 2.19.0 to 2.19.1 by @dependabot[bot] in #6380
- build(deps): bump github/codeql-action from 4.35.3 to 4.35.4 by @dependabot[bot] in #6379
- build(deps): bump actions/dependency-review-action from 4.9.0 to 5.0.0 by @dependabot[bot] in #6378
- build(deps): bump pypdf from 6.10.2 to 6.11.0 in /testing/cucumber by @dependabot[bot] in #6376
- build(deps): bump org.postgresql:postgresql from 42.7.10 to 42.7.11 by @dependabot[bot] in #6375
- build(deps): bump softprops/action-gh-release from 2.6.1 to 3.0.0 by @dependabot[bot] in #6346
- Restructure/frontend editor by @reecebrowne in #6404
- build(deps): bump github/codeql-action from 4.35.4 to 4.35.5 by @dependabot[bot] in #6421
- build(deps): bump actions/ai-inference from 2.0.7 to 2.1.0 by @dependabot[bot] in #6415
- build(deps): bump com.diffplug.spotless from 8.4.0 to 8.5.0 by @dependabot[bot] in #6417
- build(deps): bump requests from 2.33.1 to 2.34.2 in /testing/cucumber by @dependabot[bot] in #6416
- build(deps): bump reportlab from 4.5.0 to 4.5.1 in /testing/cucumber by @dependabot[bot] in #6414
- build(deps): bump idna from 3.12 to 3.15 in /testing/cucumber in the pip group across 1 directory by @dependabot[bot] in #6403
- Working local Saas by @ConnorYoh in #6450
- Fix Tauri testing by @jbrunton96 in #6462
- Auto-delete CI linting comments on success by @jbrunton96 in #6465
- saas: DocumentClassifier + PAYG data model by @ConnorYoh in #6460
- PAYG: PricingPolicyService + admin REST + 30s read cache by @ConnorYoh in #6469
- Portal by @reecebrowne in #6391
- PAYG: process tracking + shadow charging engine (PR B-1) by @ConnorYoh in #6477
- PAYG B-2: shadow-mode filter + interceptor (engine activation) by @ConnorYoh in #6519
- PAYG B-3 / S-3: cucumber suite for shadow-mode flows + CI workflow by @ConnorYoh in #6522
- Sync Translations + tauri fix for get info by @stirlingbot[bot] in #6484
New Contributors
- @IberianSoldierPC made their first contribution in #6309
- @saul1310 made their first contribution in #6438
- @mvanhorn made their first contribution in #6446
Full Changelog: v2.11.0...v2.12.0