What's Changed
- feat(desktop): surface a host unreachable screen for v2 workspaces by @saddlepaddle in #6476
- feat(desktop,host-service): delete legacy mastra chat in favor of chat-v3 by @saddlepaddle in #6461
- feat(desktop): rename Security settings tab to Remote Workspaces + relay toggle on local host page by @Kitenite in #6481
- chore(desktop): bump version to 1.22.0 by @Kitenite in #6477
- fix(desktop): reformat automations relay-offline copy by @saddlepaddle in #6483
- fix(mobile): apply saved home filters before the first render by @saddlepaddle in #6484
- feat(mobile): unify the terminal and home composers by @saddlepaddle in #6482
- fix(trpc,api): make automation run dedupe compatible with a partial unique index by @saddlepaddle in #6485
- chore(trpc,mcp,cli,sdk,desktop): remove dead mcpScope plumbing by @saddlepaddle in #6486
- feat(desktop): add "All devices" option to the Workspaces device filter by @Kitenite in #6478
- fix(desktop): unmute the star nag on a real unstar, stop polling on focus by @AviPeltz in #6490
- feat(marketing): add /mcp-install page for connecting AI agents to Superset by @AviPeltz in #6493
- fix(desktop): default missing PR checks to an empty array at the host boundary by @saddlepaddle in #6494
- feat(db): add automation trigger and event tables by @saddlepaddle in #6487
- fix(host-service): classify simple-git's missing-directory construct error as a typed NOT_FOUND by @saddlepaddle in #6495
- fix(desktop): carry a renderer heap-growth trajectory on the Sentry scope by @saddlepaddle in #6496
- revert(desktop): drop the renderer heap-trajectory Sentry instrumentation by @saddlepaddle in #6499
- fix(desktop): ignore Codex subagent completion notifications by @justinxu421 in #6464
- fix(host-service): allow empty initialCommand when creating terminal sessions by @Kitenite in #6502
- fix(api): advance the schedule trigger alongside the automation by @saddlepaddle in #6501
- fix(host-service): provision agent hooks and shell env on headless CLI hosts by @Kitenite in #6479
- fix(desktop): resolve agent hook endpoint at call time so host-service restarts don't strand running agents by @Kitenite in #6480
- feat(api,trpc): dispatch automations from triggers by @saddlepaddle in #6507
- feat(mobile): reorder terminal sessions from a sessions sheet, persisted per workspace by @saddlepaddle in #6488
- feat(desktop): rework Workspaces page into a status-grouped triage list by @Kitenite in #6506
- feat(desktop): configurable folder-link clicks with open-in-Finder binding by @Kitenite in #6504
- refactor(trpc,desktop): read automation schedules from triggers by @saddlepaddle in #6509
- refactor(api,trpc,db): stop writing the dead schedule columns by @saddlepaddle in #6511
- refactor(db): drop the dead automation schedule columns by @saddlepaddle in #6513
- feat(mobile): group home by project and name the scope on screen by @saddlepaddle in #6512
- feat(api,db): expire raw webhook payloads after 14 days by @saddlepaddle in #6517
- feat(desktop): make sidebar groups reorderable anywhere in the project list by @Kitenite in #6514
- fix(desktop): resolve workspaces before declaring "not found" + stop host-service manifest steals by @Kitenite in #6508
- docs: weekly changelog 2026-08-16 by @Kitenite in #6528
- fix(trpc,db): tombstone deleted users instead of cascading their org's data by @saddlepaddle in #6529
- fix(host-service): discard untracked and staged directories recursively by @saddlepaddle in #6533
- fix(mobile): hide project sections with no workspaces by @saddlepaddle in #6516
- fix(mobile): submit terminal messages through terminal.send, add a newline button by @saddlepaddle in #6527
- feat(shared,trpc): save triggers as a set with the automation by @saddlepaddle in #6534
- fix(mobile): drop third-party marks from App Store keywords by @saddlepaddle in #6536
- feat(desktop): richer new-workspace templates + labeled model/effort pills by @Kitenite in #6537
- feat(api): record GitHub deliveries as automation events by @saddlepaddle in #6538
- feat(desktop): let users dismiss the new-workspace sample prompts by @Kitenite in #6540
- feat: fire automations from GitHub events by @saddlepaddle in #6539
- feat(desktop,host-service): Usage tab — per-account quota meters and token-cost analytics by @Kitenite in #6530
- fix(mobile): move the newline button into the quick-key row by @saddlepaddle in #6543
- feat(desktop,trpc,host-service): cloud workspaces backed by Blaxel sandboxes by @saddlepaddle in #6505
- fix(relay,discord-triage): align turbo on 2.10.9 so pruned builds resolve by @saddlepaddle in #6545
- chore: drop the expired release-age exclusions by @saddlepaddle in #6547
- feat: one identity table for every integration by @saddlepaddle in #6546
- chore: refresh the root lockfile and pin the tiptap family by @saddlepaddle in #6548
- chore(db): drop users__slack_users by @saddlepaddle in #6549
- fix(desktop): deliver first click on unfocused window to the renderer by @Kitenite in #6550
- feat: drive the in-app browser pane from the CLI + raw CDP by @Kitenite in #6519
- fix: resolve Dependabot alerts for download-artifact and ws by @AviPeltz in #6554
- feat(desktop): three-arm new-workspace prompt form-factor experiment by @saddlepaddle in #6556
- perf(sandbox): bake the repo and schema, let the sandbox start itself by @saddlepaddle in #6555
- fix(desktop): stop new-workspace suggestions overlapping the heading by @saddlepaddle in #6557
- feat(email): ship lifecycle emails to every signup, retire the A/B, make unsubscribe work by @saddlepaddle in #6535
- fix(desktop): auto-place session workspaces in the sidebar by @Kitenite in #6558
- feat(desktop): pin-visibility filter on the workspaces page by @Kitenite in #6561
- feat(desktop,trpc): make creating a cloud workspace feel immediate by @saddlepaddle in #6566
- docs(sandbox): file the provisioning-row reaper as an open task by @saddlepaddle in #6559
- docs(sandbox): point both sandbox docs at the Linear project by @saddlepaddle in #6560
- feat(desktop,trpc): trigger editor by @saddlepaddle in #6542
- feat(desktop): per-lane visibility toggles on the workspaces board by @Kitenite in #6568
- fix(desktop): give the Add Trigger button the same inset as the trigger rows by @saddlepaddle in #6569
- fix(desktop): stop holding a socket to every cloud workspace by @saddlepaddle in #6570
- refactor(desktop,shared,db): make trigger providers additive by @saddlepaddle in #6571
- feat(desktop): Usage tab sections — pill toggle + full-page machine resources by @Kitenite in #6567
- docs(shared): describe the prompt-cards flag's three arms by @saddlepaddle in #6573
- feat(mobile): add Sentry, enable PostHog session replay by @saddlepaddle in #6574
- feat(mobile): pull request screen with merge, checks, reviewers and description by @saddlepaddle in #6491
- feat(desktop): show GitHub star pill on the new workspace screen by @AviPeltz in #6575
- fix(desktop): match light theme sidebar, background, and muted text to design spec by @AviPeltz in #6577
- feat(mobile): record 100% of mobile session replays by @saddlepaddle in #6578
- feat(desktop,host-service): auto-resume interrupted agent sessions idempotently by @Kitenite in #6572
- fix(host-service): resync terminal modes on attach and rebuild the mode tracker on adoption by @Kitenite in #6582
- fix(host-service,pty-daemon): keep tests out of the real daemon namespace and protect caller ancestry from group kills by @Kitenite in #6583
- feat(db): add enum values for every planned trigger provider up front by @saddlepaddle in #6581
- feat(mobile): "Rate Superset" settings row and App Store rating prompt after positive moments by @saddlepaddle in #6588
- refactor(desktop,shared,api): consolidate the three GitHub-shaped seam surfaces by @saddlepaddle in #6594
- fix(mobile): drop the newline button from the home composer's bottom row by @saddlepaddle in #6600
- feat(shared,api): identityProvider and automationId scope on the shared dispatcher by @saddlepaddle in #6599
- feat(api): triggerId narrowing on the shared dispatcher by @saddlepaddle in #6601
- fix(mobile): make the branch / line-count separator on the home list legible by @saddlepaddle in #6602
- fix(mobile): workspace row long-press opens only the menu; delete shows progress and tolerates teardown failures by @saddlepaddle in #6598
- feat(automations): make the webhook trigger fire — inbound bearer route, token generation, row UI by @saddlepaddle in #6586
- feat(automations): Notion trigger provider by @saddlepaddle in #6591
- feat(automations): Linear trigger provider by @saddlepaddle in #6589
- feat(db): per-user Google connections — partial unique indexes on integration_connections by @saddlepaddle in #6603
- feat(desktop,api,shared,trpc): Slack trigger provider by @saddlepaddle in #6587
- feat(automations): Circleback trigger provider by @saddlepaddle in #6597
- feat(automations): Microsoft Teams trigger provider by @saddlepaddle in #6592
- feat(automations): Sentry trigger provider with internal-integration connection by @saddlepaddle in #6593
- feat(automations): Google Calendar + Gmail trigger providers on one Google connection by @saddlepaddle in #6595
- marketing: content updates by @Kitenite in #6579
- feat(desktop,host-service): provider account switching in the Usage tab by @Kitenite in #6585
- feat(marketing): rebuild About page around mission, story, and timeline by @Kitenite in #6607
- marketing: tighten About page hero, cut timeline and principles, founder titles by @Kitenite in #6608
- fix(desktop): close host-service reconnection gap after a restart by @AviPeltz in #6604
- fix(desktop): use a skip-forward glyph for skipped CI checks by @AviPeltz in #6612
- fix(host-service): resolve default-account.ts imports under node --test by @AviPeltz in #6614
- feat(desktop): gate trigger providers behind a payload-driven feature flag by @saddlepaddle in #6615
- fix(cli): route desktop terminals to workspace organization by @Kitenite in #6295
- fix(api): reject GitHub webhook deliveries whose signature does not match by @saddlepaddle in #6619
- fix(desktop,shared): stop calling an already-run schedule invalid by @saddlepaddle in #6618
- fix(api,shared): infer GitHub trigger events from the payload, not the wire event by @saddlepaddle in #6620
- fix(api,trpc): automation run dedup and failure handling for schedule and event shapes by @saddlepaddle in #6621
- fix(api): harden inbound automation webhook routes by @saddlepaddle in #6622
- fix(api): harden Linear webhook dedupe, verification, and failure isolation by @saddlepaddle in #6623
- fix(api,shared,trpc): harden Sentry webhook and install callback by @saddlepaddle in #6624
- fix(api,shared,desktop): close Slack trigger audit findings by @saddlepaddle in #6625
- refactor(api): one shared recordAutomationEvent for every trigger provider by @saddlepaddle in #6626
- fix(desktop): self-heal host-service queries stuck failed after a restart by @AviPeltz in #6617
- feat(trpc): hand the triggering event to the agent as trigger context by @saddlepaddle in #6627
- feat(desktop): drop Me from the actor picker and let Google Calendar attendees be typed by @saddlepaddle in #6629
- feat(trpc,desktop): Slack and Linear people pickers from provider directories by @saddlepaddle in #6630
- feat(trpc,desktop): directory-backed people pickers for GitHub, Teams and Notion triggers by @saddlepaddle in #6631
- fix(desktop): treat cancelled CI checks as failure in the PR action header by @AviPeltz in #6613
- fix(desktop): create new folders and files reliably in the Files tab by @distroinfinity in #6475
- fix(host-service): let destroy complete when the project repo is gone from disk by @saddlepaddle in #6634
New Contributors
- @justinxu421 made their first contribution in #6464
Full Changelog: desktop-v1.22.0...desktop-v1.23.0