What's Changed
- chore(pre-commit): run
npm installafterweb/package.jsonchanges by @jmelahman in #7382 - feat(opensearch): Refactor and implement chunk content enrichment and cleanup by @acaprau in #7385
- chore(devtools): upgrade
odsto v0.2.2 by @jmelahman in #7282 - chore(fe): fix
undefinedclassName in tooltip by @jmelahman in #7324 - chore: move public tag constant and tag ingestion api by @wenxi-onyx in #7383
- feat: Feedback modals update by @raunakab in #7380
- chore(deps-dev): bump virtualenv from 20.35.4 to 20.36.1 in /backend/requirements by @dependabot[bot] in #7388
- revert: "feat: Enable triple click on content in the chat" by @jmelahman in #7393
- chore(deps): bump filelock from 3.20.1 to 3.20.3 in /backend/requirements by @dependabot[bot] in #7389
- chore(playwright): skip dall-e test by @jmelahman in #7395
- chore(deps): Bump docker/metadata-action from 5.9.0 to 5.10.0 by @dependabot[bot] in #6669
- chore(deps): Bump dask from 2023.8.1 to 2025.11.0 in /backend by @dependabot[bot] in #6671
- chore(deps): Bump pandas from 2.2.3 to 2.3.3 in /backend by @dependabot[bot] in #6670
- fix: prevent updates from overwriting perm syncing by @evan-onyx in #7384
- fix: _url_lookup_variants swallows all non-url document ids by @yuhongsun96 in #7387
- feat: add back indexed slack by @Weves in #7392
- fix: LLM failing to give answer on tool call by @yuhongsun96 in #7398
- fix(mcp): per-user auth by @evan-onyx in #7400
- feat(tools): auto-pin internal search when sources change by @nmgarza5 in #7376
- chore: Refactor pre search UI backend by @yuhongsun96 in #7399
- feat: Deep Research Multilingual by @yuhongsun96 in #7405
- fix(chat): Internal search enablement matches source enablement by @Danelegend in #7338
- refactor(llm): replace credential_file w/ custom_config in llmconfig by @Danelegend in #7401
- chore(docs): fix
is_creationdescription by @jmelahman in #7414 - feat(mcp): add support for passing custom headers through send-chat-message API by @rohoswagger in #7390
- fix: Chat naming for long messages by @yuhongsun96 in #7415
- fix: Fix small UI rendering bugs in
AgentEditorPageby @raunakab in #7417 - feat(OpenSearch): Implement update by @acaprau in #7416
- chore: Cleanup dead code by @yuhongsun96 in #7418
- fix: Agent editor fix by @raunakab in #7419
- chore: usage limit defaults to off by @evan-onyx in #7420
- chore: Turn off reasoning for chat naming by @yuhongsun96 in #7423
- refactor(img-gen): encapsulate provider quirks by @Danelegend in #7386
- chore: default usage limits off2 by @evan-onyx in #7424
- feat: Agent sharing by @raunakab in #7359
- feat: Agent deletion by @raunakab in #7361
- feat(opensearch): Propogate search scores by @acaprau in #7425
- feat: Search Backend by @yuhongsun96 in #7426
- chore(tests): fix nightly model-server tests by @jmelahman in #7421
- feat(citations): Add include_citations parameter to control citation processing by @rohoswagger in #7412
- feat(chat): enable Slack federated search based on user preference by @Subash-Mohan in #7355
- chore(devtools):
ods run-ciby @jmelahman in #7432 - chore(devtools): #7432 follow ups by @jmelahman in #7436
- chore(devtools): fix
odsREADME typo by @jmelahman in #7441 - chore(devtools): upgrade
ods-> v0.3.2 by @jmelahman in #7438 - feat(opensearch): Implement match highlighting by @acaprau in #7437
- feat: Backend Search APIs by @yuhongsun96 in #7431
- fix: Fix invite buttons by @raunakab in #7444
- refactor(fe): simplify AIMessage render by @jmelahman in #7447
- fix(fe): assistant icon is inline with chat by @jmelahman in #7449
- refactor: User settings hooks by @raunakab in #7445
- fix: bedrock non-anthropic prompt caching by @evan-onyx in #7435
- fix: Update modal sizings by @raunakab in #7452
- feat(opensearch): Fix some stuff around metadata to improve code and match what we store in Vespa by @acaprau in #7448
- fix: Fix notifications popover that broke with some modal/popover changes by @raunakab in #7453
- chore(deps): bump torch from 2.6.0 to 2.9.1 in /backend/requirements by @dependabot[bot] in #5667
- chore(deps): upgrade widget deps by @jmelahman in #7457
- chore(deps): remove diff and npm in /web by @dependabot[bot] in #7422
- chore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2 in /web by @dependabot[bot] in #7458
- chore(deps-dev): Bump storybook from 8.6.14 to 8.6.15 in /web by @dependabot[bot] in #6847
- chore(deps): bump langchain-core from 0.3.51 to 0.3.81 by @dependabot[bot] in #7456
- chore(deps): bump langchain-text-splitters from 0.3.8 to 0.3.9 by @dependabot[bot] in #7459
- fix: improve scroll behavior by @nmgarza5 in #7364
- fix: delete old notifications first in migration by @wenxi-onyx in #7454
- feat: url builder for api server http requests by @wenxi-onyx in #7442
- feat: override tenant usgae limits for dev mode by @wenxi-onyx in #7463
- Contribution Guidelines by @yuhongsun96 in #7468
- enhancement: prompt tuning by @yuhongsun96 in #7469
- fix(playwright): waitFor instead of waitForSelector for action popover button by @nmgarza5 in #7464
- chore(deps): bump pyasn1 from 0.6.1 to 0.6.2 by @dependabot[bot] in #7472
- chore(fe): fix WelcomeMessage hydration issue by @jmelahman in #7473
- fix(db): ensure migrations are atomic by @jmelahman in #7474
- chore(deps): bump distributed from 2025.11.0 to 2026.1.1 in /backend/requirements by @dependabot[bot] in #7462
- chore: reenable some tests by @yuhongsun96 in #7476
- feat(img-gen): Add nanobanana to backend by @Danelegend in #7403
- feat(image-gen): nano banana addition on fe by @Danelegend in #7375
- refactor(fe): remove redundant
as="span"usage by @jmelahman in #7479 - feat: Doc search optionally returns contents by @yuhongsun96 in #7481
- chore(git):
git rm plans/ -rby @jmelahman in #7482 - refactor: Layout fixes by @raunakab in #7475
- fix(vespa): Make ID retrieval always check for tenant ID; Add additional tenant ID checks in the new interface by @acaprau in #7480
- feat: Keyword Expansions by @yuhongsun96 in #7485
- feat: LLM filter on query endpoint by @yuhongsun96 in #7492
- fix: memory leak possibility by @yuhongsun96 in #7493
- chore: drop dead table by @yuhongsun96 in #7500
- feat: onyx discord bot - backend, crud, and apis by @wenxi-onyx in #7494
- fix: Fix connector-setup modal by @raunakab in #7502
- refactor: Small styling / prop-naming refactors by @raunakab in #7503
- refactor: Fix some onboarding inaccuracies by @raunakab in #7511
- feat(ee): license enforcement middleware by @nmgarza5 in #7483
- fix: Popover size fix by @raunakab in #7521
- fix: Line item fixes by @raunakab in #7513
- fix(test): confluence group sync by @evan-onyx in #7536
- fix: tool call handling for weak models by @yuhongsun96 in #7538
- feat: onyx discord bot - api client and cache manager by @wenxi-onyx in #7495
- feat: onyx embeddable widget by @rohoswagger in #7427
- feat: onyx discord bot - discord client by @wenxi-onyx in #7496
- feat(billing): add annual pricing support to subscription checkout by @nmgarza5 in #7506
- refactor: proxy customer portal session through control plane by @nmgarza5 in #7544
- feat: Memory initial by @yuhongsun96 in #7547
- fix: prompt tuning by @yuhongsun96 in #7550
- fix(fe): chat header is sticky and transparent by @jmelahman in #7487
- chore(fe): align assistant icon with chat bar by @jmelahman in #7537
- chore(fe): fix sticky header parent height by @jmelahman in #7561
- fix(fe): show scroll-down button when user scrolls up during streaming by @nmgarza5 in #7562
Full Changelog: v2.9.0...v2.10.0-beta.0