github onyx-dot-app/onyx v4.6.0-beta.0

latest release: edge
pre-release4 hours ago

Warning

Do not upgrade to this release if you want to preserve your existing indexed documents but have not yet run the document index migration, which can be done from any version v3.x. See additional documentation here.

See the assets to download this version and install.

What's Changed

  • chore(deps-dev): bump tailwindcss from 4.3.0 to 4.3.3 in /backend/onyx/server/features/build/sandbox/image/templates/outputs/web by @dependabot[bot] in #13464
  • chore(deps): bump setuptools from 80.9.0 to 83.0.0 in /backend/requirements by @dependabot[bot] in #13270
  • chore(deployment): generate docker compose variants from a shared template by @jmelahman in #13487
  • fix(craft): expose gateway model capabilities by @wenxi-onyx in #13502
  • fix(connectors): keep Google Drive checkpoint frontier monotonic across shortcut resolution by @justin-tahara in #13501
  • chore(config): remove the unused ENVIRONMENT env var by @jmelahman in #13504
  • fix(craft): resolve aliased model token limits by @wenxi-onyx in #13505
  • feat(cli): attach release binaries to a GitHub release by @jmelahman in #13506
  • fix(auth): treat the backend login redirect as SSO callback success by @nmgarza5 in #13509
  • chore(devcontainer): install the go toolchain by @jmelahman in #13513
  • chore(cli): clean up release build atomicity and govulncheck flags by @jmelahman in #13512
  • feat(db): tenant -> database routing seam for multi-shard multitenancy by @justin-tahara in #13368
  • chore(deps): clear 30 dependency security findings by @jmelahman in #13503
  • fix(craft): render and send image attachments by @wenxi-onyx in #13514
  • feat(cli): replace glamour with a lightweight internal markdown renderer by @jmelahman in #13516
  • chore: centralize common trace metadata by @evan-onyx in #13515
  • feat(ods): sync onyx-cli's embedded deployment files via generate-compose by @jmelahman in #13524
  • fix(storybook): disable Vite publicDir copy to avoid EEXIST on deploy by @claude[bot] in #13525
  • fix(slack): resolve workspace metadata lazily instead of on credential load by @Danelegend in #13520
  • test(craft): move unit tests to discovered paths and prune trivial tests by @wenxi-onyx in #13523
  • fix(craft): stop the apps page shifting when switching tabs by @Danelegend in #13526
  • chore(dev): upgrade onyx-devtools to 0.10.3 by @onyx-cherry-pick[bot] in #13528
  • fix(auth): only auto-request offline_access when the IdP advertises it by @justin-tahara in #13534
  • fix(chat): auto-name chat sessions with the session's model, not the global default by @justin-tahara in #13535
  • fix(bookstack): index documents updated on the current day by @justin-tahara in #13537
  • fix(llm): omit empty tools list from litellm completion requests by @justin-tahara in #13532
  • refactor(opal): rename action-link-* tokens to action-selection-* by @nmgarza5 in #13529
  • fix(craft): omit unverified limits for unknown models by @rohoswagger in #13527
  • fix(files): extract cached calculated values from xlsx, not formula strings by @justin-tahara in #13536
  • fix(sharepoint): retry empty/non-JSON Graph responses instead of aborting indexing by @justin-tahara in #13540
  • fix(chat): stop citation processor from corrupting code fences by @justin-tahara in #13538
  • feat(usage): support usage management frontend by @evan-onyx in #13511
  • fix(gateway): strip empty message text before it reaches LiteLLM by @wenxi-onyx in #13549
  • fix(craft): add icon to main agent row in agent switcher by @wenxi-onyx in #13550
  • fix(opal): only default CopyButton tooltip when icon-only by @jmelahman in #13546
  • feat(craft): pre-pull the sandbox image onto the sandbox node pool by @Danelegend in #13490
  • fix(craft): polish user library modal by @wenxi-onyx in #13561
  • fix(craft): remove hardcoded reasoningEffort high from opencode config by @wenxi-onyx in #13560
  • fix(craft): drop the prepuller PriorityClass by @Danelegend in #13562
  • fix(craft): split aggregator providers by vendor in the model picker by @rohoswagger in #13552
  • feat(craft): persist model picker selection and recommended-only toggle in localStorage by @wenxi-onyx in #13582
  • fix(craft): disable the sandbox image prepuller in values-localdev by @wenxi-onyx in #13585
  • feat(cli): onyx-cli deploy — replace install.sh/install.ps1 with a Go installer by @jmelahman in #13522
  • fix(usage): retain user_usage rows when a user is deleted by @rohoswagger in #13563
  • fix(craft): hide interrupt affordance while a session is restoring by @wenxi-onyx in #13586
  • chore(deps-dev): bump oxlint from 1.72.0 to 1.75.0 in /backend/onyx/server/features/build/sandbox/image/templates/outputs/web by @dependabot[bot] in #13577
  • chore(dev): upgrade devcontainer image by @onyx-cherry-pick[bot] in #13587
  • fix(cli): craft is reachable by flag, not offered in the mode question by @jmelahman in #13589
  • feat(chat): admin-configurable dedicated model for chat auto-naming by @justin-tahara in #13557
  • fix(craft): disable remote OpenCode model fetches by @wenxi-onyx in #13593
  • fix(scripts): account for Craft in tenant cleanup by @wenxi-onyx in #13591
  • feat(cli): teach onyx-cli deploy to manage prod compose deployments by @jmelahman in #13594
  • fix(web): size the model picker list pane to its content by @nmgarza5 in #13597
  • feat(mobile): input-bar controls spec + tool-options foundation by @Subash-Mohan in #13091
  • feat(search): temporary env to force Search-UI document-set scope by @Subash-Mohan in #13491
  • feat(mobile): agentic timeline grouping engine + packet contracts by @Subash-Mohan in #13092
  • feat(reindex): old-index reclaim schema + db helpers by @Subash-Mohan in #13351
  • feat(reindex): mode-aware old-index deletion primitive by @Subash-Mohan in #13352
  • feat(usage): add cost limits and enforcement UI by @evan-onyx in #13600
  • fix(helm): let configMap override model server hosts without duplicate keys (chart 0.8.10) by @justin-tahara in #13614
  • feat(usage): add self-service usage dashboard by @evan-onyx in #13601
  • fix(slackbot): restore forced document search for Slack bot answers by @justin-tahara in #13542
  • feat(craft): pre-pull the sandbox image for docker-compose deployments by @Danelegend in #13592
  • feat(cli): keep the TUI up while Docker Desktop starts by @jmelahman in #13617
  • fix(cli): count every service that is not up in deploy status by @jmelahman in #13616
  • feat(cli): add --dev to onyx-cli deploy install by @jmelahman in #13618
  • feat(usage): add model cost overrides by @evan-onyx in #13602
  • feat(auth): add oauth account and prior-email schema by @nmgarza5 in #13578
  • feat(auth): capture per-credential identity for usage attribution by @rohoswagger in #13606
  • ci(golang): run go tests with the race detector by @jmelahman in #13620
  • feat(usage): add admin per-user usage reporting by @evan-onyx in #13603
  • fix(cli): pick the deploy palette for the terminal background by @jmelahman in #13623
  • fix(chat): classify model refusals instead of generic EmptyLLMResponseError by @jmelahman in #13332
  • chore(install): make install.sh a bootstrap for onyx-cli deploy by @jmelahman in #13615
  • feat(db): optional FOR UPDATE on fetch_user_by_id by @wenxi-onyx in #13630
  • feat(auth): record the IdP subject on the mapping at login by @nmgarza5 in #13579
  • refactor(craft): consolidate turn/queue/liveness/client timeouts into a registry by @wenxi-onyx in #13631
  • refactor(craft): drop redundant sandbox manager singletons by @Danelegend in #13627
  • chore: add refusal reasons by @evan-onyx in #13628
  • fix: hierarchynodes accessible private connectors by @evan-onyx in #13625
  • fix(auth): resolve the tenant from the IdP subject before the email by @nmgarza5 in #13580
  • fix(craft): shared replay-safe session workspace setup with exec completion sentinel by @wenxi-onyx in #13632
  • feat(craft): durable reserve/reconcile/finalize sandbox provisioning lifecycle by @wenxi-onyx in #13633
  • feat(auth): treat a user's prior addresses as the same principal by @nmgarza5 in #13581
  • feat(gateway): let external OpenAI-compatible clients use the LLM gateway by @rohoswagger in #13604
  • fix(auth): adopt the provider's address on login by @nmgarza5 in #13564
  • feat(db): enumerate tenants across every shard by @justin-tahara in #13518
  • feat(mobile): timeline processor + pacing hooks by @Subash-Mohan in #13610
  • feat(mobile): timeline state hooks by @Subash-Mohan in #13609
  • feat(mobile): render-prop renderer contract + answer migration by @Subash-Mohan in #13611
  • fix(install): persist ~/.local/bin on PATH for non-root installs by @jmelahman in #13651
  • fix(web): open AccountPopover above its trigger on mobile by @jmelahman in #13653
  • chore(dev): upgrade devcontainer image by @onyx-cherry-pick[bot] in #13657
  • chore(dev): upgrade onyx-devtools to 0.10.6 by @onyx-cherry-pick[bot] in #13658
  • chore(devcontainer): playwright chromium for the MCP, self-healing ods web, dev-workflow docs by @jmelahman in #13654
  • fix(box): map OAuth 400s to actionable credential errors by @wenxi-onyx in #13655
  • perf(llm): raise provider listing cache TTL to 300s by @jmelahman in #13659
  • feat(web): default to full-width chat below md and hide the toggle by @jmelahman in #13660
  • fix(craft): preserve requested session names by @wenxi-onyx in #13662
  • fix(celery): launch beat watchdog as module by @wenxi-onyx in #13664
  • fix: knowledge pane query filters by @evan-onyx in #13665
  • fix(notifications): make notification creation race-safe by @wenxi-onyx in #13663
  • chore(deps-dev): bump ty from 0.0.31 to 0.0.63 by @dependabot[bot] in #13576
  • fix(gateway): open a trace so gateway LLM calls are metered by @rohoswagger in #13666
  • feat(llm): admin-selectable API mode for Bifrost (chat completions / responses) by @justin-tahara in #13642
  • feat(connector-stability): credential capability check framework by @acaprau in #13519
  • refactor(backend): remove obsolete mypy-era type: ignore directives by @jmelahman in #13674
  • fix(llm): harden litellm responses bridge for gateway streaming variants by @justin-tahara in #13668
  • perf(llm): invalidate provider listing cache on persona edits, TTL to 600s by @jmelahman in #13673
  • fix(usage): sort per-model usage breakdown by cost descending by @rohoswagger in #13676
  • feat(gateway): serve the OpenAI Responses API for Codex CLI (non-streaming) by @rohoswagger in #13605
  • fix(web): always show hover-revealed buttons on touch devices by @jmelahman in #13680
  • feat(connector-stability): credential capability report generation by @acaprau in #13533
  • fix(admin): collapse LLM provider cards to one column on small screens by @jmelahman in #13682
  • fix(web): make the folded sidebar logo open the sidebar by @jmelahman in #13672
  • feat(gateway): stream the Responses API output-item lifecycle by @rohoswagger in #13624
  • feat(gateway): refuse gateway params we cannot honor by @rohoswagger in #13650
  • fix(license): auto-deliver renewals and warn admins only when action exists by @nmgarza5 in #13425
  • fix(web): avoid fabricating Azure deployment_name on provider edit by @ArslanRasheed60 in #13693
  • fix(craft): reconcile sandbox lifecycle transitions by @wenxi-onyx in #13698
  • feat(craft): bake webapp dev-server env into the sandbox so hand-started servers work by @rohoswagger in #13699
  • feat(gateway): serve the Anthropic Messages API for Claude Code by @rohoswagger in #13687
  • feat(db): place new tenants on a configured shard by @justin-tahara in #13661
  • feat(metrics): publish tenant count per shard by @justin-tahara in #13683
  • feat(connector-stability): stricter verdict aggregation and no trivial pass fallbacks by @acaprau in #13684
  • fix(db): size the connection pool per shard instead of splitting it by @justin-tahara in #13706
  • fix(slack): correct link, email, code and list rendering in bot answers by @nmgarza5 in #13626
  • feat(gateway): pass extended thinking through the Anthropic Messages API by @rohoswagger in #13691
  • feat(cli): concurrent multi-query support for onyx-cli search by @wenxi-onyx in #13709
  • docs(env): drop the tenant-sharding block from the compose template by @justin-tahara in #13716
  • feat(gateway): tag PAT gateway traffic with its own LLM flow by @rohoswagger in #13700
  • chore(craft): bump sandbox onyx-cli pin to 1.3.3 by @wenxi-onyx in #13714
  • feat(mobile): timeline primitives + StepContainer by @Subash-Mohan in #13690
  • feat(mobile): reasoning renderer + full-text reader for the agent timeline by @Subash-Mohan in #13694
  • feat(mobile): agent timeline composition + parallel tabs by @Subash-Mohan in #13695
  • fix(indexing): cap summarization LLM call time to stop worker wedge by @Subash-Mohan in #13613
  • refactor: remove Craft usage limits by @wenxi-onyx in #13705
  • feat(gateway): support forcing a specific named tool via tool_choice by @rohoswagger in #13692
  • fix(logging): cap third-party DEBUG log noise and single-path LiteLLM emission by @justin-tahara in #13701
  • fix(web): gate SSO provider config to single-tenant deployments by @nmgarza5 in #13717
  • fix(cli): upgrade Go dependencies for security fixes by @wenxi-onyx in #13729
  • fix(tests): stop celery logging tests leaking third-party log cap state by @rohoswagger in #13732
  • feat(craft): two-tier turn budgets with sandbox-side wrap-up steer by @wenxi-onyx in #13667
  • feat(mcp): arbitrary connection headers for all servers by @evan-onyx in #13715
  • feat(gateway): native Anthropic passthrough for /v1/messages by @rohoswagger in #13697
  • feat(connector-stability): implement source operations framework by @acaprau in #13707
  • refactor(settings): make /admin/settings a PATCH with partial-merge by @nmgarza5 in #13266
  • feat(gateway): serve the OpenAI Responses API natively for true OpenAI models by @rohoswagger in #13724
  • fix(llm): broaden Mistral tool-ordering bridge detection, keep post-tool reminders by @justin-tahara in #13539
  • fix(llm): route chat model selection by model configuration id by @justin-tahara in #13731
  • feat(connector-stability): source-operation enforcement and capability-check wiring by @acaprau in #13708
  • fix(connectors): batch admin connector files listing into one query by @justin-tahara in #13702
  • feat(log-export): celery collector and cleanup tasks by @acaprau in #13681
  • test(auth): lock in JWT_PUBLIC_KEY_URL passthrough behavior by @justin-tahara in #13738
  • chore(celery): port remaining worker stubs to versioned EE apps by @acaprau in #13686
  • fix(auth): gate the search surface on read:search instead of basic by @justin-tahara in #13739
  • test(gateway): integration suite driving real Claude Code and Codex through the passthroughs by @rohoswagger in #13730
  • chore(craft): upgrade OpenCode to 1.18.13 by @wenxi-onyx in #13741
  • fix(craft): document webapp preview base path and real lint/typecheck commands to the agent by @wenxi-onyx in #13735
  • fix(desktop): import tauri::Manager in the Windows Alt-menu module by @justin-tahara in #13742
  • fix(connectors): pin create-connector sidebar and reskin step rail by @raunakab in #13745
  • feat(log-export): async export endpoints with worker fan-out by @acaprau in #13736
  • feat(connector-stability): gateway credential construction helper by @acaprau in #13747
  • test: airgapped deployments by @evan-onyx in #13733
  • fix: normalize API prefixes before middleware gates by @rohoswagger in #13748
  • feat(craft): add webapp bootstrap script generator and tool assets by @rohoswagger in #13711
  • feat(ee): move the LLM gateway into EE by @rohoswagger in #13746
  • fix(ci): rename tauri-action input to releaseAssetNamePattern by @justin-tahara in #13754
  • feat(mobile): deep-research toggle in the chat composer by @Subash-Mohan in #13726
  • feat(mobile): actions menu — force a tool + enable/disable per agent by @Subash-Mohan in #13728
  • fix(gateway): hide the LLM gateway PAT scope below Enterprise tier by @rohoswagger in #13753
  • feat(usage): expose flow and provider detail in usage exports by @rohoswagger in #13750
  • chore(deps): bump shadcn from 4.11.0 to 4.16.0 in /backend/onyx/server/features/build/sandbox/image/templates/outputs/web by @dependabot[bot] in #13758
  • chore(deps-dev): bump @tailwindcss/postcss from 4.3.1 to 4.3.3 in /backend/onyx/server/features/build/sandbox/image/templates/outputs/web by @dependabot[bot] in #13759
  • fix(ci): seed Enterprise license for Craft Compose tests by @wenxi-onyx in #13763
  • fix(voice): support non-English languages in the Azure voice provider by @justin-tahara in #13762
  • feat(desktop): global summon shortcut + View-menu navigation accelerators by @justin-tahara in #13765
  • feat(opal): support alignment overrides in Table cells and headers by @rohoswagger in #13768
  • fix(llm): stop dropping reasoning params for Vertex Anthropic and gateway-routed Claude by @nmgarza5 in #13775
  • fix(llm): stream natively on registry miss for OpenAI responses surface by @justin-tahara in #13788
  • fix(craft): preview legacy PowerPoint files by @wenxi-onyx in #13785
  • fix(auth): claim an unowned account on first SSO login by @nmgarza5 in #13791
  • fix(chat): correct long-chat context accounting and model-switch replay by @justin-tahara in #13764
  • chore(llm): unify Azure and OpenAI responses fake-stream patches by @justin-tahara in #13801
  • feat(web-connector): URL rewrite rules for stored document links by @Danelegend in #13154
  • fix(craft): make waking a session reliable, not a race by @Danelegend in #13688
  • feat(usage): accept a client-supplied report_id for generation by @rohoswagger in #13771
  • feat(usage): cap spending-limit token budgets at one trillion (backend) by @rohoswagger in #13782
  • feat(web): add usage analytics building blocks by @rohoswagger in #13769
  • feat(craft): lazy webapp provisioning on setup and restore by @rohoswagger in #13712
  • feat(craft): gate Preview tab on webapp readiness with three-state UX by @rohoswagger in #13713
  • feat(usage): redesign the create-spending-limit modal (frontend 1/2) by @rohoswagger in #13783
  • fix(perm-sync): stop duplicate gdrive group-sync crawls from stacking to OOM by @justin-tahara in #13703
  • feat(desktop): summon shortcut toggles -- press while focused hides by @justin-tahara in #13803
  • fix(web): app-level undo/redo for the input bar so Cmd+Z stops eating drafts by @justin-tahara in #13804
  • fix: fetch perms for sharepoint hierarchynodes by @evan-onyx in #13778
  • fix(craft): align session deletion modal by @wenxi-onyx in #13793
  • fix(mcp): discover OAuth metadata before consent by @wenxi-onyx in #13790
  • feat(usage): extract TokenRateLimitsPanel and rework the limits table (frontend 2/2) by @rohoswagger in #13784
  • feat(log-export): switch the admin export page to the async flow by @acaprau in #13776
  • fix(confluence): survive DC attachment-pagination 400s in indexing, reindex, and pruning by @Danelegend in #13805
  • refactor(web): modernize MCP OAuth callback UI with Opal components by @wenxi-onyx in #13812
  • feat: efficient sharepoint role fetching by @evan-onyx in #13813
  • chore(llms): update recommended models by @onyx-cherry-pick[bot] in #13827
  • feat(external-apps): narrow Google scopes on Onyx's OAuth client by @Danelegend in #13761
  • fix(helm): route /scim to api server in ingress mode by @nmgarza5 in #13838
  • chore(gha): build the desktop app for Windows on presubmit by @jmelahman in #13829
  • chore(agents): require ASD-STE100 Simplified Technical English by @jmelahman in #13839
  • test(craft): drive lazy webapp provisioning in the craft integration suites by @rohoswagger in #13830
  • fix: correct MCP OAuth actions in popover by @wenxi-onyx in #13815
  • feat(web): rework per-user usage panel by @rohoswagger in #13806
  • fix(workers): reap Chromium orphans in spawned connector children by @justin-tahara in #13832
  • fix(opensearch): don't fail api-server startup when the index is write-blocked by @justin-tahara in #13833
  • fix(web): keep native row role on clickable opal Table rows by @rohoswagger in #13846
  • fix(craft): preserve stale state during live session load by @wenxi-onyx in #13842
  • chore(log-export): remove the superseded sync download endpoint by @acaprau in #13849
  • test(unit): reset EE state leaked by import side effects by @acaprau in #13844
  • feat(mobile): source selection in the actions menu + token refresh loop by @Subash-Mohan in #13825
  • fix(admin): reflow security page dropdowns between title and description on narrow viewports by @jmelahman in #13847
  • feat(web): allow production builds to skip type checking by @jmelahman in #13848
  • fix(highspot): surface plain-text API errors and xfail the 403 tests by @Subash-Mohan in #13853
  • fix(admin): prevent date range picker pills from clipping in narrow headers by @rohoswagger in #13860
  • fix(web): stop rendering "Anonymous" while the current user is unresolved by @nmgarza5 in #13852
  • fix(craft): restore stale skills after turn failure by @wenxi-onyx in #13859
  • fix(web): fix react-doctor error-class findings and enforce via oxlint plugin by @nmgarza5 in #13850
  • fix: preserve HTML table and link boundaries by @evan-onyx in #13864
  • chore: remove spending limits page and make cost-budget API Enterprise-only by @rohoswagger in #13862
  • fix(web): show the container host note on all self-hosted providers by @jmelahman in #13858
  • feat: avoid redundant SharePoint list item lookups by @evan-onyx in #13851
  • ci: skip type checking in the Playwright web image build by @jmelahman in #13871
  • chore(deps-dev): bump @typescript/native-preview from 7.0.0-dev.20260706.1 to 7.0.0-dev.20260707.2 by @dependabot[bot] in #13566
  • chore(deps): bump marked from 18.0.5 to 18.0.7 by @dependabot[bot] in #13568
  • chore(deps-dev): bump tailwindcss from 4.3.1 to 4.3.3 in /web by @dependabot[bot] in #13569
  • chore(deps): bump lucide-react from 1.21.0 to 1.25.0 in /web by @dependabot[bot] in #13572
  • chore(web): upgrade Next.js to 16.3.0 to cut dev server memory by @jmelahman in #13868
  • chore(deps-dev): bump typescript from 6.0.3 to 7.0.2 by @dependabot[bot] in #13571
  • chore(deps): bump actions/setup-python from 6.3.0 to 7.0.0 by @dependabot[bot] in #13574
  • chore(deps): bump azure/setup-helm from 5.0.0 to 5.0.1 by @dependabot[bot] in #13573
  • chore(deps): bump astral-sh/setup-uv from 8.2.0 to 9.0.0 by @dependabot[bot] in #13565
  • feat(connector-stability): slack source operations gateway by @acaprau in #13772
  • chore(deps): bump gitpython from 3.1.57 to 3.1.58 by @dependabot[bot] in #13820
  • chore(deps): bump h2 from 4.3.0 to 4.4.1 by @dependabot[bot] in #13799
  • chore(deps-dev): bump pypdf from 6.14.2 to 6.15.0 by @dependabot[bot] in #13822
  • chore(deps-dev): bump aiohttp from 3.14.1 to 3.14.3 by @dependabot[bot] in #13723
  • chore(vscode): Recommand dev containers extension by @jmelahman in #13881
  • feat(usage): add per-user attribution to usage report exports by @rohoswagger in #13843
  • feat(log-export): skip worker fan-out on deployments without a celery broker by @acaprau in #13882
  • fix(craft): trust custom CAs in sandbox proxy by @jack-watroba in #13767
  • feat(log-export): re-attach the export page to an in-flight export via URL param by @acaprau in #13879
  • feat(db): add the incognito record mode column by @nmgarza5 in #13886
  • feat(usage): add PDF review pack to exports by @rohoswagger in #13872
  • feat(chat): incognito chat sessions with content-free records by @nmgarza5 in #13866
  • chore(deps): bump github.com/go-git/go-git/v5 from 5.19.1 to 5.19.2 in /tools/ods by @dependabot[bot] in #13818
  • fix(ods): detect cherry-pick target from release branches, not tags by @acaprau in #13880
  • refactor(opal): give spacing a numeric scale by @raunakab in #13909
  • feat(admin): incognito availability and record modes by @nmgarza5 in #13894
  • refactor(FE): clarify date range picker ownership beyond admin pages by @rohoswagger in #13910
  • chore(lint): enable flake8-bugbear ruff rules by @jmelahman in #13891
  • feat(scheduled-tasks): add MCP pre-approval UI by @wenxi-onyx in #13883
  • feat(scheduled-tasks): support MCP pre-approvals by @wenxi-onyx in #13884
  • chore(docker): default web + model-server bases to non-DHI images by @jmelahman in #13915
  • chore(dev): upgrade onyx-devtools to 0.11.0 by @onyx-cherry-pick[bot] in #13914
  • refactor(opal): move the card padding scale onto Spacing by @raunakab in #13916
  • fix(gitbook): index child pages when no updatedAt present by @Danelegend in #13918
  • refactor(opal): read sidebar fold state from context in SidebarTab by @jmelahman in #13920
  • feat(web): add workspace analytics page by @rohoswagger in #13808
  • fix(web): restore the mobile sidebar toggle on create-connector pages by @jmelahman in #13857
  • feat: publish MCP OAuth client metadata by @evan-onyx in #13876
  • feat: use client metadata during MCP OAuth discovery by @evan-onyx in #13877
  • refactor(opal): move SidebarTab folded styling to CSS by @jmelahman in #13923
  • fix(opal): make the SidebarTab click target keyboard focusable by @jmelahman in #13921
  • fix: improve Craft Kubernetes download reliability by @evan-onyx in #13925
  • fix(web): keep co-located tests out of the Docker build context by @jmelahman in #13927
  • feat: add CIMD-only MCP OAuth E2E coverage by @evan-onyx in #13893
  • refactor(opal): finish the padding migration and close the scales by @raunakab in #13919
  • feat(chat): incognito page mode with ephemeral files and projects by @nmgarza5 in #13895
  • feat(llm): incognito provider policies and usage accounting by @nmgarza5 in #13905
  • feat(connector-stability): slack capability checks by @acaprau in #13551
  • fix(usage): Make shared usage ranges exact calendar windows by @rohoswagger in #13911
  • refactor(web): migrate the clean Card call sites to Opal by @raunakab in #13930
  • fix(chat): accept incognito attachments before the first message by @nmgarza5 in #13932
  • ci: only republish Helm charts when chart files change by @jmelahman in #13942
  • refactor(chat): collapse the incognito sweep and unify the delete path by @nmgarza5 in #13933
  • fix(auth): drop the unsigned onyx_tid tenant cookie by @nmgarza5 in #13934
  • fix(ods): skip pre-push hooks on tag pushes by @jmelahman in #13926
  • feat(usage): Let personal usage share exact calendar ranges by @rohoswagger in #13912
  • fix(usage): Clarify personal usage and budget context by @rohoswagger in #13922
  • fix(helm): truncate all child resource names to the 63-char k8s limit (chart 0.8.15) by @justin-tahara in #13944
  • chore(dev): upgrade onyx-devtools to 0.11.1 by @onyx-cherry-pick[bot] in #13945
  • feat(craft): Sheets/Slides for Drive, and Gmail draft creation on cloud by @Danelegend in #13928

New Contributors

Full Changelog: v4.5.0...v4.6.0-beta.0

Don't miss a new onyx release

NewReleases is sending notifications on new releases.