See the assets to download this version and install.
What's Changed
- chore: Better enforcement of masking by @yuhongsun96 in #7967
- refactor(opal): select variant, transient/selected separation, OpenButton chevron fix by @raunakab in #8284
- chore(ollama): Sort model names by @justin-tahara in #8288
- feat(chat): dynamic bottom spacer for fresh-chat push-up effect by @nmgarza5 in #8285
- feat(ee): Enable license enforcement by default by @nmgarza5 in #8270
- fix(timeline): reduce agent message re-renders with referential stability in usePacedTurnGroups by @Subash-Mohan in #8265
- chore(craft): update demo dataset and add sandbox image readme by @wenxi-onyx in #8059
- fix(chatpage): Improve agent message layout, sidebar nesting, and icon fixes by @Subash-Mohan in #8224
- feat(memory): add user preferences and structured user context in system prompt by @Subash-Mohan in #8264
- chore(playwright): improve preflight checks and setup by @jmelahman in #8283
- fix(vertex): Updating masking workflow by @justin-tahara in #8299
- chore(tests): use CE backend for model_server tests by @jmelahman in #8296
- fix(embedding): Updating Masking Logic by @justin-tahara in #8301
- fix(opal): extract interactive container styles to CSS by @raunakab in #8307
- chore(slack): add logging when bot messages are filtered during indexing by @nmgarza5 in #8305
- feat(slack): add option to include bot messages during indexing by @nmgarza5 in #8309
- fix: make /health check async by @wenxi-onyx in #8314
- chore(devtools): deploy preview frontend builds in CI by @jmelahman in #8315
- chore(deployment): only try to build desktop if semver-like tag by @jmelahman in #8316
- chore(craft): bump sandbox limits one last time TM by @wenxi-onyx in #8317
- chore(llm): Adding new Mock LLM Call test by @justin-tahara in #8290
- feat(craft): narrow file sync to source, prevent concurrent syncs, and use --delete flag on incremental syncs by @wenxi-onyx in #8235
- fix(ee): copy license public key into Docker image by @nmgarza5 in #8322
- chore(deps): bump cryptography from 46.0.3 to 46.0.5 by @dependabot[bot] in #8319
- fix: allow basic users to share agents by @wenxi-onyx in #8269
- chore(llm): Hardening Fallback Tool Call by @justin-tahara in #8325
- chore(devtools): Add comment in AGENTS.md about the limitations of Celery timeouts with threads by @acaprau in #8257
- chore(opensearch): Improved migration task 0 - Schema migrations by @acaprau in #8321
- refactor(memory): Refactor memories to use ID-based persistence and new memories UI by @Subash-Mohan in #8294
- feat(opensearch): Improved migration task 1 - Completely replace old task logic with new by @acaprau in #8323
- feat(opal): add foldable prop to Button + select-variant icon colour by @raunakab in #8300
- fix(craft): load messages before restore session and feat: timeout restoration operations by @wenxi-onyx in #8303
- chore(deps): bump langchain-core from 0.3.81 to 1.2.11 in /backend/requirements by @dependabot[bot] in #8334
- chore(deps): bump pillow from 12.0.0 to 12.1.1 by @dependabot[bot] in #8338
- chore(playwright): remove chromatic by @jmelahman in #8339
- chore(opensearch): Add migration queue to helm chart and launch json by @acaprau in #8336
- fix(anthropic): Model Selection in Multi-Tenant by @justin-tahara in #8308
- feat(backend): add default_app_mode field to User table by @raunakab in #8291
- chore(admin): Improve Playwright test speeds by @justin-tahara in #8326
- fix: upgrade plan page nits by @wenxi-onyx in #8346
- fix: idleReplicaCount should be optional for ScaledObjects by @victoriamreese in #8344
- chore(playwright): remove unnecessary global auth checks by @jmelahman in #8341
- refactor(opal): update Container height variants, remove paddingVariant by @raunakab in #8350
- fix: Metadata file for larger zips by @yuhongsun96 in #8327
- chore(devtools):
ods composedefaults ee version by @jmelahman in #8351 - chore(devtools): address missed cubic review by @jmelahman in #8353
- chore(devtools): upgrade
ods: 0.5.1->0.5.2 by @jmelahman in #8355 - chore(devtools): update
ods composedefaults by @jmelahman in #8357 - chore(devtools): upgrade
ods: 0.5.2->0.5.3 by @jmelahman in #8358 - chore(search-settings): Remove unused kv search-setting key by @Danelegend in #8356
- fix(bedrock): Fixing toolConfig call by @justin-tahara in #8342
- chore(opensearch): Tuning - Reduce k from 1000 to 50 by @acaprau in #8359
- refactor(opal): rename subvariant to prominence, add internal, remove static by @raunakab in #8348
- feat: minimal deployment mode by @evan-onyx in #8293
- fix(ee): follow HTTP→HTTPS redirects in forward_to_control_plane by @nmgarza5 in #8360
- chore(llm): Backend Fallback Logic Tests by @justin-tahara in #8363
- fix: no vector db tests by @evan-onyx in #8369
- chore(playwright): Setup LLM Provider by @justin-tahara in #8362
- fix(opal): add padding to Interactive.Container and smooth foldable transitions by @raunakab in #8367
- feat(ee): gate access only when legacy EE flag is set and no license exists by @nmgarza5 in #8368
- feat(opensearch): Admin configuration 0 - REST APIs for migration stuff by @acaprau in #8364
- fix(opensearch): Make chunk migration not stop on an exception; also ACL does not raise by @acaprau in #8375
- feat(opensearch): Admin configuration 1 - FE migration tab in the admin sidebar, gated by env var by @acaprau in #8365
- feat(opensearch): Admin configuration 2 - Make the retrieval toggle actually do something by @acaprau in #8370
- chore: Opensearch tuning by @yuhongsun96 in #8374
- feat(memory): enable memory tool to add or update the memory by @Subash-Mohan in #8331
- chore(llm): Adding Tool Enforcement Tests by @justin-tahara in #8371
- refactor(opal): migrate
IconButtonusages to opalButtonby @raunakab in #8333 - feat: Unified Search and Chat by @raunakab in #8106
- fix: Search submission buttons layouts by @raunakab in #8382
- chore: make chatbackgrounds local assets for air-gapped envs by @wenxi-onyx in #8381
- chore(devtools): Recommend @playwright/mcp in Cursor by @jmelahman in #8380
- feat(search-settings): Add tests + contextual llm validation by @Danelegend in #8376
- feat(craft): local file connector by @rohoswagger in #8304
- refactor: github connector by @evan-onyx in #8384
- feat(craft): pptx generation, editing, preview by @wenxi-onyx in #8383
- fix(craft): craft connector FE nits by @rohoswagger in #8387
- chore(llm): Additional Model Selection Test by @justin-tahara in #8389
- fix: Reminders polluting the query expansion by @yuhongsun96 in #8391
- feat(craft): pdf preview and refresh output panel by @wenxi-onyx in #8392
- fix(billing): exclude inactive users from seat counts and allow users page when gated by @nmgarza5 in #8397
- fix: remove log error when authtype is not set by @wenxi-onyx in #8399
- fix(ollama): Fixing Content Skipping by @justin-tahara in #8092
- fix: flaky no vectordb test by @evan-onyx in #8400
- chore: hide file reader by @evan-onyx in #8402
- fix(ollama): Passing Context Window through by @justin-tahara in #8385
- fix(email): Making sure Email Links go to Default Mail Service by @justin-tahara in #8395
- fix: SearXNG works now by @yuhongsun96 in #8403
- chore(devtools):
ods screenshot-difffor visual regression testing by @jmelahman in #8386 - feat(auth): enforce seat limits on all user creation paths by @nmgarza5 in #8401
- chore(opensearch): Add profiling information by @acaprau in #8404
- fix: sharepoint cred refresh by @evan-onyx in #8406
- chore(playwright): upload baselines with merge_group jobs by @jmelahman in #8410
- chore(bulk invite): free trial limit by @jessicasingh7 in #8378
- chore: Project instructions would get ignored by @yuhongsun96 in #8409
- chore: Tiny intro message change by @yuhongsun96 in #8415
- chore(playwright): make screenshots deterministic by @jmelahman in #8412
- fix(memory): memory tool UI and prompt injection issues by @Subash-Mohan in #8377
- chore: reminder prompt to be moveable by @yuhongsun96 in #8417
- fix(web): icon button and timeline header UI fixes by @raunakab in #8416
- refactor(web): migrate from usePopup/setPopup to global toast system by @raunakab in #8411
- chore(playwright): welcome_page tests & per-element screenshots by @jmelahman in #8426
- chore(tests): temporarily disable exa tests by @jmelahman in #8431
- chore(tests): skip additional web_search test by @jmelahman in #8440
- chore(tests): skip yet another test_web_search_api test by @jmelahman in #8442
- feat(scim): add SCIM database models and migration by @nmgarza5 in #8419
- feat(airtable): index all and heirarchy for craft by @wenxi-onyx in #8414
- chore(playwright): tag appearance_theme tests exclusive by @jmelahman in #8441
- feat(llm): Populate env w/ custom config by @Danelegend in #8328
- fix: remove user file indexing from launch, add init imports for all celery tasks, bump sandbox memory limits by @wenxi-onyx in #8443
- feat(scim): add SCIM 2.0 Pydantic schemas by @nmgarza5 in #8420
- fix(celery): Respecting Limits for Celery Heavy Tasks by @justin-tahara in #8407
- fix: remove default idleReplicaCount by @victoriamreese in #8434
- chore(playwright): login page screenshots by @jmelahman in #8427
- chore(playwright): create new user tests by @jmelahman in #8429
- chore(playwright): include option to hide element in screenshots by @jmelahman in #8446
- fix: sharepoint cred refresh2 by @evan-onyx in #8445
- feat(contextual-llm): Populate and set w/ llm flow by @Danelegend in #8398
- chore(playwright): mask non-deterministic email element by @jmelahman in #8448
- feat: add setting to configure mcp host by @victoriamreese in #8439
- fix: don't pass captcha token to db by @wenxi-onyx in #8449
- chore(gha): de-duplicate integration test logic by @jmelahman in #8450
- feat(scim): add SCIM PATCH operation handler with unit tests by @nmgarza5 in #8422
- feat(scim): add SCIM filter expression parser with unit tests by @nmgarza5 in #8421
- chore(playwright): Adding new LLM Runtime tests by @justin-tahara in #8447
- chore: Remove end of lived backend routes by @yuhongsun96 in #8453
- chore(deps): bump qs from 6.14.1 to 6.14.2 in /web by @dependabot[bot] in #8451
- fix: bake public recaptcha key in cloud image by @wenxi-onyx in #8458
- chore: disable auto craft animation with feature flag by @wenxi-onyx in #8459
- chore: License update (No change, just touchup) by @yuhongsun96 in #8460
- refactor: connector config refresh elements/cleanup by @wenxi-onyx in #8428
- chore: Context summarization update by @yuhongsun96 in #8467
- fix: CheckpointedConnector pruning only processes first checkpoint step (mirror of #8464) by @evan-onyx in #8468
- chore(llm): Adding more FE Unit Tests by @justin-tahara in #8457
- fix(ui): fix few common ui bugs by @Subash-Mohan in #8425
- feat: agent view only modal by @raunakab in #7989
- fix: allow public oauth clients via DCR by @evan-onyx in #8482
- feat: pruning picks up hierarchynodes by @evan-onyx in #8481
- chore: hiernode passive deletes by @evan-onyx in #8484
- fix: custom MCP auth Headers in API [mirror of #8345] by @evan-onyx in #8487
- feat: slim confluence hiernodes by @evan-onyx in #8490
- fix: Code interpreter takes files by @Danelegend in #8489
- fix(ui): remove data-state from Switch by @rohoswagger in #8394
- fix(frontend): simplify onboarding logic and fix UI issues by @Subash-Mohan in #8470
- Chore/mcp server host by @victoriamreese in #8472
- fix(vertex): Additional fix for Opus 4.6 by @justin-tahara in #8497
- fix: Interactive.Base href rendering and container self-stretch by @raunakab in #8492
- fix(desktop): Link clicking within App by @justin-tahara in #8493
- fix: Edit messages w/ files by @Danelegend in #8461
- chore(playwright): hide toast elements in screenshots by @jmelahman in #8501
- chore(playwright): use
userfor llm runtime tests by @jmelahman in #8502 - fix(craft): ephemeral ACP clients to prevent multi-replica session corruption by @rohoswagger in #8465
- fix(helm): Log Level Passthrough for Celery by @justin-tahara in #8495
- chore(playwright): Cleanup for LLM Tests by @justin-tahara in #8504
- fix(ee): small ux fixes for licensing by @nmgarza5 in #8498
- chore: undeprecate doc sets by @evan-onyx in #8505
- feat(craft): ACP session persistence across sandbox sleep/wake by @rohoswagger in #8466
- feat(scim): add SCIM database CRUD operations (DAL) by @nmgarza5 in #8424
- chore(mcp): Adding more Playwright Tests by @justin-tahara in #8452
- chore(cursor): playwright SKILL.md by @jmelahman in #8506
- feat(scim): add SCIM bearer token authentication by @nmgarza5 in #8423
- chore(playwright): organize tests into directories by @jmelahman in #8509
- chore(playwright): Cleanup MCP Tests by @justin-tahara in #8512
- fix: Enable search UI in Chrome extension side panel by @rohoswagger in #8486
- chore(playwright): prefer absolute imports by @jmelahman in #8511
- chore(gha): only run zizmor when .github/ changes by @jmelahman in #8516
- fix: open_url broken on non-normalized urls and enable web crawl tests by @wenxi-onyx in #8508
- chore: add linguist-language by @Danelegend in #8515
- fix(ollama): Cleaning up DeepSeek by @justin-tahara in #8519
- chore(playwright): update skill re: user isolation best-practices by @jmelahman in #8521
- feat(scim): add SCIM 2.0 service discovery endpoints by @nmgarza5 in #8454
- fix: create release notifications on cloud by @wenxi-onyx in #8525
- fix(fe): center-align modals relative to chat container by @jmelahman in #8517
- chore(playwright): skip visual regression report on cancelled by @jmelahman in #8528
- chore: increase firecrawl test timeout to 60s for e2e test by @wenxi-onyx in #8529
- feat(observability): add production Prometheus instrumentation module by @nmgarza5 in #8503
- fix: shared drive node names by @evan-onyx in #8520
- chore(playwright): chat rendering tests by @jmelahman in #8526
- feat(chat): new chat sharing UI by @Subash-Mohan in #8471
- chore(playwright): screenshots wait for animations by @jmelahman in #8530
- chore(gha): update
helm/chart-testing-actionversion by @jmelahman in #8536 - chore(gha): rm nightly license scan workflow by @jmelahman in #8541
- fix: model config not populating flow during sync by @Danelegend in #8542
- chore(fe): update SourceTag tag size by @jmelahman in #8540
- chore(playwright): worker-aware users for test isolation by @jmelahman in #8544
- chore(llm): Cleaning up Docstring by @justin-tahara in #8546
- feat(scim): add SCIM User CRUD endpoints by @nmgarza5 in #8455
- chore(fe): update human message size by @jmelahman in #8547
- chore(llm): Cleaning up _extract_tool_call_kickoffs by @justin-tahara in #8548
- feat(scim): add admin SCIM token management API by @nmgarza5 in #8538
- feat(scim): add SCIM Group CRUD endpoints by @nmgarza5 in #8456
- chore(llm): Extract _make_placement by @justin-tahara in #8552
- chore(llm): Using bool for has_reasoned by @justin-tahara in #8549
- chore(llm): Extract citation flush helper by @justin-tahara in #8554
- chore(llm): Extract _close_reasoning by @justin-tahara in #8550
- chore(llm): Cleaning up arg parsing by @justin-tahara in #8555
- chore(fe): whitelabeling header nits by @jmelahman in #8561
- fix: /llm/provider route returns all providers by @Danelegend in #8545
- chore(fe): Button handles empty string as text, use in header by @jmelahman in #8563
- chore(fe): header text content wraps when responsive by @jmelahman in #8565
- fix(ollama): Ollama Chat fixes by @justin-tahara in #8522
- fix(vertex ai): Sort Model Names by @justin-tahara in #8572
- feat(metrics): add SQLAlchemy connection pool Prometheus metrics by @nmgarza5 in #8543
- fix: init all celery tasks for autodiscovery by @wenxi-onyx in #8539
- feat(craft): shareable webapp URLs with two-tier access control by @rohoswagger in #8510
- chore(opensearch): Make the migration visit from 4 independent Vespa slices concurrently by @acaprau in #8570
- feat(opensearch): Display percentage progress in the migration page by @acaprau in #8575
- chore: Opensearch tuning by @yuhongsun96 in #8518
- fix(ui): Fix admin UI layout, sticky headers, LLM filtering, and project view issues by @Subash-Mohan in #8496
- fix: define fallback only on custom metrics by @victoriamreese in #8566
- fix: update SourceTag component to use variant prop for sizing by @Subash-Mohan in #8582
- chore(fe): remove close button from image gen tooltip by @jmelahman in #8585
- chore(fe): fix drop-down overflow in API Key modal by @jmelahman in #8574
- chore(playwright): fix chat scrolling non-determinism by @jmelahman in #8584
- feat: whitelist invite setting, allow users to register and invite, new accoount blocked page by @wenxi-onyx in #8527
- feat: add file formatting reminder by @Danelegend in #8524
- feat: Modal Header no icon by @Danelegend in #8596
- feat(ods): add --continue flag and cp alias to cherry-pick by @nmgarza5 in #8601
- fix(manage-users): exclude slack users from /users list by @wenxi-onyx in #8602
- feat: sharepoint scalability 1 by @evan-onyx in #8531
- feat: file preview from llm by @Danelegend in #8604
- feat(opal): Add Tag component and resync colors with Figma by @raunakab in #8533
- feat(web): Initial Framework for Brave Web Search 1/3 by @justin-tahara in #8594
- feat(web): Logical Hardening for Brave Web Search 2/3 by @justin-tahara in #8595
- feat(opal): Add Content layout component by @raunakab in #8534
- feat(web): FE Changes for Brave Web Search 3/3 by @justin-tahara in #8597
- fix(helm): route /openapi.json to api_server in nginx config by @nmgarza5 in #8612
- feat(opal): Add widthVariant to Interactive.Container by @raunakab in #8610
- Fix/pat UI by @raunakab in #8617
- feat: delta sync sharepoint by @evan-onyx in #8532
- chore(fe): fix whitelabel logo moving on sidebar close by @jmelahman in #8577
- chore(fe): fix nested button hydration error by @jmelahman in #8599
- feat(vertex ai): Image Gen Historical Context by @justin-tahara in #8603
- feat: sharepoint scalability3 by @evan-onyx in #8537
- feat(code interpreter): improve produced code artifacts by @Danelegend in #8507
- chore(fe): whitelabel logo layout followup by @jmelahman in #8626
- fix(fe): popover width can fit trigger element by @jmelahman in #8624
- chore(fe): rm settings page top padding by @jmelahman in #8621
- fix: boolean form field click on text, open url tool checkbox in default assistant, and simple tooltip rendering by @wenxi-onyx in #8480
- chore(devtools): upgrade
ods: 0.5.7->0.6.0 by @jmelahman in #8628 - fix: search tool enabled when nothing selected by @evan-onyx in #8637
- chore(helm): update code-interpreter chart repo URL to python-sandbox by @nmgarza5 in #8625
- feat: sharepoint scalability4 by @evan-onyx in #8551
- chore(fe): replace BlinkingDot with a BlinkingBar by @jmelahman in #8640
- feat(scim): add scim_username column to ScimUserMapping by @nmgarza5 in #8635
- chore(auth): tests cleanup by @jessicasingh7 in #8559
- chore(llm): Removal of Retired Models + Cleanup by @justin-tahara in #8645
- chore(deps): @radix-ui/react-tooltip: v1.1.3->v1.2.8 by @jmelahman in #8647
- feat: Python tool call replay packets by @Danelegend in #8649
- fix(celery): Guardrail for User File Processing by @justin-tahara in #8633
- fix(fe): keep focus on input on empty by @jmelahman in #8627
- chore: special sauce by @nmgarza5 in #8646
- feat: sharepoint scalability5 by @evan-onyx in #8631
- fix(fe): Truncated tooltip is disabled when not needed to be shown by @jmelahman in #8629
- fix: unify provider retrieval into swr hook by @wenxi-onyx in #8609
- chore(fe): fix Pinned icon hover background when card is hovered by @jmelahman in #8656
- feat(opensearch): Add OpenSearch in docker compose by @acaprau in #8611
- feat: checkpointing mid drive by @evan-onyx in #8606
- fix(search): eliminate DB pool exhaustion from SearchTool parallel queries by @nmgarza5 in #8651
- fix: improve eager loading behavior by @evan-onyx in #8576
- chore(documentation): Add comment in
contributing_guides/best_practices.mdabout accountability in TODOs by @acaprau in #8659 - feat: refreshed admin Chat Preferences page by @raunakab in #8488
- fix: limit connectors section to 3 items in Chat Preferences by @raunakab in #8661
- feat: add mixed content handler for chat and image generation packets by @Subash-Mohan in #8494
- perf(open-url): parallelize URL fetching with split connect/read timeouts by @Subash-Mohan in #8580
- fix: improve connector status display, agent search tool detection, and prompt formatting by @Subash-Mohan in #8579
- chore: set trial api usage to 0 and show ui by @wenxi-onyx in #8664
- feat: Add code interpreter server db model by @Danelegend in #8669
- refactor: migrate Web Search page to SettingsLayouts + Content by @raunakab in #8662
- fix: Handle unauthenticated state gracefully on NRF page by @rohoswagger in #8491
- fix: domain rules for signup on cloud by @wenxi-onyx in #8671
- feat(scim): Okta compatibility + provider abstraction by @nmgarza5 in #8568
- chore(ods): Automated Cherry-pick backport by @justin-tahara in #8642
- fix(db): Multitenant Schema migration update by @justin-tahara in #8679
- fix(ui): Clean up NRF settings button styling by @rohoswagger in #8678
- chore(playwright): warn user if setup takes longer than usual by @jmelahman in #8690
- fix(search): Improve Speed by @justin-tahara in #8430
- chore: preview modal by @Danelegend in #8665
- fix: remove user info requirement for craft onboarding modal by @wenxi-onyx in #8697
- fix: patch prometheus metrics in daily test fixture by @nmgarza5 in #8699
- fix(api): Improving the API handling of threads by @justin-tahara in #8573
- fix(projects): Guardrails for Project User Files by @justin-tahara in #8644
- feat(code-interpreter): Seed code interpreter server row by @Danelegend in #8701
- feat: Improve csv preview modal by @Danelegend in #8702
- chore: coerce doc metadata by @evan-onyx in #8703
- fix: preview markdown formatting by @Danelegend in #8667
- feat(chrome-extension): add tab reading to side panel by @rohoswagger in #8571
- fix(extensions): fix base url for chrome extension to by @rohoswagger in #8714
- fix(nrf): hide search toggle when search mode is unavailable by @rohoswagger in #8717
- refactor: add new
ContentActioncomponent by @raunakab in #8695 - fix(craft): delete S3 snapshot files when deleting a craft by @rohoswagger in #8718
- feat: code interpreter supports streaming by @Danelegend in #8663
- chore: version bumps for client libs by @evan-onyx in #8720
- fix(popover): prevent viewport overflow with dynamic max-height and collision padding by @Subash-Mohan in #8675
- fix(fe): inline code-blocks respect header font-size by @jmelahman in #8691
- fix(fe): rm non-admin-confirmation max-width by @jmelahman in #8693
- fix(welcome): add back agent description by @jmelahman in #8716
- chore(cherry-pick): Assign merged-by user on beta cherry-pick PR by @justin-tahara in #8723
- feat(image): support OpenAI historical image context edits by @justin-tahara in #8725
- fix: graph client env by @evan-onyx in #8727
- feat(image): support Azure historical image context edits by @justin-tahara in #8726
- chore(chat): consolidate chat message whitespacing style by @jmelahman in #8696
- feat(scim): add additional entra id fields to ScimUserMapping by @nmgarza5 in #8728
- feat(craft): make output/ files downloadable from Artifacts tab by @rohoswagger in #8721
- chore(fe): update disabled "select" button color by @jmelahman in #8733
- chore(fe): only left input items flex by @jmelahman in #8734
- fix(sanitization): Centralizing DB Filters by @justin-tahara in #8730
- chore(image): Update test to be for Dall E 3 instead of 2 by @justin-tahara in #8732
- feat: default deploy code interpreter - restart_script by @Danelegend in #8686
- feat: default deploy code interpreter - helm & bump version 0.3.0 by @Danelegend in #8685
- feat: code interpreter docker default deploy by @Danelegend in #8672
- chore(llm): Scaffolding for Nightly LLM Tests by @justin-tahara in #8704
- feat: code interpreter routes by @Danelegend in #8670
- chore(cherry-pick): Add Github Label for PRs by @justin-tahara in #8736
- fix(slack): Cleaning up URL Links by @justin-tahara in #8569
- feat: Get code interpreter config route by @Danelegend in #8739
- chore(devtools): Upgrade ods from 0.6.0 -> 0.6.1 by @justin-tahara in #8743
- chore(cherry-pick): Alerting on Failed Cherry-Picks by @justin-tahara in #8744
- updated demo data by @rohoswagger in #8748
- fix: persist onboarding dismissal in localStorage with user-specific keys by @Subash-Mohan in #8674
- fix(user invitation): failed but no warning. by @Bo-Onyx in #8731
- fix: sharepoint driveItem perm sync by @evan-onyx in #8698
- chore(fe): foldable buttons display text via tooltip when disabled by @jmelahman in #8735
- fix(fe): middle align human chat message text by @jmelahman in #8756
- chore(fe): add hover style to AgentCard by @jmelahman in #8689
- feat: python tool not added when no code interpretter server by @Danelegend in #8749
- fix(fe): modal aligning with detached element after navigation by @jmelahman in #8676
- feat(ci): Add preview modal for data types by @Danelegend in #8752
- feat: slab connector validation by @evan-onyx in #8758
- chore(devtools): Make AGENTS.md reference contributing_guides/best_practices.md by @acaprau in #8760
- fix: drive 403 rate limits by @evan-onyx in #8762
- refactor: persona id in vector db by @evan-onyx in #8680
- chore(fe): opal button implements responsiveHideText by @jmelahman in #8764
- chore(devtools):
ods webto run web/package.json scripts by @jmelahman in #8766 - refactor: persona id in vector db by indexing by @evan-onyx in #8681
- fix: Invoke generate_agents_md.py in K8s to populate knowledge sources by @rohoswagger in #8768
- refactor: extend sync mechanism to persona files by @evan-onyx in #8682
- feat(opal): add more icons by @raunakab in #8778
- chore(llm): Add OpenAI Integration Tests by @justin-tahara in #8711
- feat(scim): SCIM 2.0 protocol compliance fixes [1/3] by @nmgarza5 in #8745
- fix(slack): sanitize HTML tags and broken citation links in bot responses by @nmgarza5 in #8767
- refactor: filter by persona id during search by @evan-onyx in #8683
- chore(devtools): upgrade
ods: v0.6.1->v0.6.2 by @jmelahman in #8773 - feat(scim): field round-tripping for IdP attribute preservation [2/3] by @nmgarza5 in #8746
- feat(scim): Entra ID enterprise extension support [3/3] by @nmgarza5 in #8747
- fix: sharepoint unquote by @evan-onyx in #8786
- chore: deprecate llm provider fields by @Danelegend in #8783
- chore(opensearch): MT cloud should verify index on document index init, and do cluster setup once at start by @acaprau in #8776
- fix(timeline): Fix double-collapse and improve tool status messages by @Subash-Mohan in #8751
- fix: resolve OAuth token manager using masked secrets by @Subash-Mohan in #8673
- chore(opensearch): OpenSearchClient implements context manager, also closes on del by @acaprau in #8781
- chore(opensearch): Allow programatic schema updates by @acaprau in #8794
- fix(billing): handle manual license users without Stripe subscription by @nmgarza5 in #8787
- fix(memory): timeline UI alignment issues and highlighting issue by @Subash-Mohan in #8753
- feat(agents): share agents with labels or featured by @jmelahman in #8742
- feat(opal): add Hoverable compound component by @raunakab in #8798
- fix(docker): prefer user runtime docker socket by @jmelahman in #8799
- chore(llm): LLM Integration Tests Generic Setup by @justin-tahara in #8803
- chore(deps): bump pypdf from 6.6.2 to 6.7.3 by @dependabot[bot] in #8808
- feat: context injection unification by @evan-onyx in #8687
- chore(fe): support featured agents w/o being public by @jmelahman in #8809
- feat: sharepoint tenant avoid org get by @evan-onyx in #8802
- fix(db ssl): Remove import-time side effect of creating SSL context if IAM enabled by @acaprau in #8811
- chore(llm): Nightly Bedrock Tests by @justin-tahara in #8812
- chore(fe): add feature agent to editor page by @jmelahman in #8814
- fix(ee): show subscription text on expired access page for cloud users by @nmgarza5 in #8804
- test(scim): add integration tests for SCIM token management by @nmgarza5 in #8819
- fix: Admin page modal centering excludes sidebar by @Danelegend in #8823
- feat(metrics): add per-tenant Prometheus metrics by @nmgarza5 in #8822
- chore(llm): add Vertex AI nightly tests by @justin-tahara in #8813
- chore(llm): add Azure nightly tests by @justin-tahara in #8816
- fix(fe): Search Actions popover has consistent hover states by @jmelahman in #8826
- chore(llm): add Ollama nightly tests by @justin-tahara in #8817
- chore(llm): add OpenRouter nightly tests by @justin-tahara in #8818
- fix(metrics): restore default HTTP request counter and histogram metrics by @nmgarza5 in #8842
- docs(best practices): Add comment about import-time side effects and main.py files by @acaprau in #8820
- feat: Code interpreter admin page visuals by @Danelegend in #8729
- chore: remove instance of Assistant from frontend by @yuhongsun96 in #8848
- fix: Code output extending over thinking bounds by @Danelegend in #8837
- feat(ods): whois utility to find tenant_ids and admin emails by @wenxi-onyx in #8855
- chore(fe): InputSelect has a min-width by @jmelahman in #8858
- feat(opal): extract widthVariant to shared and add to Content by @raunakab in #8859
- chore(deps): upgrade fastapi: 0.128.0->0.133.1 by @jmelahman in #8862
- chore(whitelabeling): always show sidebar icon without logo icon by @jmelahman in #8860
- chore(deps-dev): bump rollup from 4.55.1 to 4.59.0 in /widget by @dependabot[bot] in #8863
- chore(deps): bump werkzeug from 3.1.5 to 3.1.6 by @dependabot[bot] in #8615
- feat: Add python tool as default for default persona by @Danelegend in #8857
- fix(gong): Respecting Retry Timeout Header by @justin-tahara in #8866
- chore(deps): bump rollup from 4.52.5 to 4.59.0 in /web by @dependabot[bot] in #8782
- chore(deps): bump actions/download-artifact from 4.2.1 to 7.0.0 by @dependabot[bot] in #8474
- refactor(opal): migrate LineItemLayout to Content/ContentAction by @raunakab in #8824
- fix(minio): No cURL in minio container by @justin-tahara in #8876
- refactor(Suggestions): migrate to opal Interactive + Content by @raunakab in #8881
- fix(ee): show Access Restricted page when seat limit exceeded by @nmgarza5 in #8877
- feat: LLM Provider Rework by @Danelegend in #8761
- chore: narrow no_vector_db supported scope by @evan-onyx in #8847
- fix: non vector db tasks by @evan-onyx in #8849
- test: no vector db user file processing by @evan-onyx in #8854
- chore: Persona cleanup by @yuhongsun96 in #8810
- test: file reader tool by @evan-onyx in #8856
- chore(llm): Fixing test image selection by @justin-tahara in #8902
- feat: bg tasks via fastapi by @evan-onyx in #8861
- feat: no vector db beat tasks by @evan-onyx in #8865
- refactor(opal): split
HeadingLayoutintoContentXl+ContentLgby @raunakab in #8904 - feat(desktop): option to hide alt-menu by @jmelahman in #8882
- feat: infinite chat session sidebar scroll by @wenxi-onyx in #8874
- fix(a11y): settings popover buttons prefer href by @jmelahman in #8880
- chore(gha): rm docker-compose.opensearch.yml ref by @jmelahman in #8912
- feat(slack): add Slack user deactivation and seat-aware reactivation by @nmgarza5 in #8887
- refactor(fe): rename assistant → agent identifiers by @nmgarza5 in #8869
- fix(llm): enforce persona restrictions on public LLM providers by @nmgarza5 in #8846
- fix(search): re-sync search/chat preference on user data load by @jmelahman in #8868
- chore(llm): Use AWS Secrrets Manager by @justin-tahara in #8913
- chore(ui): Update the Share Agent Modal by @justin-tahara in #8915
- test(scim): add integration tests for SCIM user CRUD by @nmgarza5 in #8825
- chore: no vector db deployment by @evan-onyx in #8867
- chore(deps): bump lxml-html-clean from 0.4.3 to 0.4.4 by @dependabot[bot] in #8919
- refactor(opal): update
ModalHeaderto useContentby @raunakab in #8885 - chore(mypy): run from repro root in CI by @jmelahman in #6995
- chore(playwright): hide actions toolbar buttons in screenshots by @jmelahman in #8914
- refactor: add abstraction for cache backend by @evan-onyx in #8870
- test(scim): add integration tests for SCIM group CRUD by @nmgarza5 in #8830
- chore(deployment): optimize layer caching by @jmelahman in #8924
- chore(icons): add
SvgCreditCardandSvgNetworkGraphto@opal/iconsby @raunakab in #8927 - chore(opensearch): Configure index settings for multitenant cloud by @acaprau in #8921
- refactor(admin): update admin-page
HealthCheckBannerby @raunakab in #8922 - fix(ui): InputComboBox search for users/groups by @justin-tahara in #8928
- chore(deps): bump pypdf from 6.7.3 to 6.7.4 by @dependabot[bot] in #8905
- fix(scim): pass Okta Runscope spec test for OIN submission by @nmgarza5 in #8925
- fix(fe): break long words in human messages by @jmelahman in #8929
- chore: Bump code interpreter to 0.3.1 by @Danelegend in #8937
- chore(deps): bump pypdf from 6.7.4 to 6.7.5 by @dependabot[bot] in #8932
- chore(fe): space between Manage All connectors button by @jmelahman in #8938
- fix: Sticky background in CSV Preview Variant by @Danelegend in #8939
- feat: embed code interpreter images in chat by @Danelegend in #8875
- chore(icons): add
SvgBookmarkto@opal/iconsby @raunakab in #8933 - chore: proxy cloud ph by @wenxi-onyx in #8961
- fix: Non-intuitive llm auth exceptions by @Danelegend in #8960
- chore(auth): ecs fargate deployment cleanup by @jessicasingh7 in #8589
- refactor(fe): define settings layout width presets as CSS variables by @raunakab in #8936
- feat: postgres cache backend by @evan-onyx in #8879
- fix(scim): only list SCIM-managed users and link pre-existing users by @nmgarza5 in #8959
- fix: Update frontend route calls to use new endpoints by @Danelegend in #8968
- fix: Block deleting default provider by @Danelegend in #8962
- feat: use new cache backend where appropriate by @evan-onyx in #8889
- refactor(fe): migrate admin pages from AdminPageTitle to SettingsLayouts by @raunakab in #8930
- fix: sandbox rollback db on pod deletion failure by @wenxi-onyx in #8965
- fix: Tokeniser does not rely on llm by @Danelegend in #8967
- fix: Default code interpreter base url by @Danelegend in #8969
- chore: Add greptile.json configuration file by @justin-tahara in #8978
- fix(ollama): debounce API url input and properly handle model fetch request with abort signal by @wenxi-onyx in #8986
- refactor(fe): migrate onboarding components to Content/ContentAction by @raunakab in #8983
- fix(ci): Add secrets inheritance to nightly LLM provider chat workflow by @justin-tahara in #8984
- chore(devtools):
npm run test:diffon changed files by @jmelahman in #8991 - chore: remove dead code from admin theming by @wenxi-onyx in #8979
- chore: remove dead code from expandable content component by @wenxi-onyx in #8981
- fix: google connectors redirect to connector page instead of auth error by @wenxi-onyx in #8989
- feat: Code Interpreter responsive in actions dropdown by @Danelegend in #8982
- chore: use abort controller to properly manage oauth requests by @wenxi-onyx in #8994
- fix(permissions): Add file connector access control for global curators by @justin-tahara in #8990
- fix(opensearch): Increase the Vespa http client timeout to 120s for the OpenSearch migration by @acaprau in #8966
- chore: [Running GitHub actions for #8972] by @Bo-Onyx in #8996
- feat: Add illustrations to
opalby @raunakab in #8993 - chore: port Greptile custom context rules to greptile.json by @nmgarza5 in #9003
- fix(a11y): prevent show password button losing focus on tab by @jmelahman in #9000
- chore: deploying onyx lite by @evan-onyx in #9004
- chore(ui): Rename from LLM Models to Language Models by @justin-tahara in #9007
- feat: Support intermediate code interpreter file generation by @Danelegend in #9006
- refactor: add OnyxErrorCode enum and migrate billing/license routers by @nmgarza5 in #8975
- fix: Markdown does not show all texts by @Danelegend in #9009
- feat: Align action tool tips by @Danelegend in #8997
- feat: Add IllustrationContent layout component to opal by @raunakab in #9011
- refactor(fe): move onboarding to
web/src/sectionsby @raunakab in #8985 - feat(opal): add sidebar variant to Interactive + refactor SidebarTab by @raunakab in #9016
- fix: Use
IllustrationContentfor empty search results by @raunakab in #9013 - fix(fe): dont align center modals on small screens by @jmelahman in #8988
- chore: remove lightweight mode by @evan-onyx in #9014
- chore(devtools):
--debugmode for desktop by @jmelahman in #9027 - chore(fe): "Share Chat"->"Share" by @jmelahman in #9022
- feat(slack): convert markdown tables to Slack-friendly format by @nmgarza5 in #8999
- feat: add SCIM token management page by @nmgarza5 in #9001
- fix: stop calling unsupported endpoints no vectordb by @evan-onyx in #9012
- chore(deps): bump hono from 4.11.7 to 4.12.5 in /backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web by @dependabot[bot] in #9044
- feat(table): add table primitive components and styles by @Subash-Mohan in #9017
- chore(deps): bump nltk from 3.9.1 to 3.9.3 by @dependabot[bot] in #9045
- fix(ui): Persist agent sharing changes immediately for existing agents by @justin-tahara in #9024
- fix: Code Interpreter Client session clean up by @Danelegend in #9028
- refactor: migrate LLM & embedding management to OnyxError by @nmgarza5 in #9025
- chore(fe): opal button migration by @Bo-Onyx in #8864
- feat(table): add useColumnWidths, useDataTable, and useDraggableRows hooks by @Subash-Mohan in #9018
- fix(llm): Final LLM Cleanup for Nightly Tests by @justin-tahara in #9055
- fix: doc to hierarchynode connection in pruning by @evan-onyx in #9046
- feat(document index): Re-enable search settings swap by @acaprau in #9005
- feat(table): add ColumnVisibilityPopover, Footer, Pagination, and SortingPopover components by @Subash-Mohan in #9019
- fix: Correct file_id for docs by @Danelegend in #9058
- chore(opensearch): Fix and consolidate the dev script used to start OpenSearch locally by @acaprau in #9036
- fix(ui): Improve text truncation and overflow handling in FileCard layout by @justin-tahara in #9061
- refactor: consolidate AppInputBar search/chat rendering with animated transitions by @raunakab in https://github.com/onyx-dot-app/onyx/pull/9054
- chore(fe): rm unreachable code by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9069
- fix: EE route gating for upgrading CE users by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/9026
- feat(table): add DataTable config-driven wrapper component by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/9020
- fix(fe): properly wrap copy and edit buttons on mobile by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9073
- chore(playwright): screenshot tests for user settings pages by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9078
- fix(fe): disable projects modal button unless project is named by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9093
- fix(llm): Handle Bedrock tool content in message history without toolConfig by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/9063
- chore(devtools):
ods desktopby @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9100 - chore(devtools): upgrade
odsto go 1.26 by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9103 - chore(devtools): pull release branch and support PR # args by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9102
- chore(devtools): upgrade
ods: 0.6.2->0.6.3 by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9105 - fix(chrome-extension): open login in new tab when session expires by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/9091
- chore: upgrade golangci-lint to v2.10.1 for Go 1.26 support by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/9107
- fix(fe): show modal body on Safari/desktop by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9035
- chore(deps): bump authlib from 1.6.6 to 1.6.7 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/9049
- chore(deps): bump dompurify from 3.3.1 to 3.3.2 in /widget by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/9106
- chore(deps): bump aws-actions/configure-aws-credentials from 5.1.1 to 6.0.0 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8478
- chore(deps): bump helm/kind-action from 1.13.0 to 1.14.0 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8917
- chore(deps): bump @hono/node-server from 1.19.9 to 1.19.10 in /backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/9048
- chore(deps): bump j178/prek-action from 1.0.12 to 1.1.1 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8477
- chore(deps): bump minimatch in /backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8828
- chore(deps): bump ajv in /backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8655
- chore(deps): bump google-cloud-aiplatform from 1.121.0 to 1.133.0 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8658
- fix(safari): chat background blur ignores text by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9111
- chore: OnyxError cleanup by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/9071
- chore: bump recommended models by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/9112
- chore(playwright): tighten how elements are hidden by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9117
- chore(tests): run golang tests in CI by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9118
- chore(deps): bump minimatch in /examples/widget by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8886
- chore(deps): bump qs from 6.14.1 to 6.14.2 in /backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8390
- chore: Add docx preview depend by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/9059
- feat: lm studio provider by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8253
- chore(devtools): AGENTS.md warns against enqueueing tasks without an expiration by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8654
- chore(documentation): Add comment in
contributing_guides/best_practices.mdabout async by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8759 - chore(opensearch): Debug util script by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8815
- chore(deps): rm
google-cloud-aiplatformby @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9114 - fix(dr-opti): Fix snippet matcher for special characters by @Bo-Onyx in https://github.com/onyx-dot-app/onyx/pull/9123
- chore(dr-tune): Move postgres sanitization and use it for DR output save by @Bo-Onyx in https://github.com/onyx-dot-app/onyx/pull/9113
- chore(deps): bump serialize-javascript and terser-webpack-plugin in /web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/9125
- fix(ci): Cleaning up Release Tags by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8172
- fix: Sync does not update default model by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/9129
- fix(fe): make BlinkingBar smaller by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9132
- feat: Onyx CLI by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/8958
- feat(table): add server-side pagination, search filtering, view mode, and DragOverlay improvements by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/9085
- fix(tools): clean up orphaned OAuthConfig and preserve settings on OpenAPI tool update by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/9086
- feat: Docx preview variant by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/9060
- refactor: split
InteractiveintoStateless/Stateful, addSelectButton, kebab-case dirs by @raunakab in https://github.com/onyx-dot-app/onyx/pull/9134 - refactor: add
Disabledprimitive to@opal/coreby @raunakab in https://github.com/onyx-dot-app/onyx/pull/9136 - chore(deps): bump golang.org/x/net from 0.27.0 to 0.38.0 in /cli by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/9133
- chore(zizmor): fix issues by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9139
- chore(fe): rm redundant
alignBubbleby @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9072 - chore(deps): upgrade desktop deps by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9140
- chore(deps): bump express-rate-limit from 8.2.1 to 8.3.0 in /backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/9143
- chore(deps): bump @tootallnate/once and jest-environment-jsdom in /web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/9050
- chore(playwright): hide flaky AppInputBar/llm-popover-trigger by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9144
- feat(cli): add PyPI wheel packaging for onyx-cli by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/8992
- fix(ui): LLM Model selection Cache 1/2 by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/9141
- chore: rm dead llm provider code and bump claude recs by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/9145
- fix(fe): add horizontal padding to chat page by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9147
- fix(ci): release workflow and ods build file improvements by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/9149
- feat(cli): add PyPI and release workflow badges to README by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/9148
- fix: vespa filter restrictions by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/9138
- fix(fe): account for wrapper padding in textarea auto-resize by @raunakab in https://github.com/onyx-dot-app/onyx/pull/9151
- docs(cli): improve onyx-cli SKILL.md and fix README default server URL by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/9152
- chore(zizmor): fix rust-toolchain commit by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9153
- chore(projects): Turn off DR in Projects by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/9150
- fix(fe): fix API Key Role dropdown options by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9154
- fix(a11y): InputSelect supports keyboard navigation by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9160
- feat: jsonriver implementation w/ delta by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/9161
- chore(tests): add shared enable_ee fixture and test README by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/9165
- feat(cli): package as docker image by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/9167
- fix(fe): move app padding inside overflow container (#9206) to release v3.0 by @github-actions[bot] in https://github.com/onyx-dot-app/onyx/pull/9207
- feat(opensearch): Enable by default (#9211) to release v3.0 by @github-actions[bot] in https://github.com/onyx-dot-app/onyx/pull/9217
Full Changelog: v2.12.6...v3.0.0