github onyx-dot-app/onyx v4.3.0

latest releases: v4.0.11, ods/v0.9.5, v4.3.0-cloud.1...
7 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

  • feat(db): support TLS for Postgres with server certificate verification by @justin-tahara in #12290
  • feat(db): mutual TLS (client certs) for Postgres + shared SSLContext builder by @justin-tahara in #12294
  • chore(deps-dev): bump starlette from 1.0.1 to 1.3.1 by @dependabot[bot] in #12091
  • feat(mobile): port Opal Text and share typography tokens by @Subash-Mohan in #12256
  • feat(indexing): docprocessing stage-metric coverage + residual by @Subash-Mohan in #12182
  • feat(mobile): port Opal Button to React Native by @Subash-Mohan in #12255
  • fix(craft): add egress NetworkPolicy on the sandbox proxy (block IMDS/link-local) by @rohoswagger in #12229
  • feat(mobile): react-hook-form input layouts + InputTypeIn-parity atoms by @Subash-Mohan in #12303
  • chore(deps): use uv ecosystem for dependabot python updates by @jmelahman in #12309
  • chore(deps): bump msgpack from 1.1.2 to 1.2.1 in /loadtest by @dependabot[bot] in #12249
  • chore(deps): bump actions/stale from 10.2.0 to 10.3.0 by @dependabot[bot] in #12310
  • chore(deps): bump pydantic-settings from 2.12.0 to 2.14.2 by @dependabot[bot] in #12250
  • feat(audit): generalized SIEM-exportable audit-event subsystem by @justin-tahara in #12219
  • chore(deps-dev): bump opensearch-py from 3.0.0 to 3.2.0 by @dependabot[bot] in #12311
  • chore(deps): bump uvicorn from 0.35.0 to 0.49.0 by @dependabot[bot] in #12312
  • feat: hierarchy nodes have copyable links by @evan-onyx in #12295
  • chore(deps): bump zeep from 4.3.2 to 4.3.3 by @dependabot[bot] in #12247
  • feat(audit): emit auth audit events (login, logout, register, password reset, verify) by @justin-tahara in #12271
  • chore(deps): bump nick-fields/retry from 3.0.2 to 4.0.0 by @dependabot[bot] in #12315
  • chore(deps): bump sharp from 0.33.5 to 0.35.1 in /web by @dependabot[bot] in #12319
  • fix(chat): suppress open_url reminder when the tool is disabled by @justin-tahara in #12323
  • chore(deps): bump dompurify from 3.4.8 to 3.4.11 in /web by @dependabot[bot] in #12183
  • fix(sidebar-tab): clamp title to 1 line by @raunakab in #12326
  • chore(deps-dev): bump google-auth-oauthlib from 1.0.0 to 1.4.0 by @dependabot[bot] in #12313
  • refactor(loadtest): fold standalone uv project into root dependency group by @jmelahman in #12320
  • fix(sandbox-proxy): block sandbox egress relay to internal destinations by @rohoswagger in #12242
  • feat(web): add full-width chat mode toggle by @nmgarza5 in #12308
  • feat(audit): emit admin-config and access-control audit events by @justin-tahara in #12325
  • feat(redis): mutual TLS (client certificate) for Redis connections by @justin-tahara in #12321
  • fix(search): bound document_filter LLM calls with a timeout (ENG-4238) by @justin-tahara in #12333
  • feat(opensearch): server certificate verification + mutual TLS by @justin-tahara in #12301
  • fix(craft): mark scheduled-task run FAILED on turn timeout (ENG-4234) by @rohoswagger in #12330
  • fix(helm): drop privileged from model-server and celery default securityContext by @justin-tahara in #12337
  • feat(llm): add Nebius Token Factory as a built-in LLM provider by @siriusfreak in #12306
  • feat(craft): Add HubSpot as a built-in external app by @Danelegend in #11930
  • feat(billing): redis cache for trial + billing info lookups by @nmgarza5 in #10521
  • fix(audit): attach dedicated stdout handler so api-server audit events aren't dropped by @justin-tahara in #12346
  • fix(craft): avoid returning external app secrets by @wenxi-onyx in #12343
  • fix(craft): bound external app bundle uploads by @wenxi-onyx in #12344
  • fix(redis): async TLS/IAM passed an unsupported ssl_context — use native ssl_* kwargs by @justin-tahara in #12342
  • fix(craft): skip hidden entries in webapp downloads by @wenxi-onyx in #12349
  • fix(ci): namespace uv cache per arch + requirement set (no prune) by @jmelahman in #12234
  • ci: allow Craft workflow runner labels by @wenxi-onyx in #12352
  • feat(craft): Seed external apps for tenants in cloud by @Danelegend in #12288
  • fix(model_server): cap torch threads to cgroup CPU quota by @justin-tahara in #12351
  • test(craft): add isolated unit and EDU contract coverage by @wenxi-onyx in #12353
  • feat(tenants): feature-flag the impersonation endpoint, disabled by default by @jmelahman in #12354
  • feat(craft): add sandbox-pod egress NetworkPolicy by @rohoswagger in #12334
  • fix(craft): raise sandbox-proxy request body cap to 32 MB by @rohoswagger in #12358
  • fix(llm): render the Nebius Token Factory logo on its dark tile by @siriusfreak in #12355
  • feat(audit): wire the 3 remaining audit actions (password_reset, user.create, user.group_change) by @justin-tahara in #12362
  • feat(audit): emit audit events for impersonation by @jmelahman in #12359
  • feat(craft): on-demand session snapshot APIs by @wenxi-onyx in #12361
  • fix(ee): unset default SUPER_CLOUD_API_KEY, fail closed when unconfigured by @jmelahman in #12363
  • feat(redis): Redis Sentinel (HA) support — app Redis + Celery, TLS-aware by @justin-tahara in #12347
  • fix(craft): sanitize message metadata before jsonb writes by @wenxi-onyx in #12375
  • fix(craft): keep latest session snapshot safely by @wenxi-onyx in #12376
  • chore: more ee codeowners by @evan-onyx in #12386
  • refactor(slackbot): move source icons to public assets and delete dead code by @wenxi-onyx in #12385
  • fix: hierarchy node cross batch stubs by @evan-onyx in #12365
  • chore(deps-dev): bump typescript from 5.9.3 to 6.0.3 in /backend/onyx/server/features/build/sandbox/image/templates/outputs/web by @dependabot[bot] in #12314
  • chore(deps): bump next from 16.2.6 to 16.2.9 in /backend/onyx/server/features/build/sandbox/image/templates/outputs/web by @dependabot[bot] in #12317
  • chore(deps): bump j178/prek-action from 2.0.3 to 2.0.4 by @dependabot[bot] in #12379
  • feat(web): enable full highlight.js language set in chat markdown by @jmelahman in #12377
  • feat(indexing): stream large spreadsheets via file-backed TabularSection by @nmgarza5 in #12292
  • chore(deps): bump astral-sh/setup-uv from 8.1.0 to 8.2.0 by @dependabot[bot] in #12380
  • fix: notion db parents by @evan-onyx in #12393
  • feat(web-search): add Tavily as a web-search and content provider by @siriusfreak in #12350
  • chore(deps-dev): bump opentelemetry-proto from 1.39.1 to 1.42.1 by @dependabot[bot] in #12382
  • chore(deps): bump tornado from 6.5.6 to 6.5.7 by @dependabot[bot] in #12090
  • chore(deps-dev): bump pypdf from 6.12.0 to 6.13.0 by @dependabot[bot] in #12110
  • chore(deps): bump dompurify from 3.4.7 to 3.4.8 by @dependabot[bot] in #11900
  • chore(deps-dev): bump vite from 8.0.14 to 8.0.16 by @dependabot[bot] in #11904
  • chore(deps): bump actions/cache from 5.0.4 to 5.0.5 by @dependabot[bot] in #11907
  • chore(deps-dev): bump msoffcrypto-tool from 5.4.2 to 6.0.0 by @dependabot[bot] in #12381
  • chore(deps): bump python-multipart from 0.0.27 to 0.0.31 by @dependabot[bot] in #12092
  • chore(deps-dev): bump @typescript/native-preview from 7.0.0-dev.20260527.2 to 7.0.0-dev.20260616.1 by @dependabot[bot] in #12316
  • fix(settings): respect "Always Start with an Agent" for anonymous users by @jmelahman in #12394
  • chore(deps): bump langsmith from 0.8.0 to 0.8.18 by @dependabot[bot] in #12248
  • chore(deps): bump @radix-ui/react-slider from 1.3.6 to 1.4.1 in /web by @dependabot[bot] in #12384
  • chore(deps): bump motion from 12.29.0 to 12.40.0 in /web by @dependabot[bot] in #11902
  • chore(deps-dev): bump aiohttp from 3.14.0 to 3.14.1 by @dependabot[bot] in #12397
  • chore(deps): bump cryptography from 46.0.7 to 48.0.1 by @dependabot[bot] in #12396
  • test(craft): run compose API contract tests by @wenxi-onyx in #12392
  • chore(nginx): disable server_tokens to hide nginx version by @jmelahman in #12401
  • feat(search): scope internal search to connectors relevant to conversation by @Danelegend in #12212
  • fix(web): apply full-width chat only in active conversations by @nmgarza5 in #12338
  • chore(deps): bump pyjwt from 2.12.0 to 2.13.0 by @dependabot[bot] in #12400
  • feat(search): surface connector filter in the UI by @Danelegend in #12213
  • chore(deps-dev): bump pypdf from 6.13.0 to 6.13.3 by @dependabot[bot] in #12404
  • feat(terraform): make Craft sandbox node group configurable and autoscaling-ready by @rohoswagger in #12399
  • fix(github): surface connector validation errors instead of a generic 500 by @nmgarza5 in #12409
  • chore(deployment): prune dead env vars from templates & helm values by @justin-tahara in #12414
  • chore(config): env-var inventory tool + remove dead duplicate configs by @justin-tahara in #12413
  • fix(craft): keep sandbox-proxy from crash-looping on slow startup by @rohoswagger in #12402
  • feat(mobile): email/password auth flow (connect, login, signup, gate) by @Subash-Mohan in #12374
  • feat(mobile): Google sign-in via system browser (PKCE) + dedicated backend OAuth callback by @Subash-Mohan in #12424
  • docs(mobile-chat): add web→mobile chat port spec & phased PR roadmap by @Subash-Mohan in #12421
  • feat(config): classify env vars (category + sensitive) in inventory tool by @justin-tahara in #12416
  • docs(mobile-auth): remove completed feature-flow plan docs by @Subash-Mohan in #12428
  • chore(mobile): trim verbose code comments to lean style by @Subash-Mohan in #12429
  • fix(fe): remove opal-disabled layout styling by @jmelahman in #12407
  • fix(branding): administer browser-tab title and favicon server-side by @raunakab in #12406
  • fix(user-files): drop Vespa-hardcoded chunk-count in delete path by @justin-tahara in #12417
  • chore(web): rename refresh-pages/ to views/ by @raunakab in #12430
  • feat(search): Skip source filter once no filter settled by @Danelegend in #12412
  • refactor(llm): resolve provider by id in model-fetch requests by @jmelahman in #12348
  • feat(craft): make sandbox timing knobs configurable by @wenxi-onyx in #12432
  • feat(hierarchy): add hierarchy node display_name search endpoint by @evan-onyx in #12411
  • fix(scim): accept Entra ID group member removal (path=members + value list) by @justin-tahara in #12437
  • fix(craft): return OnyxError when Next.js ports are exhausted by @wenxi-onyx in #12440
  • test(craft): type shared build integration helpers by @wenxi-onyx in #12441
  • feat(craft): scope sandbox PAT to least-privilege CRAFT_SANDBOX role by @Danelegend in #12442
  • fix(craft): open the respective artifact on click in the Artifacts tab by @rohoswagger in #12452
  • feat(opal): add shadow prop to @opal/components.Card by @raunakab in #12451
  • docs(craft): align sandbox push documentation by @wenxi-onyx in #12456
  • fix: drive resourcekey usage when following shortcuts by @evan-onyx in #12446
  • test(craft): expand Docker compose integration coverage by @wenxi-onyx in #12455
  • feat(craft): use-case suggested prompts and welcome wordmark refresh by @rohoswagger in #12454
  • feat(opensearch): Support IAM auth by @acaprau in #12364
  • fix(web): suppress x-powered-by Next.js header by @jmelahman in #12461
  • feat(helm): configurable api-server worker/threadpool concurrency + load-test sweep by @justin-tahara in #12438
  • ci(craft): shard compose integration tests by @wenxi-onyx in #12465
  • test(craft): make sandbox EDU tests backend-agnostic by @wenxi-onyx in #12466
  • test(craft): add k8s integration harness by @wenxi-onyx in #12467
  • fix(craft): auto-send queued messages on interrupt; fix multi-queue hang by @rohoswagger in #12453
  • fix(fe): model selector items expand after e15dd59 by @jmelahman in #12469
  • chore(web): src/app/app/ directory cleanup by @raunakab in #12472
  • fix(deployment): read release id from create response to avoid list race by @jmelahman in #12471
  • ci(craft): run k8s integration tests against helm-installed onyx by @wenxi-onyx in #12470
  • refactor(craft): drop sandbox pod-IP fallback by @wenxi-onyx in #12474
  • chore(craft): real k8s integration tests by @wenxi-onyx in #12221
  • feat(ods): add dependency vulnerability audit command by @jmelahman in #12476
  • chore(craft): clean up old plans and add egress proxy docs by @wenxi-onyx in #12485
  • chore(web): cleanup how document.title and favicon are set by @raunakab in #12477
  • feat(web): add strict CSP directives behind WEB_STRICT_CSP_ENABLED by @jmelahman in #12475
  • chore: llm error message details by @evan-onyx in #12460
  • chore(deps): upgrade ods: 0.8.3->0.9.0 by @jmelahman in #12487
  • fix(jira): Gate permission checking behind perm-sync connector access by @Danelegend in #12457
  • fix(docx): Remove saving docx as plaintext by @Danelegend in #12492
  • feat(craft): Google Docs editing in google-drive external app (ENG-4256) by @Danelegend in #12483
  • chore(deps): regenerate bun.lock by @jmelahman in #12488
  • feat(mobile): authed chat shell + sessions history by @Subash-Mohan in #12501
  • feat(mobile): chat data-layer foundation (parser, tree, contracts) by @Subash-Mohan in #12506
  • fix(auth): validate OAuth next param to prevent open redirect (ENG-4253) by @justin-tahara in #12510
  • feat(craft-cli): add 'onyx-cli image' generate/edit command by @rohoswagger in #12493
  • fix(pruning): stop a failed prune from re-firing and flooding the cleanup queue by @nmgarza5 in #12410
  • feat(craft): pptx built-in templates, fonts, and template-selection guidance by @rohoswagger in #12484
  • fix(craft): preserve interrupted turn output when sending a new message by @rohoswagger in #12496
  • feat(craft): connect external apps on demand — backend request flow by @Danelegend in #12415
  • fix(web): ignore IME composition Enter in ListFieldInput by @greymoth-jp in #12511
  • feat(db): add user language preference column and backend wiring by @jmelahman in #12515
  • feat(celery): add clear_revoked control command to wipe the revoked-task set fleet-wide by @nmgarza5 in #12516
  • fix(craft-cli): point image command at generic /image-generation/generate by @rohoswagger in #12518
  • chore(deploy): re-enable model-server sbom and provenance by @jmelahman in #12521
  • chore(deps): upgrade uv 0.9.9 -> 0.11.25 and digest-pin the image by @jmelahman in #12520
  • chore(craft-sandbox): drop google-genai, add requests to sandbox image deps by @rohoswagger in #12494
  • fix(auth): restrict connector read endpoints to curator/admin (ENG-4249) by @justin-tahara in #12519
  • chore(config): remove dead AGENT_RERANKING_STATS / AGENT_RETRIEVAL_STATS by @jmelahman in #12527
  • refactor(web): replace @phosphor-icons/react with Opal icons by @jmelahman in #12532
  • fix(license): persist expiry-banner dismissal server-side via notifications by @nmgarza5 in #12513
  • feat(craft): connect_app sandbox tool + agent instructions by @Danelegend in #12443
  • chore(web): remove unused frontend dependencies by @jmelahman in #12533
  • feat(skills): add skill preview modal by @wenxi-onyx in #12531
  • feat(file-processing): isolate PDF text extraction in a subprocess by @nmgarza5 in #12517
  • chore(opensearch): Do not raise if chunk not found for update by @acaprau in #12541
  • feat(fe): Save session drafts in the chat and agent creation text bars by @acaprau in #12462
  • feat(craft): richer create-issue fields for Linear external app (ENG-4257) by @Danelegend in #12482
  • refactor(indexing): require csv_file_id for TabularSection by @nmgarza5 in #12378
  • chore(web): remove @headlessui/react and @headlessui/tailwindcss by @jmelahman in #12542
  • fix(ee): scope curator group writes to curated groups (#12525) to release v4.3 by @onyx-cherry-pick[bot] in #12549
  • fix: disambiguate mcp tools (#12548) to release v4.3 by @evan-onyx in #12694
  • fix(code-interpreter): Too many files accumulating in code interpreter (#12536) to release v4.3 by @Danelegend in #12697
  • Combined cherry-pick of #12526, #12559, #12534, #12639 to release v4.3 by @justin-tahara in #12699
  • chore(hotfix): cherry-pick 5 commits to release v4.3 by @nmgarza5 in #12698

New Contributors

Full Changelog: v4.2.4...v4.3.0

Don't miss a new onyx release

NewReleases is sending notifications on new releases.