Release notes: https://docs.onyx.app/changelog#v2-4-0
What's Changed
- feat: llm access controls by @nmgarza5 in #5819
- chore: change log-level of keyword extraction failure by @Weves in #6135
- fix: infinite render on embedding model page by @Weves in #6144
- fix(gha): docker login for all external image fetching by @jmelahman in #6139
- chore(gha): docker-login follow up by @jmelahman in #6150
- chore(deps): bump actions/setup-node from 4.4.0 to 6.0.0 by @dependabot[bot] in #6148
- chore(deps): bump actions/upload-artifact from 4.6.2 to 5.0.0 by @dependabot[bot] in #6146
- chore(deps): bump actions/download-artifact from 4.3.0 to 6.0.0 by @dependabot[bot] in #6147
- feat(gha): enable npm caching in CI by @jmelahman in #6151
- feat(gha): python tests use uv w/ caching by @jmelahman in #6152
- feat(api): Paginated Document Search by @justin-tahara in #6155
- fix(cohere): Add Billing Handler by @justin-tahara in #6156
- feat(auth): Allow JIT even with Invite List by @justin-tahara in #6157
- chore(gha): migrate playwright tests to runs-on by @jmelahman in #6154
- fix: improve /llm/provider performance by @Weves in #6158
- fix(gpt-5): Catch all by @justin-tahara in #6162
- feat(pre-commit): run check-yaml on .github/ by @jmelahman in #6160
- fix(embedding): Fix Deletion of Same Name by @justin-tahara in #6149
- fix(pegasus): Cleanup by @justin-tahara in #6163
- chore(runs-on): more instance families and use price-capacity-optimized by @jmelahman in #6165
- chore(gha): de-dupe python setup for external dep tests by @jmelahman in #6159
- chore(gha): migrate pr-integration-tests off blacksmith by @jmelahman in #6164
- fix: img input support check false vs. none by @wenxi-onyx in #6169
- chore(llm): interface decoupled from langchain by @rguan72 in #6128
- chore(gha): run whitespace fixers on actions by @jmelahman in #6172
- fix: safari input bar quadrupling new lines by @wenxi-onyx in #6173
- fix(gdrive): Checkbox fix by @justin-tahara in #6171
- chore(gha): explicit spot pricing by @jmelahman in #6177
- chore(agent sdk): make alternative to openai agent sdk by @rguan72 in #6153
- chore(hotfix): for configuration by @rguan72 in #6182
- chore(gha): ensure run-id is unique, fix hanging jobs by @jmelahman in #6183
- chore(lint): introduce actionlint, github actions linter by @jmelahman in #6184
- feat(upload): increase token limit to 100k and configurable skip by @Subash-Mohan in #6187
- build: Revert to using webpack instead of turbopack by @raunakab in #6185
- chore(deps): bump pypdf from 6.0.0 to 6.1.3 in /backend/requirements by @dependabot[bot] in #5866
- chore(deps): dependabot for python by @jmelahman in #6188
- chore: run playwright projects as separate jobs by @nmgarza5 in #6190
- feat: improve usability of react testing framework + multi-tool renderer tests by @nmgarza5 in #5973
- feat: Share chat button in top right corner by @raunakab in #6186
- chore(deps): bump pilosus/action-pip-license-checker from 2.0.0 to 3.1.0 by @dependabot[bot] in #6191
- chore(deps-dev): bump types-urllib3 from 1.26.25.11 to 1.26.25.14 in /backend by @dependabot[bot] in #6193
- chore(deps): bump docker/setup-buildx-action from 1.7.0 to 3.11.1 by @dependabot[bot] in #6196
- chore(deps): bump aquasecurity/trivy-action from 0.29.0 to 0.33.1 by @dependabot[bot] in #6194
- fix(slackbot): Switch between document set and assistant by @justin-tahara in #6198
- fix: type checking for multiToolTestHelpers by @nmgarza5 in #6199
- fix(slack): Show Channels when Editing Fed Slack by @justin-tahara in #6200
- chore(gha): final runs-on migration nits by @jmelahman in #6170
- chore(gha): remove custom cloudwatch metrics by @jmelahman in #6202
- fix(slack): Fixing the link coloring by @justin-tahara in #6203
- chore(gha): prefer Github-hosted for simple steps by @jmelahman in #6208
- chore(gha): prefer venv over installing python packages to the system by @jmelahman in #6213
- chore(runs-on): define custom AMI specs by @jmelahman in #6216
- fix: show agent descriptions by @wenxi-onyx in #6219
- feat: allow disabling the default assistant by @Weves in #6222
- fix(docprocessing): OOM cleanup by @justin-tahara in #6223
- fix: signup button by @Weves in #6228
- chore(deployments): prefer ecr over s3 as docker cache backend by @jmelahman in #6232
- chore(deployments): remove unnecessary install of build-essentials by @jmelahman in #6234
- refactor: Updated Modals API by @raunakab in #6227
- fix: Fix inputs overflowing in Settings page by @raunakab in #6238
- feat(component): new switch component by @Subash-Mohan in #6212
- refactor: Edit button types by @raunakab in #6235
- feat: allow switchover with active connectors only by @Weves in #6226
- fix: gpt-5 output formatting by @Weves in #6245
- chore(deployments): add ability to trigger dry-run build by @jmelahman in #6246
- fix: playwright test by @Weves in #6244
- chore(deployments): simplify pipeline + cross-platform builds by @jmelahman in #6250
- chore: readme by @wenxi-onyx in #6253
- fix: readme by @wenxi-onyx in #6254
- chore(deps-dev): bump js-yaml from 4.1.0 to 4.1.1 in /examples/widget by @dependabot[bot] in #6248
- chore(deployments): fix actions/checkout typo by @jmelahman in #6255
- fix: Assistant instruction ignored by @sktbcpraha in #6243
- fix(teams): handle OData parsing errors with special characters by @alex000kim in #6115
- fix(teams): mypy by @wenxi-onyx in #6259
- chore(fix): agent sdk replacement message formatting by @rguan72 in #6180
- fix(reformat): Teams Test by @justin-tahara in #6268
- feat(github): Showcasing our Github Repo Ranking by @justin-tahara in #6267
- fix(gdrive): Missing Id Field by @justin-tahara in #6262
- fix: Fix header for white-labelling by @raunakab in #6271
- refactor: Implement a proper
Switchcomponent by @raunakab in #6270 - feat(slack federated search scoping - 1/4): Add entity filtering config by @nmgarza5 in #6174
- chore(deployments): fix cross-platform related issues by @jmelahman in #6272
- chore(docker): install node deps before copying source by @jmelahman in #6261
- feat(slack federated search scoping - 2/4): Add query construction and filtering by @nmgarza5 in #6175
- feat(slack federated search scoping - 3/4): Add connector-level config support by @nmgarza5 in #6178
- chore(deps): bump next from 14.2.27 to 14.2.32 in /examples/widget by @dependabot[bot] in #5395
- fix(userfiles): remove fixed width in AssistantEditor and ProjectContextPanel by @Subash-Mohan in #6239
- refactor(chat): Apply Ownership Checks Only to Current Message User Files by @Subash-Mohan in #6240
- chore(mypy): color output in CI by @jmelahman in #6274
- chore(deployment): increase model-server builder to 40GB disk by @jmelahman in #6277
- fix: assistant reordering by @Weves in #6278
- feat(slack federated search scoping - 4/4): Add frontend connector config support by @nmgarza5 in #6181
- chore(scripts): only run check_lazy_imports on changed files by @jmelahman in #6275
- chore: foss sync readme by @wenxi-onyx in #6256
- fix(permsync): don't fail on empty group ids by @wenxi-onyx in #6281
- fix(tests): pause connector while indexing timeout by @wenxi-onyx in #6282
- chore(deps): Bump nanoid from 3.3.7 to 3.3.8 in /examples/widget by @dependabot[bot] in #3405
- fix(ui): new action form spacing fixes by @wenxi-onyx in #6285
- fix: mcp fixes by @evan-onyx in #6080
- fix: disable aggressive caching for Next.js static assets in dev by @nmgarza5 in #6280
- chore(docker): avoid ONYX_VERSION invalidating the docker cache by @jmelahman in #6288
- chore(gha): replace background docker pulls with docker-compose by @jmelahman in #6287
- chore(deps-dev): Bump js-yaml from 3.14.1 to 3.14.2 in /web by @dependabot[bot] in #6293
- chore(docker): generate OpenAPI schema/client with docker by @jmelahman in #6286
- fix(index attempts): Preserve some attempts by @justin-tahara in #6266
- chore(internal): search prune sections by @rguan72 in #6247
- chore(deps): Bump helm/kind-action from 1.12.0 to 1.13.0 by @dependabot[bot] in #6294
- chore(deps): Bump docker/login-action from 1.14.1 to 3.6.0 by @dependabot[bot] in #6295
- chore(deployment): notifications on build failures by @jmelahman in #6298
- chore(deps): Bump actions/setup-python from 4.9.1 to 6.0.0 by @dependabot[bot] in #6296
- chore(deployments): run trivy scanners separate from build and push by @jmelahman in #6301
- chore: pydantic v2 model configs by @wenxi-onyx in #6302
- feat(modal): Implement a new modal component by @Subash-Mohan in #6289
- fix(onboarding): Header animated icon by @Subash-Mohan in #6098
- enhancement(onboarding) : Replacing Select input with combobox by @Subash-Mohan in #6048
- chore(vespa): Update version by @justin-tahara in #6299
New Contributors
- @alex000kim made their first contribution in #6115