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