What's Changed
- chore(desktop): bump version to 1.28.0 by @Kitenite in #7368
- fix(deps): patch Oneleet dependency security alerts by @Kitenite in #7371
- fix(agent-setup): notify when Codex waits for user input by @Kitenite in #7372
- feat(terminal): name a terminal session, on the desktop and the phone by @saddlepaddle in #7373
- feat(mobile): give the plan alert a way to the web by @saddlepaddle in #7375
- fix(desktop): recover missing hosts when toggling remote access by @Kitenite in #7376
- fix(desktop): focus workspace deletion dialogs for native keyboard confirmation by @Kitenite in #7377
- fix(i18n): isolate locales and align app localization across platforms by @Kitenite in #7379
- fix(desktop): keep new sidebar groups at their source position by @Kitenite in #7381
- perf(usercontent): let a page document cache, and serve it from the colo cache by @saddlepaddle in #7164
- chore(usercontent): drop the unused theme stylesheet route and helper by @saddlepaddle in #7384
- feat(admin): company metrics — star chart and paywall funnel by @saddlepaddle in #7374
- feat(email): put the App Store badge back in the footer by @saddlepaddle in #7385
- fix(email): name the desktop app in the download email, correct its platforms by @saddlepaddle in #7387
- Revert "feat(mobile): agent status on the Lock Screen and Dynamic Island" by @saddlepaddle in #7386
- chore(api): time-boxed tracing to measure the region move by @saddlepaddle in #7388
- chore(api): revert the region-move tracing sampler by @saddlepaddle in #7390
- feat(mobile): upload attachments to cloud storage instead of through the relay by @saddlepaddle in #7378
- fix(mobile): hold Home's first paint until it has content, and keep it across launches by @saddlepaddle in #7383
- fix(review-host): keep the reviewer's session alive across restarts by @saddlepaddle in #7394
- feat(mobile): read and comment on pages from the phone by @harshithmullapudi in #7367
- feat(admin): put the dashboard on the Growth tile grid, and reorder it by @saddlepaddle in #7393
- feat(pages): flag delete requests on their pin, tighten comment chrome by @harshithmullapudi in #7359
- fix(ui): show toast close buttons on hover by @Kitenite in #7399
- feat(desktop): add a setting to show the Usage button in the sidebar by @tao101 in #7191
- feat(desktop): support multiple PR author filters by @Kitenite in #7400
- fix(desktop): open agent browsers without switching workspaces by @Kitenite in #7401
- fix(desktop): truncate terminal titles in narrow panes by @Kitenite in #7404
- feat(marketing): refresh careers page layout and company facts by @Kitenite in #7405
- fix(desktop): preserve remembered workspace creation agent by @Kitenite in #7406
- fix(desktop): key dev app profiles by workspace ID by @Kitenite in #7407
- feat(cli): reach cloud sandboxes from the CLI and MCP by @saddlepaddle in #7392
- fix(desktop): clamp negative leaderboard delta after stale standings by @Kitenite in #7412
- fix(host-service): reapply branch prefix after AI/derived autonaming by @Kitenite in #7413
- fix(admin): size dashboard tiles by width ratio, and line up funnel bars by @saddlepaddle in #7424
- fix(terminal): treat a PTY resize as a sync boundary; withhold output from hidden clients by @saddlepaddle in #7423
- fix(desktop): don't revert app language to OS default on reload by @Kitenite in #7425
- fix(desktop): activate a browser pane on click, widen icon hit targets by @Kitenite in #7421
- fix(desktop): don't double the sidebar divider beside the active first tab by @saddlepaddle in #7432
- marketing: Grok Bot and Paseo compare pages, super.engineering refresh by @Kitenite in #7433
- feat(billing): gate automations behind the Pro plan by @Kitenite in #7434
- feat(mobile): over-the-air updates via EAS Update, signed, with workflow lanes by @saddlepaddle in #7439
- fix(desktop): stop opening the leaderboard join dialog on app launch by @saddlepaddle in #7440
- feat(automations): let an automation continue its own agent session by @saddlepaddle in #7411
- fix(integrations): refresh Sentry tokens with the jwt-bearer grant by @saddlepaddle in #7441
- fix(auth): validate the desktop sign-in callback target by @PascalOrdano18 in #7435
- fix(host-service): sanitize every viewer-controlled field in the page-watch prompt by @PascalOrdano18 in #7438
- feat(mobile): version gate and server-driven notices by @saddlepaddle in #7445
- fix(agent-setup): provision bundled skill extras from inside app.asar by @saddlepaddle in #7429
- chore(desktop): drop the code-inspector overlay by @saddlepaddle in #7431
- fix(mobile): embed the update-signing certificate only in preview and production builds by @saddlepaddle in #7451
- feat(admin): net revenue retention tile from Stripe Sigma by @saddlepaddle in #7444
- feat(mobile): restore agent status on the Lock Screen and Dynamic Island by @saddlepaddle in #7452
- feat(cloud): move sandboxes from Blaxel to Vercel by @saddlepaddle in #7408
- feat(desktop): first-class Linux window chrome, menu, quit and packaging by @saddlepaddle in #7428
- fix(panes): activate a pane on any press, including header controls by @saddlepaddle in #7455
- fix(desktop): remember the sidebar Changes view mode across workspaces by @Kitenite in #7453
- fix(auth): always show the Google account picker on sign-in by @saddlepaddle in #7459
- feat(relay,desktop,trpc): presence from the relay, roster never polled by @saddlepaddle in #7442
- fix(mobile): let deploy's build lookups wait for a build already in progress by @saddlepaddle in #7461
- feat(desktop): per-file Stage / Unstage in the v2 Changes sidebar by @Kitenite in #7456
- refactor(mobile): pull-request lane as one script job plus one comment by @saddlepaddle in #7462
- fix(mobile): calmer Lock Screen agent card by @saddlepaddle in #7460
- chore(mobile): publish production updates to everyone, no staged rollout by @saddlepaddle in #7466
- feat(realtime,api,desktop): realtime nudge channel, no more sidebar polling by @saddlepaddle in #7443
- refactor(trpc,desktop,mobile): fold the v2Host router into host by @saddlepaddle in #7468
- feat(desktop): Pages row in Settings > Links — external/internal + split/tab (SUPER-2315, SUPER-2192) by @harshithmullapudi in #7471
- fix(desktop): reject diff hydration when the loaded contents don't match the patch by @Kitenite in #7463
- feat(mobile): terminal PR links open the in-app pull request screen by @saddlepaddle in #7476
- fix(mobile): home composer asks "What do you want to do?" by @saddlepaddle in #7477
- feat: Muse Code and Devin CLI agents, OpenCode sqlite history, OpenCode quota accounts by @Kitenite in #7458
- fix(port-scanner): wait for spawned children before reading their environment in tests by @saddlepaddle in #7478
- fix(mobile): "+N more" outranks "Not updating" in the Lock Screen card by @saddlepaddle in #7479
- fix(pages): comment box polish — selection lock, plain Enter to send, hide resolved pins (SUPER-2252, SUPER-2272, SUPER-2201) by @harshithmullapudi in #7470
- feat(shared,plugins): allow the Google Fonts stylesheet in the page CSP (SUPER-1995) by @harshithmullapudi in #7474
- fix(pages): reveal a page whose frame loaded before hydration by @harshithmullapudi in #7422
- feat(web): "Open in Superset" deep link on the published page header (SUPER-2193) by @harshithmullapudi in #7473
- feat(mobile,api,host-service): keep the Lock Screen agent card current with APNs pushes by @saddlepaddle in #7482
- fix(host-service): agents.run treats archived workspaces as gone, so automation pins self-heal by @sahiljagtap08 in #6784
- fix(shared): handle ST terminator in shell-ready scanner by @DevChiniwala in #7360
- fix(web): answer unauthenticated /api and /trpc with JSON 401, not a 307 redirect by @andyst-dev in #7095
- fix(trpc,marketing): read leaderboard token rollups as strings, not JS numbers by @hairez in #6944
- fix(desktop): Failed OS notification is not Complete by @owieschon in #7294
- fix(cli): mark --host/--local as required in command help by @gautamtayal1 in #7227
- fix(cli): format HTTP 401 responses as expired sessions by @Kitenite in #7484
- fix(agent-setup): use current Vibe hook types by @b0dsim in #7397
- Revert "keep the Lock Screen agent card current with APNs pushes" (#7482) by @saddlepaddle in #7489
- fix(desktop): align IME composition with xterm cell widths by @Kitenite in #7488
- perf(workspace): bound indexing and incrementally refresh git status by @harshithmullapudi in #7420
- style(desktop): polish workspace tabs and terminal chrome by @Kitenite in #7492
- feat(desktop): show workspace context and agent content in notifications by @Kitenite in #7493
- feat(billing): request Pro cancellation feedback after 45 minutes by @Kitenite in #7497
- fix(desktop): widen sidebar group stripes without shifting content by @Kitenite in #7498
- fix(desktop): keep diff controls usable in narrow panes by @Kitenite in #7499
- fix(setup): seed every API env key a worktree .env lacks by @Kitenite in #7487
- feat(desktop): copy GitHub URL from pull request pane header by @Kitenite in #7500
- feat(cloud): reach sandboxes through a gate with a session ticket by @saddlepaddle in #7467
- feat(web): take Pro payments on the web billing page, link the mobile paywall to it by @saddlepaddle in #7502
- fix(mobile): stop a dismissed form sheet from clipping the screen that replaces it by @saddlepaddle in #7501
- feat(desktop): show pull request comments below the description by @Kitenite in #7503
New Contributors
- @PascalOrdano18 made their first contribution in #7435
- @DevChiniwala made their first contribution in #7360
- @hairez made their first contribution in #6944
- @gautamtayal1 made their first contribution in #7227
- @b0dsim made their first contribution in #7397
Full Changelog: desktop-v1.28.0...desktop-v1.29.0