What's Changed
- Add routine placeholders, test run, and chat events on mobile by @nrb-dev in #835
- Make the mobile agent appearance picker faster and more consistent by @nrb-dev in #836
- Redesign the mobile server list and allow reordering by @nrb-dev in #838
- Remove the black area behind mobile screen transitions in dark mode by @nrb-dev in #839
- Show a chat preview when an agent is long-pressed on mobile by @nrb-dev in #840
- Adjust mobile settings sheet design by @nrb-dev in #841
- Open the mobile photo picker fast and crop avatars in the app by @nrb-dev in #842
- Salvage a review the bridge dropped, and name the cause by @NorbertBodziony in #833
- Review on Claude Code with Opus 5.5 by default by @NorbertBodziony in #844
- Generate simple IPC groups from IPC_ENDPOINTS by @NorbertBodziony in #843
- Share the idle thread pool of the ACP and Claude clients by @NorbertBodziony in #845
- Use one navigation-wait helper in the browser backend by @NorbertBodziony in #847
- Generate the server-scoped IPC groups from IPC_ENDPOINTS by @NorbertBodziony in #846
- Bind scoped IPC handlers with scopedHandler and bridge the auth group by @NorbertBodziony in #848
- Bridge the computerUse, browser and servers IPC groups by @NorbertBodziony in #850
- Split the preview mock into per-group modules by @NorbertBodziony in #851
- Backport the rc.9 event delegation fix to @solidjs/web by @NorbertBodziony in #852
- Fix races in provider keys, sign-in, restarts and browser actions by @NorbertBodziony in #849
- Split the browser CDP engine and host helpers into modules by @NorbertBodziony in #864
- Move provider diagnostics and model catalog helpers out of provider-runtime.ts by @NorbertBodziony in #866
- Close the live browser view when its screencast cannot start again by @NorbertBodziony in #865
- Queue release runs in push order by @NorbertBodziony in #853
- Turn on verbatimModuleSyntax for the Node and web projects by @NorbertBodziony in #854
- Enforce the contracts and account server import direction with Biome by @NorbertBodziony in #855
- Gate install scripts and new package versions by @NorbertBodziony in #856
- Add a knip gate for unused files and dependencies by @NorbertBodziony in #857
- Reject image files outside the product asset directories by @NorbertBodziony in #858
- Verify the built preload against IPC_ENDPOINTS by @NorbertBodziony in #859
- Add a lint ratchet and hold noFloatingPromises to its baseline by @NorbertBodziony in #860
- Wait for queue events instead of polling the queue in backend tests by @NorbertBodziony in #861
- Cap SQL statements and payload bytes for one conversation by @NorbertBodziony in #862
- Write a local trace of IPC calls and provider turns by @NorbertBodziony in #863
- Retry an offline remote host each 5 minutes while the app has focus by @NorbertBodziony in #867
- Send the app origin with desktop host analytics by @NorbertBodziony in #877
- Add a dry-run mode to the release workflow by @NorbertBodziony in #874
- Gate unused exports and types in knip:check by @NorbertBodziony in #872
- Hold exactOptionalPropertyTypes errors to a per-file baseline by @NorbertBodziony in #873
- Send sign-in and invitation emails as HTML with a plain-text part by @NorbertBodziony in #878
- Stop auto-replies to sign-in and invitation emails by @NorbertBodziony in #879
- Upload the Cloudflare preview from a trusted workflow_run job by @NorbertBodziony in #875
- Measure Team API conversation bytes and compare transfer budgets with main by @NorbertBodziony in #876
- Retry the macOS build when hdiutil cannot create the DMG by @NorbertBodziony in #880
- Skip unaffected CI lanes on pull requests and gate on one required check by @NorbertBodziony in #883
- release: prepare v0.21.2 by @NorbertBodziony in #881
Full Changelog: v0.21.1...v0.21.2