v2.12.0
onyx-dot-app/onyxv2.12.0Feb 20, 2026by github-actions[bot]
AI Summary
Major release featuring Onyx Craft (new AI coding environment), comprehensive file system hierarchy nodes for Jira, Slack, SharePoint, Confluence, and improved OpenSearch migration. Includes JWT-based authentication, Postgres file store, Brave Web Search integration, and full billing system with license enforcement.
Key Highlights
- Onyx Craft - new AI coding environment with sandboxed execution
- File system hierarchy nodes for Jira, Slack, SharePoint, Confluence, Notion, and Google Drive
- OpenSearch migration system with bulk indexing support
- Complete billing system with license enforcement, seat limits, and unified billing API
- JWT-based authentication and postgres file store
Breaking Changes
- Route renamed from /chat to /app
- Build/v1 API refactored to craft/v1
New Features
- Onyx Craft with sandboxed execution and session management
- File system hierarchy nodes with permission info
- OpenSearch dual indices with migration tasks
- JWT-based authentication
- Postgres file store
- Brave Web Search integration
- Chat history search and message summarization
- New agent timeline blocks
- Desktop app with light/dark toggle and proper Mac signing
- License enforcement middleware enabled by default
Full Release Notes
See the assets to download this version and install. ## What's Changed * fix: user count check by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7811 * feat(ee): add license public key file and improve signature verification by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/7806 * feat(opensearch): Add separate index settings for AWS-managed OpenSearch; Add function for disabling index auto-creation by @acaprau in https://github.com/onyx-dot-app/onyx/pull/7814 * feat: Onyx Craft by @Weves in https://github.com/onyx-dot-app/onyx/pull/7484 * fix: type ignore unrelated mypy for onyx craft head by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7843 * fix: processing mode enum by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7849 * feat(ee): add proxy endpoints for self-hosted billing operations by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/7819 * fix: Project Creation by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/7851 * feat(chat): Search over chats and projects by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/7788 * fix(craft): only insert onyx user context when demo data not enabled by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7841 * fix: pass in correct region to allow IRSA usage by @Weves in https://github.com/onyx-dot-app/onyx/pull/7865 * fix(helm): Updating Ingress Templates by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/7864 * feat(ee): enforce seat limits on user operations by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/7504 * fix: remove posthog debug logs and adjust gitignore by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7868 * fix: connector details back button should nav back by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7869 * chore: specify sandbox version by @Weves in https://github.com/onyx-dot-app/onyx/pull/7870 * feat(ee): update api to claim license via cloud proxy by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/7840 * chore(pr): Add Cherry-pick check by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/7805 * fix(llm): Hide private models from Agent Creation by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/7873 * fix(craft): only include org_info/ when demo data enabled by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7845 * fix(redis): Adding more TTLs by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/7886 * fix(citations): enable citation sidebar w/ web_search-only assistants by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7888 * feat(craft): better output formats by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7889 * feat: md rendering, docx conversion and download, output panel refresh refactor for all artifacts by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7892 * fix: sidebar items are title case by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7893 * chore: remove pyproject config for pypandoc mypy by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7894 * fix: demo data toggle race condition by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7902 * chore(mypy): fix mypy cache issues switching between HEAD and release by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7732 * fix: db connection closed for craft by @Weves in https://github.com/onyx-dot-app/onyx/pull/7905 * feat(filesys): data models and migration by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7402 * feat(ee): Add unified billing API by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/7857 * fix(craft): delete session ui by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7847 * feat(ee): improve license enforcement middleware by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/7853 * fix: improve session recovery by @Weves in https://github.com/onyx-dot-app/onyx/pull/7912 * feat: md preview scrollbar by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7909 * chore(tracing): Adding more explicit Tracing to our callsites by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/7911 * feat(craft): update github action for craft latest by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7910 * feat(filesys): Connectors know about hierarchynodes by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7404 * fix(craft): allow initializing non-visible models by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7915 * feat: craft ui improvements by @Weves in https://github.com/onyx-dot-app/onyx/pull/7916 * fix(craft): files directory works locally + kube by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7913 * fix(craft): new demo data & change of eng IC demo persona by @joachim-danswer in https://github.com/onyx-dot-app/onyx/pull/7917 * feat(filesys): connect hierarchynode and assistant by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7428 * chore: kg stuff in celery by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/7908 * chore: README by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/7919 * feat(filesys): opensearch integration with hierarchy by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7429 * fix(craft): block opencode.json read by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7846 * refactor: packet type processing and path sanitization by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7920 * fix(craft): allow more lenient tag names (for versioning) by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7921 * refactor: build/v1 to craft/v1 by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7924 * feat(filesys): implement hierarchy injection into vector db chunks by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7548 * fix(craft): install script for craft-latest image by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7918 * feat(craft): allow closing LLM setup modal by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7925 * feat(filesys): creation of hierarchyfetching job by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7555 * fix: z index for output panel by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7926 * fix: kubernetes freezing by @Weves in https://github.com/onyx-dot-app/onyx/pull/7928 * fix: attachment prompt tweak by @Weves in https://github.com/onyx-dot-app/onyx/pull/7929 * feat(filesys): hierarchyfetching task impl by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7557 * feat(filesys): drive hierarchynodes by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7560 * feat(filesys): hierarchynodes carry permission info by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7669 * fix: Cloud Embedding Keys by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/7944 * chore(api): Cleanup by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/7945 * chore(devtools): `ods cherry-pick` QOL by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7708 * fix(craft): install script for craft will force pull latest image for any craft-* image tags by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7950 * refactor: New `sections/cards` directory to host all feature-specific cards. by @raunakab in https://github.com/onyx-dot-app/onyx/pull/7949 * fix: exceptions trace modal by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7951 * chore(devtools): upgrade `ods`: v0.4.0->v0.4.1 by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7952 * feat(craft): onyx craft upsell upgrade modal when you run out of free messages by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7943 * fix(craft): hide session limit by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7947 * refactor: rename `/chat` route to `/app` by @raunakab in https://github.com/onyx-dot-app/onyx/pull/7711 * chore(hygiene): remove linux kernel by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7953 * chore(deps): bump next from 16.0.10 to 16.1.5 in /web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/7882 * chore(deps): bump next from 16.1.4 to 16.1.5 in /backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/7887 * chore(deps): bump hono from 4.11.5 to 4.11.7 in /backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/7880 * chore(craft): more craft logging by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7954 * chore(deps): bump pypdf from 6.6.0 to 6.6.2 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/7834 * chore(deps): bump next from 16.1.2 to 16.1.5 in /examples/widget by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/7885 * chore(deps): bump j178/prek-action from 1.0.11 to 1.0.12 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/7529 * chore(deps): add pytest-repeat to dev by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7956 * chore(braintrust): Removing indexing_pipeline logs by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/7957 * chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/7802 * chore(deps): bump astral-sh/setup-uv from 7.1.5 to 7.2.0 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/7528 * chore(deps): bump esbuild and vite in /widget by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/7543 * chore(deps): bump lodash from 4.17.21 to 4.17.23 in /web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/7670 * chore(deps): Bump mistune from 0.8.4 to 3.1.4 in /backend by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/6407 * chore(deps): bump lodash-es from 4.17.21 to 4.17.23 in /web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/7652 * refactor(craft): fix pre-provisioning state management, fix demo data state management by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7955 * refactor: craft onboarding nit and connector docs by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7960 * fix: local indexing for craft by @Weves in https://github.com/onyx-dot-app/onyx/pull/7959 * refactor: Make `AgentCard` use `LineItemLayout` for its information instead by @raunakab in https://github.com/onyx-dot-app/onyx/pull/7958 * fix: improve termination by @Weves in https://github.com/onyx-dot-app/onyx/pull/7964 * fix(craft): auto set best model instead of checking for visibility by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7962 * feat(ee): fe - add billing hooks and actions by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/7858 * chore: Remove Reranking by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/7946 * fix(craft): PROMPT IMPROVEMENTS by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7961 * fix(craft): RESTORING WORKS by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7966 * fix: Edit styling by @raunakab in https://github.com/onyx-dot-app/onyx/pull/7968 * fix: llm provider upserts by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7969 * feat(craft): README by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7970 * refactor: Edit `SimpleCollapsible` API and update stylings for `Modal` by @raunakab in https://github.com/onyx-dot-app/onyx/pull/7971 * feat(craft): make last name optional in user info form by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7973 * test(filesys): drive hierarchynodes by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7676 * fix: don't show intro anim with new tenant modal + usage by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7976 * fix: input masking by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/7977 * refactor: Consolidate `Label` component by @raunakab in https://github.com/onyx-dot-app/onyx/pull/7974 * chore(tests): add retries to azure embeddings daily test by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7978 * feat(auth): update default auth by @jessicasingh7 in https://github.com/onyx-dot-app/onyx/pull/7443 * feat: enable optional host setting by @victoriamreese in https://github.com/onyx-dot-app/onyx/pull/7979 * chore(fe): update baseline-browser-mapping by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7986 * fix: custom config by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7987 * fix(helm): Fixing PSQL Operator Labeling by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/7985 * refactor: Add expandable card layouts with smooth animations by @raunakab in https://github.com/onyx-dot-app/onyx/pull/7981 * chore(deps): bump starlette from 0.47.2 to 0.49.3 in /backend/requirements by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/5964 * chore(deps): Bump @sentry/nextjs from 10.23.0 to 10.27.0 in /web by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7990 * chore(flags): rm unused NEXT_PUBLIC_ENABLE_CHROME_EXTENSION by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7983 * chore(flags): remove unused NEXT_PUBLIC_DEFAULT_SIDEBAR_OPEN by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7984 * chore(deps): Bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /web by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7991 * fix(ce): documents sidebar spawns by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7994 * feat: Add new `star` icon + rename icon file with invalid naming by @raunakab in https://github.com/onyx-dot-app/onyx/pull/7992 * refactor: Small tweaks to a few components by @raunakab in https://github.com/onyx-dot-app/onyx/pull/7995 * endpoint clean by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7998 * hygiene(opensearch): Some cleanup by @acaprau in https://github.com/onyx-dot-app/onyx/pull/7999 * refactor: Add a `HoverableContainer` by @raunakab in https://github.com/onyx-dot-app/onyx/pull/7997 * fix(vertex): standardise vertex image config by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/7988 * chore(devserver): fix invalid customTheme require by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8001 * feat: Add `bottomSlot` to modal API by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8000 * feat(filesys): APIs for attaching hiernodes by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7698 * feat(filesys): filter on assistant info by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7852 * fix(llm): existing custom config not used by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/8002 * refactor: Update hoverable by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8007 * feat(filesys): UI for selecting hierarchy in assistant creation part 1 by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7721 * refactor: Update layout components and SettingsPage by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8008 * feat(filesys): working filesys explorer by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7760 * chore: launch.json web server uses .env.web by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/7993 * chore: dev env template defaults by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8015 * fix: race conditions in drive hiernodes by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8017 * feat: notion connector hierarchynodes by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7931 * fix: onboarding model specification by @Weves in https://github.com/onyx-dot-app/onyx/pull/8019 * feat(persona): Add default_model_configuration_id column by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/8020 * fix: Add explicit sizings to icons by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8018 * fix(asana): Workspace Team ID mismatch by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/7674 * fix(desktop): Remove Global Shortcuts by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/7914 * fix(craft): clear env vars from all sandboxes in file_sync pods by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/8028 * refactor: craft onboarding ease by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8030 * feat: Add new tag icon by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8029 * chore(gha): build desktop app in CI by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/7996 * fix(ui): Updating Dropdown Modal component by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8033 * fix: discord connector tests by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8036 * fix(ee): use set(ex=) instead of setex() for license cache updates by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8004 * fix(craft): files stuff by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/8037 * fix(fe): polish chat UI with custom background by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8016 * fix: troll discord assertion by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8038 * feat(components): add InputNumber with increment/decrement controls by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8003 * fix(craft): idle sandbox cleanup by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/8041 * refactor(chat): move loading indicator to content area by @trial2onyx in https://github.com/onyx-dot-app/onyx/pull/8039 * fix: optional dependency for /me by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8042 * fix: Consolidate providers into one central location by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8032 * chore: remove license cache invalidation from multi-tenant by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8052 * refactor: Consolidate duplicated AppHeader components into one by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8054 * feat(billing): add circuit breaker, license re-claim, and seats to checkout by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8005 * chore(craft): bump sandbox image default value by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8055 * refactor(craft): make usage limit overrides feature flags instead of env vars by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8056 * chore: Some settings for DR for evals by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8058 * fix(chat): reduce scroll container bottom margin by @trial2onyx in https://github.com/onyx-dot-app/onyx/pull/8048 * fix: attaching user files to assistant by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8061 * chore: ban chat-tempmail by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8063 * feat(filesys): initial confluence hierarchy impl by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/7932 * feat(opensearch): Migration 0 - Introduce db tables, alembic migration, db model utils by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8013 * chore(tests): Fix name for `test_expire_oauth_token`, loosen timing bounds a bit by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8067 * refactor: Clean up app page rendering logic by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8060 * chore: DR edge case by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8074 * feat(opensearch): Migration 1 - Introduce and implement migration tasks by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8014 * chore: hopefully help LLM not spam web queries by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8075 * chore: Tune web search by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8078 * chore: OpenURL sometimes gives too many tokens by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8079 * chore: DR tool tuning by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8080 * chore: ensure ascii false by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8081 * chore: ASCII in docs by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8082 * chore: remove long term log by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8084 * chore: Web query sanitize by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8085 * refactor: Update `InputSelect` implementation by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8076 * refactor: Update `Hoverable` to be more adherent to the mocks by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8083 * fix(craft): attempt to solve hanging with explicit k8s_stream timeout by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8066 * feat(desktop): Ensure that UI reflects Light/Dark Toggle by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/7684 * refactor: hooks by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8089 * fix(ui): Ollama Model Selection by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8091 * fix(ui): Cleanup Card Span by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8094 * fix(ui): Agent Saving with other people files by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8095 * chore: DR to run more than 1 cycle typically by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8100 * chore(provider): add more integration tests for provider flow by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/8099 * feat(chat): new agent timeline blocks by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/8101 * chore(opensearch): Migration 2- Introduce external dependency tests by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8045 * refactor: More app header cleanups by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8097 * fix: resolve pod label duplication by @victoriamreese in https://github.com/onyx-dot-app/onyx/pull/8098 * chore(no-auth): Clean up Playwright by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8109 * fix(craft): fix default dockerfile outputs_template_path and venv_template_path by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/8102 * feat(helm): Add Probes for All by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8112 * fix(ui): Search Connectors by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8116 * feat(provider): create flow mapping table by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/8025 * fix: perm sync group prefixing by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8077 * feat(filesys): selected info improvements by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8117 * chore: LiteLLM bump version by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8114 * fix(craft): phantom pre-provisionsed sandboxes and poll for fresh session on welcome page by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8124 * feat(ee): fe - add new billing page structure with PlansView by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8068 * fix(ui): Model Selection in Place by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8128 * feat(ee): fe - add CheckoutView component (2/5) by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8069 * feat(ui): Selecting all Models toggle by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8125 * feat(ee): fe - add BillingDetailsView component (3/5) by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8070 * fix: LiteLLM in threading context by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8103 * feat(ee): fe - update billing hooks and services (4/5) by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8071 * fix(craft): CREEPA? AW MAN by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/8115 * feat: LLM history now allows parallel tool call for a single message by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8131 * feat(ee): fe - enable new billing UI (5/5) by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8072 * feat(timeline): QA fixes aroung renderers by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/8132 * feat(chat history): summarize older messages by @jessicasingh7 in https://github.com/onyx-dot-app/onyx/pull/7810 * feat(ee): updating billing api by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8073 * chore(opensearch): Some small cleanup around update by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8119 * feat(opensearch): String filtering by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8110 * fix(craft): wrong usage limit string by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8136 * feat(opensearch): Add tenant ID to the document chunk ID by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8129 * fix: DR time based wrap ups by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8141 * fix(auth): redirect to login page after email verification by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8137 * fix(craft): pod restoration race, recovery from unexpected state, and updating heartbeat on session creation by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8140 * feat: Track reasoning in Braintrust by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8143 * chore: Remove auth log by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8145 * fix: Back off to basic auth by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8146 * feat(opensearch): Implement admin and random retrieval; fully deprecate update in the old interface; relax update restrictions by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8142 * chore(document index): Remove offset by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8148 * fix: Give more helpful message to LLM on bad tool calls by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8150 * fix(ChatSearchCommandMenu): improve keyboard navigation and search UX by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/8134 * feat(filesys): jira hierarchy v1 by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8113 * feat(filesys): slack connector by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8118 * feat(filesys): sharepoint v1 by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8130 * fix(timeline): consolidate header components and visual fixes by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/8133 * chore: firecrawl v2 by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8155 * test(timeline): add unit tests for packet processor by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/8135 * fix(ci): Fix Bedrock Test by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8161 * feat(filesys): sorting attached knowledge by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8156 * fix(craft): bump aws sync concurrent requests 10-->200 by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8163 * chore(chat compress): create readme by @jessicasingh7 in https://github.com/onyx-dot-app/onyx/pull/8165 * fix(ci): Notification workflow for Slack by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8167 * fix: Fix expansion error inside of `TextView` by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8151 * fix(ci): Allow for flexible beta tag by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8171 * fix(ui): Additional LLM Config update by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8174 * fix(db): add cascade delete to search_query user_id foreign key by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8176 * fix: Anthropic DR requires setting reasoning limit if we want to set output limit by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8168 * chore: Sanitize LLM tool call args by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8177 * chore: DR description for GA by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8178 * feat(filesys): disabled sections by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8153 * fix(salesforce): cleanup logic by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8175 * chore: Slight tweaks of DR by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8179 * chore: DR Prompt Tuning by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8180 * feat(CommandMenu): add comprehensive tests by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/8159 * fix(openai): Fix reasoning by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8183 * feat(opal): extract Hoverable into Interactive atom by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8173 * chore(devtools): `ods compose` to start containers by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8185 * refactor(craft): chad s5cmd > chud aws cli (mem overhead + speed) by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8170 * fix(craft): file upload by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/8149 * fix: don't run craft setup script unless it exists by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8191 * chore: bump default usage limits by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8188 * chore(devtools): upgrade `ods`: 0.4.1->0.5.0 by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8190 * chore(ruff): move config up a level by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8192 * fix(ci): Model Check update by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8196 * chore(openai): Add Reasoning Specific Test by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8195 * feat: recommend opus 4-6 by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8198 * fix(agents): Removing Label Dependency by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8189 * fix: LLM Read Timeout by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8193 * chore(chat): Cleaning Error Codes + Tests by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8186 * chore(devtools): CLAUDE.md.template -> AGENTS.md by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8197 * fix: mt provisioning rollback and add tests by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8205 * chore(ruff): enable flake8s unused arg rules by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8206 * chore: bump sandbox cpu and memory limits by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8208 * feat(opal): expand InteractiveBase variant system by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8200 * fix: GPT -chat models by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8210 * fix(openai): Set Auto Reasoning effort to Medium by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8211 * chore(openai): Add test for Chat Models by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8213 * feat(opensearch): Support bulk indexing by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8203 * feat: support PEM-style delimiters in license file uploads by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/7559 * feat(ee): block Slack bot for suspended tenants and enforce seat limits by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8202 * feat: basic langfuse tracing + tracing consolidation by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8207 * chore(opensearch): Add timing and debug logging in the OpenSearch client; also expand `log_function_time` by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8209 * fix: LiteLLM for OpenAI compatible models not using Responses route by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8215 * fix(ui): Inconsistent LLM Provider Logo by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8220 * fix(db): null out document set and persona ownership on user deletion by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8219 * fix(craft): upload to s3 before marking docs as indexed in db by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8216 * chore(migrations): database migration runner by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8217 * fix(llm): LLM override can fail if admin by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/8204 * fix: make it more clear how to add channels to fed slack config form by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8227 * fix(settings): default ee_features_enabled to False by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8237 * fix(opensearch): Allow update to skip if a doc chunk is not found in OpenSearch, or if chunk count is not known by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8236 * fix: metadata hardening by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8201 * chore(opensearch): Make indexing use the client's new bulk index API by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8238 * fix: column overlap typing by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8247 * fix(web search): strictly typed provider config by @jessicasingh7 in https://github.com/onyx-dot-app/onyx/pull/8022 * chore(provider config): llm provider config prefers LLMModelFlow by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/8064 * chore(auth): anon fix by @jessicasingh7 in https://github.com/onyx-dot-app/onyx/pull/8222 * refactor(chat): agent timeline layout and spacing changes by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/8226 * chore(opensearch): Improve ordering of migration records that we query by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8248 * fix: Deep Research Agent Cycle Count by @yuhongsun96 in https://github.com/onyx-dot-app/onyx/pull/8254 * feat: jwt-based auth by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8244 * fix(profiling): `log_function_time` should use `time.monotonic` not `time.time` by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8258 * feat: postgres file store by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8246 * refactor(opal): interactive base variant types + foreground color system by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8255 * fix(opensearch): Tighten up task timing by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8256 * chore(chat frontend): Round up in `formatDurationSeconds` so we don't see "Thought for 0s" by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8259 * chore(llm): Introduce Scaffolding for Integration Tests by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8251 * fix(login): window undefined on login by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8266 * fix(craft): snapshot restore by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/8194 * fix(chrome extension): Simplify NRFPage ChatInputBar layout to use normal flex flow by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/8267 * chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8123 * chore(deps): bump actions/upload-artifact from 4.6.2 to 6.0.0 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8121 * chore(deps): bump time from 0.3.44 to 0.3.47 in /desktop/src-tauri by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8187 * chore(deps): bump webpack from 5.102.1 to 5.105.0 in /web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8199 * chore(deps): bump bytes from 1.11.0 to 1.11.1 in /desktop/src-tauri by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8138 * chore(deps): bump actions/setup-node from 4.4.0 to 6.2.0 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8122 * chore: disable hiernodes when opensearch not available by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8271 * chore(deps): bump python-multipart from 0.0.21 to 0.0.22 in /backend/requirements by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/7831 * chore(deps): bump protobuf from 6.33.4 to 6.33.5 in /backend/requirements by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8182 * chore(deps): bump actions/setup-python from 6.1.0 to 6.2.0 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8274 * chore(deps): bump actions/cache from 4.3.0 to 5.0.3 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8273 * chore(deps): bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 in /backend/onyx/server/features/build/sandbox/kubernetes/docker/templates/outputs/web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8139 * chore(deps): bump @modelcontextprotocol/sdk from 1.25.3 to 1.26.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/8166 * chore(deps): bump docker/login-action from 3.6.0 to 3.7.0 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8275 * chore(deps-dev): bump faker from 37.1.0 to 40.1.2 in /backend by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8126 * refactor(opal): add new `Button` component built on `Interactive.Base` by @raunakab in https://github.com/onyx-dot-app/onyx/pull/8263 * chore(deps-dev): bump pytest-xdist from 3.6.1 to 3.8.0 in /backend by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/8120 * chore(opensearch): Try to create `OpenSearchTenantMigrationRecord` earlier in `check_for_documents_for_opensearch_migration_task` by @acaprau in https://github.com/onyx-dot-app/onyx/pull/8260 * chore(devtools): `ods logs`, `ods pull`, `ods compose --force-recreate` by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8277 * fix(posthog): Chat metrics for Cloud by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8278 * chore(devtools): upgrade ods: 0.5.0->0.5.1 by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8279 * feat(ee): Enable license enforcement by default (#8270) to release v2.12 by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8292 * fix: model config not populating flow during sync (#8542) to release v2.12 by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/8567 * chore(hotfix): cherry-pick 9 commits to release v2.12 by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/8598 * chore(hotfix): cherry-pick 6 commits to release v2.12 by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/8600 * fix(bedrock): Fixing toolConfig call (#8342) to release v2.12 by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8607 * fix(desktop): Link clicking within App (#8493) to release v2.12 by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8608 * chore(gha): rm nightly license scan workflow (#8541) to release v2.12 by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8619 * fix(timeline): reduce agent message re-renders with referential stability in usePacedTurnGroups by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/8618 * fix(chatpage): Improve agent message layout, sidebar nesting, and icon fixes by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/8616 * fix(ui): fix few common ui bugs (#8425) by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/8623 * fix: update SourceTag component to use variant prop for sizing (#8582) to release v2.12 by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/8622 * fix: /llm/provider route returns all providers (#8545) to release v2.12 by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/8634 * feat(web): Initial Framework for Brave Web Search 1/3 (#8594) by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8636 * feat(web): Logical Hardening for Brave Web Search 2/3 #8595 by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8638 * fix: search tool enabled when nothing selected to release v2.12 by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/8639 * feat(web): FE Changes for Brave Web Search 3/3 (#8597) by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8641 * chore(hotfix): cherry-pick 2 commits to release v2.12 by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8650 * chore(fe): fix drop-down overflow in API Key modal (#8574) to release v2.12 by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/8652 * chore(release): Fixing Release Branch by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/8653 **Full Changelog**: https://github.com/onyx-dot-app/onyx/compare/v2.11.0...v2.12.0