What's Changed
- chore(desktop): bump version to 1.25.0 by @Kitenite in #6890
- feat(marketing): tier icons and factory backdrop for leaderboard pages by @harshithmullapudi in #6889
- fix(panes): keep resize handles from painting above dialogs by @Kitenite in #6891
- chore(deps): pull in Dependabot bumps with proper lockfile resolution by @AviPeltz in #6898
- feat(cli):
superset scripts add+ rename terminal presets to terminal scripts by @Kitenite in #6892 - fix(web): stop set-active hijacking the OAuth consent navigation by @Kitenite in #6899
- style(desktop): align Settings sidebar with the main sidebar, fold Usage into Settings by @AviPeltz in #6883
- fix(desktop): stop 'Host unreachable' lingering after host-service restart by @Kitenite in #6900
- fix(desktop): park terminal transports on detach — close the socket, resume by seq by @Kitenite in #6895
- fix(host-service): stop a busy pty-daemon from being orphaned by a fresh spawn by @Kitenite in #6897
- docs+marketing: rename Remote Workspaces to Remote Access by @Kitenite in #6896
- fix(desktop): make New Window reachable without the native menu bar by @tao101 in #6894
- feat(desktop): add a PDF viewer to the file pane by @Kitenite in #6909
- feat(marketing): surface SOC 2 Type II across the site by @Kitenite in #6910
- fix(host-service): stop usage.history throwing on very large usage histories by @saddlepaddle in #6912
- fix(desktop): don't throw persisting windows when quit precedes app-state init by @saddlepaddle in #6913
- fix(host-service): say which GitHub credential was rejected on the PR list by @Kitenite in #6911
- feat(i18n): Lingui 6 foundation across desktop, web, and mobile (Phase 0) by @Kitenite in #6904
- fix(desktop): font preview card border and footer overflow by @Kitenite in #6915
- feat(i18n): locale-aware formatting layer (Phase 1) by @Kitenite in #6916
- feat(i18n): hardcoded-string ratchet, tests, and agent conventions (Phase 1) by @Kitenite in #6906
- fix(desktop): keep font previews inside their grid track by @Kitenite in #6919
- feat(i18n): tRPC error contract (Phase 1) by @Kitenite in #6918
- feat(i18n): route toast error rendering through errorMessage() (Phase 1) by @Kitenite in #6921
- fix(desktop): rank command palette by contiguous matches, not fuzzy subsequences by @saddlepaddle in #6923
- feat(usage): analytics for every agent CLI that records usage (grok, cursor, opencode, copilot, pi, omp, fx) by @Kitenite in #6922
- feat(i18n): server error keys for every literal user-facing TRPCError (Phase 1) by @Kitenite in #6924
- feat(shared,host-service): pinned Claude model ids in the workspace-create picker, and reject an unsupported model by @Kitenite in #6920
- fix(i18n): translated error strings are display-only — logs keep stable English by @Kitenite in #6925
- feat(i18n): locale persistence — Postgres user.locale, desktop Language setting (Phase 1) by @Kitenite in #6926
- refactor(desktop): split Typography settings into two always-visible surface sections by @Kitenite in #6927
- fix(trpc): let the hourly MRR refresh collect the run it started by @saddlepaddle in #6931
- feat(integrations): offer trigger-only integrations only where their triggers are by @saddlepaddle in #6933
- fix(mobile): scope the project picker to the Home scope and say just "Cloud" under Cloud by @saddlepaddle in #6934
- fix(mobile): move workspace search into a sheet with the native search bar by @saddlepaddle in #6937
- feat(i18n): extract dashboard surfaces to Lingui (Phase 2, batch 1) by @Kitenite in #6936
- feat(i18n): extract settings surfaces to Lingui (Phase 2, batch 2) by @Kitenite in #6938
- refactor(ui,chat-ui,desktop): one clipboard-file reader for every paste handler by @Kitenite in #6935
- fix(desktop,ui,mobile): three paste defects found auditing the paste surfaces by @Kitenite in #6939
- feat(i18n): extract v2-workspace + remaining renderer surfaces to Lingui (Phase 2, batch 3) by @Kitenite in #6940
- fix(ui): keep the maxFiles budget in step within a single tick by @Kitenite in #6941
- feat(i18n): localize string props, toasts, and label maps (Phase 2, batch 4) by @Kitenite in #6942
- fix(desktop): match settings top bar to sidebar by @Kitenite in #6947
- feat(i18n): finish the sweep and ship Japanese and Simplified Chinese by @Kitenite in #6943
- feat(desktop,host-service): forward remote workspace ports to the local machine by @Ymirke in #6858
- fix(marketing): seed RSC i18n per route entry, not just the root layout by @saddlepaddle in #6950
- feat(desktop): copy-on-select setting for v2 terminals by @Kitenite in #6949
- fix(desktop): notify for OpenCode permission and question prompts by @Kitenite in #6948
- fix(auth): remember the organization you switched to across sessions by @saddlepaddle in #6957
- fix(terminal): stop the viewport freezing when Pi erases the scrollback by @Kitenite in #6956
- fix(desktop): finish the Remote Access rename, and stop English edits stranding translations by @Kitenite in #6959
- perf(i18n): load translation catalogs on demand by @Kitenite in #6951
- fix(agent-setup): handle Codex interrupted turns by @Kitenite in #6963
- ci: smoke test deployed previews and arm the RSC seeding guard for every Next app by @Kitenite in #6960
- fix(desktop): preserve provider profile and sync sidebar state by @Kitenite in #6961
- feat(i18n): ship French by @Kitenite in #6964
- feat(i18n): ship Korean by @Kitenite in #6965
- feat(pages): default to org visibility, cached thumbnails, owner + delete in the grid by @harshithmullapudi in #6932
- feat(pages): watch published pages and route comments to the owning agent by @harshithmullapudi in #6952
- feat(i18n): ship Traditional Chinese and fix Chinese locale resolution by @Kitenite in #6969
- feat(i18n): ship Spanish by @Kitenite in #6971
- feat(i18n): ship German by @Kitenite in #6972
- feat(i18n): ship Brazilian Portuguese by @Kitenite in #6973
- feat(i18n): ship Italian by @Kitenite in #6974
- feat(i18n): ship Russian by @Kitenite in #6976
- feat(i18n): ship Turkish by @Kitenite in #6977
- feat(i18n): ship Polish by @Kitenite in #6978
- feat(i18n): ship Dutch by @Kitenite in #6979
- feat(i18n): ship Indonesian by @Kitenite in #6981
- feat(i18n): ship Czech by @Kitenite in #6982
- feat(i18n): ship Vietnamese by @Kitenite in #6983
- feat(desktop): offer to restart running agents onto the new default account by @Kitenite in #6970
- feat(i18n): translate new strings automatically on the PR by @Kitenite in #6984
- fix(i18n): make built sentences whole messages instead of fragments by @Kitenite in #6985
- fix(i18n): five findings from the visual locale review by @Kitenite in #6989
- feat(usage): add Grok and Antigravity quotas by @Kitenite in #6987
- fix(marketing): serve the request's language, and make regressing this a blocked deploy by @Kitenite in #6991
- feat(i18n): language switcher on marketing and docs by @Kitenite in #6992
- feat: workspace tags and tag-derived sidebar folders by @Kitenite in #6990
- chore: lint fixes for tag-folders merge by @Kitenite in #6995
- fix(i18n): language switcher names the language in effect, never "Auto" by @Kitenite in #6996
- fix(shared): raise MIN_HOST_SERVICE_VERSION so pre-1.22 hosts hit the version gate instead of a blank terminal pane by @Kitenite in #6998
- docs: translate the README into all sixteen shipped languages by @Kitenite in #6997
- fix(docs): compact language switcher to an icon beside the GitHub mark by @Kitenite in #7001
- Clarify workspace sidebar naming by @Kitenite in #7000
- feat(marketing): localized URLs — every page per locale, with its own SEO by @Kitenite in #7002
- docs: collapse the README language row into a disclosure by @Kitenite in #7004
- fix(i18n): deterministic first render — no hydration mismatch for non-English users by @Kitenite in #7005
- feat: host-side tag folder presentation and hide list by @Kitenite in #6999
- feat(marketing): Figma-style footer language picker by @Kitenite in #7006
- fix(desktop): render Nerd Font icons for any terminal font by @Kitenite in #7008
- feat(agent-setup): report agent launch from the wrapper so terminals bind at boot by @Kitenite in #7010
- feat: continue a terminal session with another agent, or fork it by @Kitenite in #6962
- The Production Run: campaign page, graded cost axis, and the Output fix by @harshithmullapudi in #6930
- docs: correct the port-forwarding host-service floor to 1.26 by @saddlepaddle in #7013
- feat(desktop,host-service): render the Changes pane from patches by @Kitenite in #6968
- test(usage): isolate native history collectors by @Kitenite in #7014
- fix(mobile): keep a Bluetooth route change from crashing dictation by @saddlepaddle in #7015
- feat(mobile): move "+" to the project header, drop new-agent from home by @saddlepaddle in #7016
- fix(gmail): skip already-recorded messages so a history walk can finish by @saddlepaddle in #7023
- test(agent-setup): stop rewriting the OpenCode plugin per test by @saddlepaddle in #7025
- feat(mobile): move the session tabs to the bottom, natively by @saddlepaddle in #7024
- feat(marketing): /security page for vulnerability and abuse reports by @saddlepaddle in #7026
- docs(marketing): drop hostnames and the scope block from the security page by @saddlepaddle in #7027
New Contributors
Full Changelog: desktop-v1.25.0...desktop-v1.25.1