What's Changed
- fix(email): stop habit-drip triggering on a per-workspace event by @saddlepaddle in #6747
- chore(desktop): bump version to 1.24.2 by @saddlepaddle in #6748
- perf(auth): collapse the session lookup from seven round trips to one by @saddlepaddle in #6743
- Agent-readiness upgrades: get superset.sh to 100 on is-agentic.com by @Kitenite in #6750
- feat(desktop): grow the new-workspace screen composer with content, symmetric width resize by @Kitenite in #6746
- fix(desktop): resolve the dev app's workspace title from host.db by @Kitenite in #6751
- feat(desktop): multi-window with per-window organization context (#4018) by @ashbrener in #5337
- fix(desktop): collapse the Cloud sidebar section's rows like every other section by @Kitenite in #6754
- fix(api): automation pruner passed its provider list as one bind parameter by @saddlepaddle in #6756
- perf(ingest): split webhook bodies into a day-partitioned table by @saddlepaddle in #6749
- fix(api): read the DEFAULT partition count before maintenance, not after by @saddlepaddle in #6757
- chore(ingest): drop webhook_events.payload and retire its pruner by @saddlepaddle in #6758
- feat(marketplace): add Tokyo Night Blackout theme by @talarczykco in #6095
- chore(mobile): align App Store listing with ASC, drop external billing link, add release runbook by @Kitenite in #6760
- fix(marketing): improve Tokyo Night comment & muted-text contrast by @hubertmine in #5799
- feat(marketplace): add Obsidian theme by @joaobnobre in #6638
- fix(api): keep the webhook body out of a failed ingest write's error by @saddlepaddle in #6764
- docs(skills): concise feedback format and align plugin skills with Agent Skills guidance by @Kitenite in #6762
- feat(mobile): rewrite the composer as a native iOS component by @saddlepaddle in #6761
- fix(api): run the api test suite in CI and repair the slack interactions test by @saddlepaddle in #6770
- fix(host-service): name the phase in a worker task's timeout error by @saddlepaddle in #6771
- feat(ingest): bound row growth on webhook_events by @saddlepaddle in #6763
- feat(mobile): native composer on the terminal, and match the reference's chrome by @saddlepaddle in #6773
- fix(desktop): equalize pane splits actually moves v2 panes by @saddlepaddle in #6776
- fix(mobile): paste into the composer, and keep a draft per surface by @saddlepaddle in #6778
- fix(desktop): one 1px border between the panes and the sidebar by @0x962 in #6777
- fix(mobile): refetch host agent lists on focus and land on the new terminal tab by @saddlepaddle in #6786
- fix(desktop): don't abort the login import on a cookie row that isn't a buffer by @saddlepaddle in #6788
- fix(desktop): stop a folder rename from throwing out of the Files tab fs handler by @saddlepaddle in #6789
- fix(desktop): survive losing the auth-token lock mid-write by @saddlepaddle in #6790
- fix(workspace-fs): stop reporting an un-stattable path as a file by @saddlepaddle in #6793
- test(desktop): pin that a reclaimed auth-token lock cannot crash the write by @saddlepaddle in #6792
- feat(ingest): accept Hookdeck-forwarded deliveries, and reject stale inbound Linear events by @saddlepaddle in #6799
- feat(mobile): wire every pull request card action by @saddlepaddle in #6796
- fix(host-service): drain check and thread pagination before grading a PR by @saddlepaddle in #6797
- feat(host-service): remember every PR a workspace links, and serve it to mobile by @saddlepaddle in #6798
- feat: introduce pages v1 by @saddlepaddle in #6806
- fix(mobile): honest agent-picker states, and a checks filter with room to breathe by @saddlepaddle in #6808
- feat(shared): add Kiro CLI as a built-in terminal agent by @Kitenite in #6765
- feat(shared): add Antigravity CLI (agy) as a built-in terminal agent by @Kitenite in #6767
- feat(shared): add fx by Vercel as a built-in terminal agent by @Kitenite in #6768
- feat(shared): add Hermes as a built-in terminal agent by @Kitenite in #6766
- fix(cli): await the stdout flush so large --json output isn't truncated at exit by @Kitenite in #6809
- fix(desktop): make the Changes pane header "Open file" clickable and restore file drag-and-drop by @Kitenite in #6817
- fix(desktop): restore active pane border by @Kitenite in #6818
- fix(marketing): prevent hero demo clipping at mid-size viewports by @Kitenite in #6820
- feat(mobile): stop autocapture reading content, and give mobile an event vocabulary by @saddlepaddle in #6807
- fix(desktop): keep workspace name from truncating in v2 list rows by @AviPeltz in #6787
- docs: weekly changelog 2026-08-23 by @Kitenite in #6816
- fix(desktop): normalise terminal theme colours before handing them to xterm by @saddlepaddle in #6823
- feat(marketing): add IDE and ADE guides by @Kitenite in #6826
- fix(host-service): record the descriptor table when git cannot be spawned by @saddlepaddle in #6828
- feat(marketing): email download links to mobile visitors by @Kitenite in #6827
- fix(desktop): redact home paths from updater errors sent to Sentry by @saddlepaddle in #6824
- fix(agent-setup): bypass Codex hook trust in the wrapper so Stop events reach Superset by @Kitenite in #6830
- fix(mobile): give the terminal screen its back swipe back by @saddlepaddle in #6831
- fix(desktop): add hover marquee-scroll to v1 and v2 workspace sidebar names by @AviPeltz in #6825
- fix(mobile): give the file and pull request screens their back swipe back by @saddlepaddle in #6835
- feat(desktop): equalize adjacent panes on border double click by @Kitenite in #6834
- fix(mobile): let unpaid accounts reach the organizations sheet by @saddlepaddle in #6837
- feat(discord-triage): bridge Discord reports into Plain over email, rebrand the bot by @Kitenite in #6759
- feat(api): read-only support account lookup endpoint by @Kitenite in #6836
- Enable editing in the diff pane by @Kitenite in #6840
- fix(ingest): let the retention loop run more than one batch by @saddlepaddle in #6842
- feat(mobile): add a scroll-to-bottom button to the terminal by @saddlepaddle in #6844
- feat(ui): add a warning color token by @saddlepaddle in #6838
- feat(desktop): redesign PR detail header, fix dark-mode colors, and rebuild the merge dropdown by @AviPeltz in #6843
- feat(desktop): add per-skill disable toggle to the Plugins page by @AviPeltz in #6833
- fix(billing): surface what a failed payment costs, and stop offering annual to monthly subscribers by @saddlepaddle in #6814
- fix(desktop): keep submit prompt dialog open by @ruangustavo in #6708
- test(agent-setup): harden disabled-skills.test.ts against cross-file mock pollution by @AviPeltz in #6847
- feat(marketing): position Superset as agent-independent orchestration by @Kitenite in #6841
- fix(desktop): gate the Superset chat agent choice behind the chat-v3 flag by @saddlepaddle in #6852
- feat(mobile): add mark as unread to the workspace row menu by @saddlepaddle in #6854
- feat(desktop): add real in-app editing to the skill preview modal by @AviPeltz in #6853
- feat(desktop): render the PR Code tab as a real diff viewer with a file tree by @AviPeltz in #6849
- feat(desktop): first-class Oh My Pi (OMP) support — registration + model/plan controls by @Kitenite in #6851
- feat(marketing): add Factory 2026 forecast page by @Kitenite in #6850
- feat(api): auto-fulfill YC Bookface deal redemptions via webhook by @Kitenite in #6859
- fix: page cmd+click should open page pane, also responsiveness of the… by @harshithmullapudi in #6829
- fix(api): write the subscription row when granting a YC deal by @Kitenite in #6860
- fix(host-service): pin git's message locale so environmental failures classify by @saddlepaddle in #6863
- fix(marketing): ignore WebMCP tool registrations the browser rejects async by @saddlepaddle in #6861
- fix(desktop): back-pressure PTY writes on the terminal parser's drain signal by @saddlepaddle in #6862
- fix(desktop): contain wide markdown tables by @Kitenite in #6865
- Add email privacy toggle to usage view by @Kitenite in #6866
- feat(mobile): replace the empty no-host home with a Connect a device guide by @saddlepaddle in #6864
- feat(mobile,host-service): slash-command suggestions in the terminal composer by @saddlepaddle in #6855
- feat(desktop): add terminal ID copy and soften pane headers by @Kitenite in #6867
- fix(desktop): keep Sessions expanded when Projects collapses by @Kitenite in #6871
- fix(host-service): pre-trust session folders so agent CLIs skip the trust dialog by @Kitenite in #6870
- Polish the PR Code tab diff viewer by @AviPeltz in #6869
- fix(themes): readable syntax comments when brightBlack is a surface tone by @saddlepaddle in #6873
- feat(terminal): size the PTY to the smallest visible client by @saddlepaddle in #6872
- fix(desktop): stop one WebGL failure from latching all terminals onto the DOM renderer by @Kitenite in #6874
- fix(desktop): light theme markdown Preview code blocks were illegible (github-dark.css imported unconditionally) by @Kitenite in #6876
- fix(desktop): API key revoke via org-scoped tRPC mutation with optimistic updates by @saddlepaddle in #6877
- feat: public agent usage leaderboard by @harshithmullapudi in #6875
- PR view follow-ups: markdown, checks, and responsive layout by @AviPeltz in #6880
- docs: split Pull Requests into its own page, refresh Tasks doc and screenshots by @AviPeltz in #6884
- feat(desktop): redesign browser overflow menu, always-visible Chrome import banner by @AviPeltz in #6878
New Contributors
- @ashbrener made their first contribution in #5337
- @talarczykco made their first contribution in #6095
- @hubertmine made their first contribution in #5799
- @joaobnobre made their first contribution in #6638
- @0x962 made their first contribution in #6777
- @harshithmullapudi made their first contribution in #6829
Full Changelog: desktop-v1.24.2...desktop-v1.25.0