What's Changed
- Fail the parity test when a shipped migration changes by @NorbertBodziony in #768
- Share one atomic JSON write helper by @NorbertBodziony in #770
- Share withTimeout and sha256File by @NorbertBodziony in #771
- Do not follow a link when the storage scan measures a stored file by @NorbertBodziony in #765
- Take duplicate hosted-site and browser types from contracts by @NorbertBodziony in #772
- Reject unused locals and parameters in site-router and remote/api by @NorbertBodziony in #773
- Give IPC endpoints payload and result types by @NorbertBodziony in #779
- Route renderer bridge calls through domain ports by @NorbertBodziony in #781
- Turn on noUncheckedIndexedAccess in the leaf packages by @NorbertBodziony in #786
- Split agent-service.ts into controllers by @NorbertBodziony in #788
- Turn on noUncheckedIndexedAccess in team-client, auth-api and mobile by @NorbertBodziony in #790
- Turn on noUncheckedIndexedAccess in the renderer, shared UI and stories by @NorbertBodziony in #792
- Keep unstaged edits out of commits and allow one project typecheck by @NorbertBodziony in #791
- Run typecheck scripts with TypeScript 7, not TypeScript 6 by @NorbertBodziony in #793
- Correct stale agent docs and remove the shadcn-to-zaidan skill by @NorbertBodziony in #795
- Turn on noUncheckedIndexedAccess in the base tsconfig by @NorbertBodziony in #794
- Turn on noImplicitOverride and noFallthroughCasesInSwitch by @NorbertBodziony in #796
- Share copied IPC, Team API and helper code by @NorbertBodziony in #797
- Wait for the host sync before test cleanup by @NorbertBodziony in #798
- Type all IPC endpoints and decode every value from main by @NorbertBodziony in #799
- Put the provider update button in line with the toast text by @Sniezka1927 in #789
- Move preload decoders into domain files and add subscribe helpers by @NorbertBodziony in #801
- Keep IPC wire values only in IPC_ENDPOINTS by @NorbertBodziony in #802
- Keep pending requests that a partial runtime snapshot leaves out by @NorbertBodziony in #804
- Report every cleared prompt and approval, and keep other providers' approvals on a provider exit by @NorbertBodziony in #805
- Expire the requests of a provider client that the runtime stops by @NorbertBodziony in #806
- Fix screen radius, adjust colors by @nrb-dev in #807
- Cancel the takeovers of a stopped provider client and ignore a refresh answer from a replaced client by @NorbertBodziony in #808
- Reduce RAM and CPU use, and add a bench to measure it by @NorbertBodziony in #800
- Add live voice dictation to the mobile chat composer by @nrb-dev in #810
- Add Skills and Files to the mobile agent info by @nrb-dev in #813
- Add Delete to the channel row menu on mobile by @nrb-dev in #814
- Reduce re-renders and frame drops in the mobile app by @nrb-dev in #815
- Import agents from Grok Bot in Server settings by @Sniezka1927 in #774
- Ignore IME keys in the composer keydown handler by @Sniezka1927 in #812
- Add AI agents guide and OpenBot vs GrokBot article by @tomek-neony in #816
- Release v0.21.0: Grok Bot import, mobile dictation, lower RAM and CPU use by @NorbertBodziony in #818
Full Changelog: v0.20.1...v0.21.0