What's Changed
- feat(llm-admin): introduce new PostHog flag to disable llm-provider configuration by @raunakab in #12120
- feat: allow sandbox agents to write tmp by @wenxi-onyx in #12125
- fix(llm): map unreachable OpenAI-compatible model server to 400, not 502 by @nmgarza5 in #12085
- fix(ci): clearer Slack alert when cherry-pick hits workflows permission by @jmelahman in #12126
- feat(email): archive sent messages via bcc by @wenxi-onyx in #12119
- revert(cloud): restore signup page by @wenxi-onyx in #12111
- fix(connector): only redirect connector detail page on a real 404 by @nmgarza5 in #12112
- fix(chat): disable model selector when there are no models to select by @jmelahman in #12130
- chore(llm): Improve custom config logging by @Danelegend in #12115
- fix(llm): restore vision detection for custom-config providers (LiteLLM Proxy) by @justin-tahara in #12136
- fix(file-processing): extract PDF text with pypdfium2 instead of pypdf by @nmgarza5 in #12102
- feat: mcp oauth persists refresh info by @evan-onyx in #11735
- feat(auth): add mobile bearer-token auth gateway by @Subash-Mohan in #12068
- fix(voice): log Azure STT cancellations, no-speech, and session end by @Subash-Mohan in #12107
- feat(skills): add user-managed personal skills by @rohoswagger in #11923
- fix(mobile): make onboarding responsive by @jmelahman in #12135
- fix(confluence): anchor attachment link to webui URL by @jmelahman in #12124
- feat(craft): align sandbox image tagging with app releases by @wenxi-onyx in #12141
- refactor(settings): consolidate settings into a single useSettings() hook by @raunakab in #12155
- feat(branding): derive
logoUrlinuseSettingshook by @raunakab in #12159 - chore(deps): bump aws-actions/configure-aws-credentials from 6.0.0 to 6.2.0 by @dependabot[bot] in #11899
- fix(groups): search members by service account name by @nmgarza5 in #12142
- fix(llm): resolve Bifrost vision support from LiteLLM cost map by @justin-tahara in #12157
- ci: right-size PR workflow job timeouts from historical runtimes by @jmelahman in #12164
- chore(deps): bump docker/setup-buildx-action from 4.0.0 to 4.1.0 by @dependabot[bot] in #11903
- docs(agents): add comment-writing guideline by @jmelahman in #12167
- fix(tenant): skip tenant resolution for /health and /metrics probes by @jmelahman in #12168
- fix(slack): scope permission sync channel fetches by @wenxi-onyx in #12134
- chore(craft): remove unused build code by @wenxi-onyx in #11959
- fix(file-store): make change_file_id a metadata-only rename by @nmgarza5 in #12087
- fix(craft): let celery-worker-heavy create sandbox snapshots (NetworkPolicy + push key) by @rohoswagger in #12173
- fix(chat): surface context-window errors on long threads + overflow guard by @justin-tahara in #12165
- feat(agent-sharing): ownership and transfer - 3/7 by @nmgarza5 in #12023
- feat(mobile-auth): runtime instance URL, session manager + login flow by @Subash-Mohan in #12147
- feat(service-accounts): add Groups & Roles modal by @nmgarza5 in #12174
- feat(auth): add mobile SSO bridge with PKCE one-time code exchange by @Subash-Mohan in #12150
- feat(settings): add 60 days chat retention option by @justin-tahara in #12186
- feat(agent-sharing): editor knowledge-attach guard - 4/7 by @nmgarza5 in #12024
- fix(dev): set ENCRYPTION_KEY_SECRET in .env.k8s.template to match localdev cluster by @rohoswagger in #12048
- feat(agent-sharing): share UI foundation - 5/7 by @nmgarza5 in #12025
- fix(branding): restore custom app name in browser title after navigation by @raunakab in #12162
- fix(admin): prevent clipped action button in admin list header by @nmgarza5 in #12175
- feat(agent-sharing): rebuilt share dialog - 6/7 by @nmgarza5 in #12027
- ci: avoid buildx setup in sandbox prepare job by @wenxi-onyx in #12190
- fix(craft): keep restored file pane populated by @wenxi-onyx in #12172
- feat(settings): add custom chat retention duration option by @justin-tahara in #12189
- feat(settings): re-expose temperature control toggle in admin chat preferences by @justin-tahara in #12192
- feat(craft): Persist opencode session for docker compose path by @acaprau in #12170
- feat(agent-sharing): edit-page section, admin gating, owned-only gallery - 7/7 by @nmgarza5 in #12028
- fix(chat): give pre-tool narration and tool calls distinct placement by @Danelegend in #12191
- ci(cherry-pick): request workflows permission for app token by @jmelahman in #12197
- feat: gdrive follow shortcuts by @evan-onyx in #12176
- fix(craft): send tenant_id to PostHog so Craft flags can target one tenant by @rohoswagger in #12196
- fix: set cloud PostHog tenant id from user mapping by @wenxi-onyx in #12199
- chore(craft): Snapshotting e2e test by @acaprau in #12171
- feat: add SharePoint targeted reindex (Resolver) support by @evan-onyx in #12121
- fix(indexing): count index-attempt errors via grouped query to stop api-server OOM by @nmgarza5 in #12207
- fix(chat): keep processing indicator until user files finish indexing by @justin-tahara in #12208
- feat(load-tests): compression / long-history scenario (CompressionUser) by @justin-tahara in #11990
- fix(security): skip security_settings DB read on the shared schema by @jmelahman in #12166
- feat(load-tests): file-attachment scenario for connection-hold testing 5/n by @justin-tahara in #11976
- feat(analytics): enable PostHog via runtime config instead of build-time env by @justin-tahara in #12200
- chore(craft, testing): k8s test should not run on every PR, match docker test cadence by @acaprau in #12214
- feat(canvas): perm syncing(4) by @benwu408 in #10443
- fix: sf retry closed connections by @evan-onyx in #12216
- fix(opensearch): skip metadata update for unknown/zero chunk count by @evan-onyx in #12137
Full Changelog: v4.2.0-beta.0...v4.2.0-beta.1