github onyx-dot-app/onyx v3.2.3

10 hours ago

See the assets to download this version and install.

What's Changed

  • perf: perm sync start time by @evan-onyx in #9685
  • fix(nginx): route /scim/* to api_server by @nmgarza5 in #9686
  • chore(greptile): add nginx routing rule for non-api backend routes by @nmgarza5 in #9687
  • chore(deps-dev): bump handlebars from 4.7.8 to 4.7.9 in /web by @dependabot[bot] in #9689
  • chore(deps-dev): bump picomatch from 2.3.1 to 2.3.2 in /web by @dependabot[bot] in #9691
  • chore(devtools): ods trace by @jmelahman in #9688
  • feat: configurable file upload size and token limits via admin settings by @Subash-Mohan in #9232
  • refactor(indexing): Vespa & Opensearch index function use Iterable by @Danelegend in #9384
  • feat(helm): add Prometheus metrics ports and Services for celery workers by @nmgarza5 in #9630
  • fix(fe): Popover content doesnt overflow on small screens by @jmelahman in #9612
  • chore(deps): bump brace-expansion in /backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web by @dependabot[bot] in #9698
  • chore(devtools): upgrade ods: 0.7.1->0.7.2 by @jmelahman in #9701
  • chore(playwright): deflake settings_pages.spec.ts by @jmelahman in #9684
  • Update README.md by @yuhongsun96 in #9703
  • chore(gha): pin helm release docker image by @jmelahman in #9706
  • feat(hook): admin page create or edit hook by @Bo-Onyx in #9690
  • chore(gha): fix helm release after image update by @jmelahman in #9707
  • fix(celery): use broker connection pool to prevent Redis connection leak by @nmgarza5 in #9682
  • chore(gha): helm release upstream nits by @jmelahman in #9708
  • chore(gha): fix git error after helm release migration to alpine base image by @jmelahman in #9709
  • chore(release): build all CLI wheels before publishing by @jmelahman in #9710
  • chore(deps): upgrade go deps by @jmelahman in #9711
  • fix(cli): onyx-cli --version interpolation by @jmelahman in #9712
  • feat(cli): --version and validate-config warn if backend version is incompatible by @jmelahman in #9715
  • chore(deps): bump cryptography from 46.0.5 to 46.0.6 by @dependabot[bot] in #9721
  • chore(deps): bump langchain-core from 1.2.11 to 1.2.22 by @dependabot[bot] in #9720
  • fix: Anthropic litellm thinking workaround by @evan-onyx in #9713
  • feat(widget): add citation badges to chat widget by @rohoswagger in #9714
  • fix(openpyxl): Colors must be aRGB hex values by @justin-tahara in #9727
  • feat(cli): onyx-cli serve over SSH by @jmelahman in #9726
  • perf(swr): convert raw-fetch hooks to SWR to eliminate duplicate requests by @nmgarza5 in #9694
  • refactor(opal): unify Interactive color system by @raunakab in #9717
  • feat(indexing): Max chunk processing by @Danelegend in #9400
  • refactor(indexing): Change adapters to support iterables by @Danelegend in #9469
  • refactor(indexing): Refactor indexing vector db abstraction by @Danelegend in #9653
  • feat(indexing): Batch chunks during doc processing by @Danelegend in #9468
  • chore(gha): prefer ci-protected env by @jmelahman in #9728
  • chore(deps): bump pygments from 2.19.2 to 2.20.0 by @dependabot[bot] in #9757
  • feat(opal): SelectCard + CardHeaderLayout by @raunakab in #9760
  • chore(deps): bump actions/cache from 5.0.3 to 5.0.4 by @dependabot[bot] in #9765
  • chore(deps): bump runs-on/cache from 50350ad4242587b6c8c2baa2e740b1bc11285ff4 to a5f51d6f3fece787d03b7b4e981c82538a0654ed by @dependabot[bot] in #9763
  • chore(fe): polish Query History table by @jmelahman in #9767
  • chore(deps): bump helm/chart-testing-action from b5eebdd9998021f29756c53432f48dab66394810 to 2e2940618cb426dce2999631d543b53cdcfc8527 by @dependabot[bot] in #9764
  • chore(types): fix IconButton size props by @jmelahman in #9772
  • feat(sentry): add release tracking to backend and frontend by @nmgarza5 in #9773
  • feat(rds): Adding RDS Snapshosts by @justin-tahara in #9779
  • feat(helm): add Grafana dashboard provisioning by @nmgarza5 in #9725
  • feat(sentry): enable frontend source map uploads in cloud CI by @nmgarza5 in #9775
  • feat(eks): Adding Cloudwatch logging by @justin-tahara in #9783
  • feat(rds): Adding CPU Alerts by @justin-tahara in #9784
  • refactor: migrate away from cards/Select by @raunakab in #9771
  • feat(rds): Add Freeable Memory alert by @justin-tahara in #9787
  • fix(tenants): run migrations on pool tenants before assigning to new users by @nmgarza5 in #9788
  • feat(canvas): Canvas Connector data fetching 2/4 by @benwu408 in #9386
  • feat(hook): hook status and logs by @Bo-Onyx in #9770
  • chore(opensearch): Add Grafana dashboard for retrieval by @acaprau in #9657
  • refactor(admin): image-generation by @raunakab in #9769
  • refactor(admin): LLM Config by @raunakab in #9806
  • fix(llm): when multiple providers are same type ensure name is prioritized when default by @jessicasingh7 in #9777
  • refactor(admin): web-search by @raunakab in #9761
  • perf(swr): add SWR_KEYS registry and skip revalidation for stable hooks by @nmgarza5 in #9695
  • refactor(admin): code-interpreter by @raunakab in #9790
  • feat(voice): VAD auto-stop only when auto-send is enabled by @jessicasingh7 in #9809
  • chore: fix batch logging by @evan-onyx in #9808
  • chore: Rag script for benchmark/regression by @yuhongsun96 in #9781
  • chore: fix indexing log2 by @evan-onyx in #9811
  • fix(connectors): fix reindex on paused file connectors by @jessicasingh7 in #9812
  • feat(hook): refactor under ee by @Bo-Onyx in #9776
  • feat(rds): Adding IO Metrics Alarms by @justin-tahara in #9789
  • fix: discord token validation by @evan-onyx in #9817
  • fix: install early exit by @evan-onyx in #9818
  • fix(perf): optimize chat sessions query to prevent DB cascading failures by @justin-tahara in #9802
  • feat(file-upload): Upload files exceeding tokens but skip indexing by @Danelegend in #9751
  • refactor(opal): split Card sizeVariant into padding + rounding by @raunakab in #9823
  • refactor(files): Port csv type to tabular by @Danelegend in #9785
  • feat(files): Inject file metadata over content for certain files by @Danelegend in #9786
  • refactor(admin): revamp Service Accounts page and AdminListHeader by @raunakab in #9824
  • chore(fe): prefer Button w/ href to wrapped Link by @jmelahman in #9774
  • fix(a11y): migrate some buttons to Hoverable by @jmelahman in #9778
  • fix(fe): foldable buttons unfold on tab by @jmelahman in #9828
  • refactor(swr): migrate all inline cache keys to SWR_KEYS registry by @nmgarza5 in #9782
  • chore(deployment): rework trivy job by @jmelahman in #9780
  • chore(deps): bump fastmcp from 3.0.2 to 3.2.0 by @dependabot[bot] in #9814
  • docs(readme): README and Contrib by @yuhongsun96 in #9829
  • README Update by @yuhongsun96 in #9833
  • feat(hook): frontend ee by @Bo-Onyx in #9825
  • chore(gha): cleanup connector tests by @jmelahman in #9836
  • refactor: drive connector by @evan-onyx in #9834
  • chore(deps): bump aiohttp from 3.13.3 to 3.13.4 by @dependabot[bot] in #9839
  • feat(hook): integrate document ingestion hook point by @Bo-Onyx in #9810
  • refactor(opal): split SelectCard's sizeVariant prop into paddingVariant + roundingVariant by @raunakab in #9830
  • fix(db): remove unnecessary selectinload(User.memories) from auth paths by @justin-tahara in #9838
  • feat(hook): update hook doc link and reference by @Bo-Onyx in #9841
  • fix(opensearch): Add Vespa server-side timeout for the migration by @acaprau in #9843
  • chore(opensearch): Increase DEFAULT_NUM_HYBRID_SUBQUERY_CANDIDATES to 500, disable profiling by default by @acaprau in #9844
  • fix(xlsx): Improve empty row/col handling by @Danelegend in #9288
  • fix(opal): guard opal/interactive's onClick handlers against React portal event bubbling by @raunakab in #9850
  • fix(llm): Azure custom model support + Mistral tool call message ordering by @justin-tahara in #9729
  • refactor(emitter): replace bus-polling with merge-queue by @nmgarza5 in #9803
  • refactor: Hook Extensions edits by @raunakab in #9831
  • docs: Chat README by @yuhongsun96 in #9853
  • feat(chat): add multi-model parallel streaming backend by @nmgarza5 in #9647
  • feat(chat): add frontend types and API helpers for multi-model streaming by @nmgarza5 in #9648
  • feat(groups): seed default Admin and Basic user groups by @Subash-Mohan in #9795
  • refactor: update Button to define its own internal disabled styling by @raunakab in #9851
  • feat(hook): Show connection lost status by @Bo-Onyx in #9848
  • refactor: simplify opal/Disabled by removing its context by @raunakab in #9852
  • fix(offline): fallback to system sans-serif font by @jmelahman in #9860
  • refactor: move SidebarTab to opal by @raunakab in #9863
  • Revert "refactor: move SidebarTab to opal" by @raunakab in #9865
  • chore(playwright): stabalize icon loading, users table timestamp by @jmelahman in #9864
  • refactor: move SidebarTab to Opal with disabled prop and variant/state API (v2) by @raunakab in #9866
  • feat(install): add GitHub star prompt at end of install script by @rohoswagger in #9861
  • fix(opensearch): Re-order migration task logic to not hold DB sessions too long by @acaprau in #9872
  • fix(opensearch): Doc IDs whose length would exceed OpenSearch's ID length are hashed by @acaprau in #9847
  • chore: remove unused db rows by @evan-onyx in #9869
  • fix(desktop): prefer native scrollbar styling by @jmelahman in #9879
  • feat(cli): make onyx-cli agent-friendly by @rohoswagger in #9874
  • fix(fe): fix sticky sidebar headers overlapping scrollbars by @jmelahman in #9884
  • fix(mcp server): propagate detailed error messages to mcp client instead of generic message and migrate to OnyxError by @wenxi-onyx in #9880
  • feat: cluster disabled admin sidebar tabs at the bottom by @raunakab in #9867
  • feat: filestore delete missing error by @evan-onyx in #9878
  • fix(fe): projects buttons transition in like other sidebar items by @jmelahman in #9875
  • fix(fe): closed sidebar button tooltip text color by @jmelahman in #9876
  • feat(hook): UI improve disconnect error popover by @Bo-Onyx in #9877
  • feat(cli): onyx install-skill by @jmelahman in #9889
  • fix(mobile): update sidebar responsiveness by @jmelahman in #9862
  • fix(notion): extract people properties and inline table content by @jessicasingh7 in #9891
  • fix: user files deleted by cleanup task by @evan-onyx in #9890
  • fix(mobile): sidebar overlaps content on medium-sized screens by @jmelahman in #9870
  • fix: Edit bifrost colour by @raunakab in #9897
  • fix(mt): Update Preprovision Workflow by @justin-tahara in #9896
  • chore(deps): bump litellm from 1.81.6 to 1.83.0 by @dependabot[bot] in #9898
  • feat(cli): render markdown while streaming (experiment) by @jmelahman in #9893
  • refactor: rework admin sidebar footer by @raunakab in #9895
  • Revert "chore(deps): bump litellm from 1.81.6 to 1.83.0 (#9898)" by @jmelahman in #9908
  • fix: Edit AccountPopover + Separator's appearances when folded by @raunakab in #9906
  • refactor: flatten opal card layouts, add children to CardHeaderLayout by @raunakab in #9907
  • chore: rm remnants of old kombu psql broker code by @wenxi-onyx in #9924
  • fix(federated): prevent masked credentials from corrupting stored secrets by @nmgarza5 in #9868
  • feat(chat): add multi-model selector and chat hook by @nmgarza5 in #9854
  • refactor: remove dead LLM provider code from chat page load path by @wenxi-onyx in #9925
  • feat(helm): add optional CA certificate update step to api-server startup by @alex000kim in #9378
  • chore: bump sleep time in flaky test by @evan-onyx in #9900
  • chore(deps): bump azure/setup-helm from 4.3.1 to 5.0.0 by @dependabot[bot] in #9934
  • chore(deps): bump softprops/action-gh-release from 2.2.2 to 2.6.1 by @dependabot[bot] in #9935
  • fix: set correct ee mode for mcp server by @wenxi-onyx in #9933
  • chore(deps): bump actions/stale from 10.1.1 to 10.2.0 by @dependabot[bot] in #9936
  • chore(db): Add env var for multiple postgres hosts by @acaprau in #9942
  • chore(deps-dev): bump vite from 6.4.1 to 6.4.2 in /web by @dependabot[bot] in #9944
  • chore(deps-dev): bump vite from 7.3.1 to 7.3.2 in /widget by @dependabot[bot] in #9950
  • refactor: clean up KeyValueInput and EmptyMessageCard by @raunakab in #9947
  • chore: update custom LLM modal descriptions by @raunakab in #9946
  • fix(llm-config): extract first-class fields from custom provider key-value list by @raunakab in #9945
  • chore: context gitignore by @evan-onyx in #9949
  • chore(helm): Bumping Python Sandbox to v0.3.2 by @justin-tahara in #9955
  • refactor: conditionally render LLM modals instead of early-returning null by @raunakab in #9954
  • fix: a proper revamp of "Custom LLM Configuration Models" by @raunakab in #9958
  • fix: replace React context hover tracking with pure CSS by @raunakab in #9961
  • fix: stop falsely rejecting owner-password-only PDFs as protected by @jmelahman in #9953
  • feat(chat): add multi-model response panels by @nmgarza5 in #9855
  • docs(celery): add Prometheus metrics integration guide by @nmgarza5 in #9969
  • feat: generic OpenAI Compatible LLM Provider setup by @jmelahman in #9968
  • fix(groups): Global Curator Permissions by @justin-tahara in #9974
  • chore(mt): Update cloud tasks by @justin-tahara in #9967
  • fix(indexing, powerpoint files): Patch markitdown _convert_chart_to_markdown to no-op by @acaprau in #9970
  • chore(docker): docker bake cache-from :edge images by @jmelahman in #9976
  • fix(fe): use Modal.Footer for token rate limit modal button by @jessicasingh7 in #9978
  • refactor(ollama): manual fetch and fix ollama cloud base url by @wenxi-onyx in #9973
  • feat(chat): wire multi-model streaming into chat controller and UI by @nmgarza5 in #9929
  • feat(pruning): Add Wire Prometheus metrics into the Heavy Celery worker by @Bo-Onyx in #9982
  • chore(mt): reduce cleanup-idle-sandboxes beat cadence by @justin-tahara in #9984
  • fix(auth): migrate limited-role checks to account-type based access control by @Subash-Mohan in #9930
  • fix: onboarding LLM Provider configuration fixes by @raunakab in #9972
  • fix: LM Studio API key field mismatch by @raunakab in #9991
  • refactor: remove auto-refresh from LLM provider model selection by @raunakab in #9995
  • fix: initialize tracing in Slack bot service by @wenxi-onyx in #9993
  • refactor: foldable model list in ModelSelectionField by @raunakab in #9996
  • chore: delete unused files by @raunakab in #10001
  • fix: enable force-delete for last LLM provider by @raunakab in #9998
  • fix: Custom LLM Provider requires a Provider Name by @jmelahman in #10003
  • fix: fetch Custom Models provider names by @jmelahman in #10004
  • feat(metrics): add pruning-specific Prometheus metrics by @Bo-Onyx in #9983
  • feat: @opal/logos by @raunakab in #10002
  • feat(ods): Ad Hoc Deploys by @justin-tahara in #10014
  • chore(python sandbox): Bump to v0.3.3 by @justin-tahara in #10016
  • chore(ods): Bump from v0.7.2 -> v0.7.3 by @justin-tahara in #10018
  • fix: /api/admin/llm/built-in/options/custom 404 by @jmelahman in #10009
  • chore(edge): Skip edge tag by @justin-tahara in #10019
  • chore: update generic LLM configuration help copy by @jmelahman in #10011
  • fix(chat): resolve model selector showing stale model on agent switch by @nmgarza5 in #10022
  • fix(input): differentiate attach file and add model icons by @nmgarza5 in #10024
  • fix(chat): center multi-model response panels in chat view by @nmgarza5 in #10006
  • fix(chat): gate ModelSelector render on agent and provider readiness by @nmgarza5 in #10017
  • fix(chat): only collapse sidebar on multi-model submit by @nmgarza5 in #10020
  • fix(chat): prevent popover flash when selecting 3rd model by @nmgarza5 in #10021
  • chore(python): simplify internal packages/workspace by @jmelahman in #10029
  • feat(nrf): add ModelSelector and multi-model support to Chrome extension by @nmgarza5 in #10023
  • feat(chat): add deselect preferred response with smooth transitions and scroll preservation by @nmgarza5 in #10026
  • refactor: consolidate LLM provider modal routing by @raunakab in #10030
  • fix(chat): set consistent 720px content width for chat and input bar by @nmgarza5 in #10032
  • fix(helm): declare metrics port on celery-worker-heavy by @Bo-Onyx in #10033
  • fix: jira bulk issue fetch batching (#10044) to release v3.2 by @github-actions[bot] in #10049
  • feat(federated): full thread replies + direct URL fetch in Slack search (#9940) to release v3.2 by @github-actions[bot] in #10050
  • fix(LLM config): resolve API Key before fetching models (#10056) to release v3.2 by @github-actions[bot] in #10057
  • fix(license): exclude service account users from seat count (#10053) to release v3.2 by @github-actions[bot] in #10061
  • feat(slack-bot): make agent selector searchable (#10036) to release v3.2 by @github-actions[bot] in #10038
  • fix(scim): add advisory lock to prevent seat limit race condition (#10048) to release v3.2 by @github-actions[bot] in #10065
  • fix(chat): hide ModelSelector in search mode (#10052) to release v3.2 by @nmgarza5 in #10068
  • fix(mcp): prevent masked OAuth credentials from being stored on re-auth (#10066) to release v3.2 by @github-actions[bot] in #10069
  • fix(chat): model selection + multi-model follow-up correctness (#10075) to release v3.2 by @github-actions[bot] in #10078
  • feat(chat): smooth character-level streaming (#10076) to release v3.2 by @github-actions[bot] in #10081
  • Revert "feat(chat): smooth character-level streaming (#10076) to release v3.2" by @nmgarza5 in #10082
  • fix(copy-button): fall back when Clipboard API unavailable (#10080) to release v3.2 by @github-actions[bot] in #10084
  • fix(chat): isolate multi-model streaming errors to their panels (#10113) to release v3.2 by @github-actions[bot] in #10127
  • fix: welcome message alignment in chrome extension/desktop (#10094) to release v3.2 by @github-actions[bot] in #10135
  • fix(chat): disable Deep Research in multi-model mode (ENG-4009) (#10126) to release v3.2 by @github-actions[bot] in #10139
  • feat(chat): scrollable tables with overflow fade (#10097) to release v3.2 by @nmgarza5 in #10136
  • feat(chat): smooth character-level streaming (#10093) to release v3.2 by @nmgarza5 in #10138
  • chore(hotfix): cherry-pick 2 commits to release v3.2 by @nmgarza5 in #10140
  • fix(google): handle JSON credential payloads in KV storage (@jack-larch) (#10160) to release v3.2 by @github-actions[bot] in #10165

Full Changelog: v3.1.4...v3.2.3

Don't miss a new onyx release

NewReleases is sending notifications on new releases.