What's Changed
- feat: mark text-only models in the bot's model picker by @steven-forresttechnologies in #1858
- feat: show a New divider above the replies you haven't seen by @ald3b in #1789
- fix(mobile): keep the chat composer above the keyboard before iOS 26 by @elie222 in #1862
- Balance mini sidebar avatar proportions by @elie222 in #1879
- fix(web): keep the computer view's buttons clickable in the desktop app by @jzelez in #1881
- Add monthly model credits and auditable usage billing by @elie222 in #1878
- fix(adapters): keep older tool results whole while they fit the context budget by @elie222 in #1883
- fix(web): keep the sign-in page mounted while a signed-out session refetches by @stmoerman in #1887
- Mobile: get ready for iPhone Duo by @elie222 in #1882
- chore(mobile): bump expo-notifications to 57.0.24 by @elie222 in #1889
- [verified] fix(slack): hydrate incomplete mention attachments by @guilhermesan in #1888
- Mobile: only show Live update settings where Android has that screen by @elie222 in #1890
- feat(web,mobile): group bot settings into clear sections by @elie222 in #1876
- fix(db): read only the newest message for cross-space bot previews by @hphproton in #1894
- fix(mobile): re-arm the call microphone when speech recognition gives up by @elie222 in #1895
- ci(deploy): pull the CI-built image instead of building on the production host by @elie222 in #1892
- fix(adapters): recover an empty idle model stream once by @damballa212 in #1898
- docs: focus README on Rakazo and add acknowledgments by @elie222 in #1900
- fix(routines): read structured and multipart MCP watch results by @damballa212 in #1903
- Upgrade Stripe billing to Endive by @elie222 in #1901
- docs: give README acknowledgments more visibility by @elie222 in #1904
- fix(adapters): resume paused runs with their own turn's tool results by @elie222 in #1899
- Refresh stale computer status when opening the desktop by @elie222 in #1907
- Default new monthly credit selections to $20 by @elie222 in #1908
- feat(mobile): unread count on the app icon and quieter notifications by @ald3b in #1896
- fix(billing): create the model credit account safely under concurrent requests by @elie222 in #1913
- Restore shadcn select styling and padded menus by @elie222 in #1911
- Remove app-level deployment administrators by @elie222 in #1915
- feat: jump pills for unread chats scrolled out of view in the inbox by @ald3b in #1897
- fix: fail runs with no model credentials before calling the provider by @elie222 in #1914
- Verify OpenRouter credentials before connecting or testing by @elie222 in #1910
- Ship the host audit trail to an optional off-host sink by @elie222 in #1919
- docs: add Simplified Chinese README and update supported languages by @earsonlau in #1514
- feat(web): installable, offline-tolerant PWA by @paintenzero in #1566
- fix: settle helpers that were still working when a run paused by @elie222 in #1920
- fix(db): limit team chat previews and replay run lookups in SQL by @hphproton in #1921
- fix(db): index external messages for the team-chat bot-sender lookup by @hphproton in #1922
- fix(mcp): request offline_access so OAuth servers issue a refresh token by @steven-forresttechnologies in #1923
- Use native Material segmented buttons on Android by @elie222 in #1835
- fix: show working bots and let their own chats stop delegated runs by @elie222 in #1685
- fix: keep a bot's relay of a delegated result in the chat by @alexurpi in #1891
- feat(infra): send a shipper heartbeat so a quiet host can't look like a dead one by @elie222 in #1934
- fix(mobile): keep the archived list below its header by @ald3b in #1927
- fix(mobile): line up the Archived row with the section headers by @ald3b in #1928
- fix(mobile): keep the archived Restore swipe button readable by @ald3b in #1929
- feat: mark a message as unread from its menu by @ald3b in #1933
- feat(mobile): play authored motion on busy bot avatars and in the chat by @ald3b in #1926
- feat(mobile): open group settings from the group chat's title by @ald3b in #1932
- fix(mobile): longer header fade and softer title pill outline by @elie222 in #1877
- feat(models): send custom headers on OpenAI-compatible connections by @rjdotdev in #1771
- Keep bot computer homes in encrypted S3-compatible object storage by @elie222 in #1917
- fix(mcp): warn when a server's OAuth endpoint fails instead of reporting an error by @elie222 in #1940
- Add password visibility toggle to mobile signup and sign-in by @elie222 in #1941
- feat: remove the Robot avatar style by @ald3b in #1931
- Stop reporting dropped connections as client errors by @elie222 in #1944
- Stop reporting provider timeouts and rejected model keys as server errors by @elie222 in #1946
- fix(boat): stream large workspace exports and stop failing runs on checkpoint timeouts by @elie222 in #1948
- fix: give new bots the shapes and colours the user's other bots use least by @ald3b in #1930
- Remove loading text flashes and use existing progress indicators by @elie222 in #1945
- fix(web): keep recent builds' chunks available after a deploy by @elie222 in #1947
- fix: keep interval routines on a fixed gap across calendar boundaries by @elie222 in #1950
- fix: retry or downgrade recurring production errors and title database errors by @elie222 in #1949
- Center the artifact preview loading spinner by @elie222 in #1951
- fix(observability): name the provider and model on run.failed logs by @elie222 in #1952
- fix(mobile): report stalled startup and unblock notification restoration by @elie222 in #1953
- feat(boat): start new computers from a prebuilt desktop snapshot by @elie222 in #1955
- Validate Google and DeepSeek keys before saving by @elie222 in #1954
- Make ChatGPT and Claude subscriptions obvious when bringing your own model by @elie222 in #1942
- Give your messages the bot's color and show what it's doing by @elie222 in #1959
- Reserve chat worker capacity from background jobs by @elie222 in #1960
- feat(adapters): add Ollama Cloud as a built-in model provider by @steven-forresttechnologies in #1924
- Run Compose Postgres on 18 with a verified upgrade from 16 by @elie222 in #1912
- fix(mcp): send OAuth refresh notifications after the lock transaction by @jfr956 in #1963
- fix(mobile): keep a send rejected with 409 or 426 retryable by @jfr956 in #1968
- fix(adapters): keep remember when a memory provider is connected by @jfr956 in #1965
- Cancel desktop computer response reads promptly by @elie222 in #1958
- Recover provider request limits and preserve tool history by @elie222 in #1957
- fix(db): bound latest bot roster runs per thread by @rjdotdev in #1936
- Collect account routing for Cloudflare Workers AI connections by @elie222 in #1956
- Close integration authorization popups after OAuth by @elie222 in #1974
- feat: ask new users an optional signup survey by @elie222 in #1916
- fix(web): preserve chart card width inside transcript bubbles by @rjdotdev in #1937
- refactor(adapters): use Lark's official SDK, load only when configured by @elie222 in #1938
- fix: name overloaded, too-long and dropped-connection run errors by @jfr956 in #1969
- Release queue slots while agents wait on models and tools by @elie222 in #1975
- Remove brittle test assertions by @elie222 in #1977
- Clarify model connection checks and space connection actions by @elie222 in #1978
- feat(computer): optional Brave browser in the computer image by @Praneel7015 in #1964
- Prefer familiar app logos in the footer by @elie222 in #1984
- Use white text on colored chat bubbles by @elie222 in #1983
- Flatten bot lists and allow management of space peers by @elie222 in #1985
- Dispatch agent runs directly and measure response latency by @elie222 in #1987
- Block cross-space bot communication by default by @elie222 in #1943
- Default new model connections to Luna and Haiku by @elie222 in #1988
- fix(web): resize and compress large images before upload by @elie222 in #1972
- Schedule agent-created routines in the user's timezone by @elie222 in #1994
- Soften composer focus border and use primary send button by @elie222 in #1992
- fix: fold helper cards in the chat on web and mobile by @jzelez in #1973
- Let the space model reach every bot and name subscriptions plainly by @SmelterLabs in #1989
- fix(mobile): scroll to a just-sent message by @renatosneves in #1979
- feat(mobile): drop files into a chat on Android by @renatosneves in #1981
- feat(web): give onboarding steps and app overlays their own URLs by @elie222 in #1986
- Keep busy runs queued and honor balance-error backups by @elie222 in #1998
- fix(web): use the shared padded select for the survey's team size by @elie222 in #1997
- Fix native recovery sizing and model settings menus by @elie222 in #1982
- Add a Claude Duet comparison page and blog post by @elie222 in #2000
- Prepare website PostHog SDK for a reverse proxy by @elie222 in #2001
- ci: publish mobile updates against the last published update by @elie222 in #1999
- fix(web): make hover and selected states visible on every surface by @elie222 in #2003
- fix(ui-web): show the command menu highlight in dark mode by @elie222 in #2002
- Explain when model backups cannot recover a failed run by @elie222 in #1993
- fix(mobile): show a message's text alongside its helper card by @elie222 in #1995
- List Claude Duet before Hark Pro by @elie222 in #2005
- feat(web): open the create picker with Cmd/Ctrl-N by @elie222 in #2004
- feat(www): add a Japanese homepage and README by @elie222 in #2010
- feat(web, mobile): add Japanese (ja) UI locale by @elie222 in #2011
- New bots greet you and ask what they are for by @elie222 in #2008
- fix(web): pick a voice provider from a select instead of a flashing list by @elie222 in #2013
- feat(mobile): double tap a message to react with a thumbs up by @renatosneves in #1980
- fix(adapters): wait, then resume from Boat's snapshot before replacing a sandbox by @elie222 in #2007
- fix: log user-config and model-output run failures as warnings by @elie222 in #2012
- feat(settings): let people edit their account name by @elie222 in #1604
- Hide self-hosted speech when custom endpoints are disabled by @elie222 in #2014
- List Japanese in the README language sections by @elie222 in #2015
- Create bots from a centered dialog with a live avatar preview by @elie222 in #2009
- Keep chat dispatch responsive and coalesce overdue timer work by @elie222 in #2006
- Share encrypted push registrations and artifact storage by @elie222 in #1990
- Fix approval card reaction toolbar alignment by @elie222 in #2016
- Say when a model server cannot be reached by @elie222 in #2019
- Keep an unbilled computer awake while a takeover request is fresh by @elie222 in #2017
- Classify exhausted backup chains and provider limits as user-side failures by @elie222 in #2020
- Sign the first Gemini function call of every replayed step by @elie222 in #2024
- Tell late routine catch-up runs their scheduled time by @elie222 in #2018
- Keep sends, bot deletion, secret answers, and boots out of error reports by @elie222 in #2026
- fix: estimate context tokens instead of counting bytes by @elie222 in #2031
- Normalize model requests that compatible providers reject by @elie222 in #2030
- Resume the approved call when parallel tool calls need approval by @elie222 in #2029
- fix(deps): override dompurify to 3.4.17 by @FredrikZeiner in #2033
- Limit generated plot tick counts by @elie222 in #2028
- fix(mobile): bind native passkeys to the selected server by @elie222 in #2021
- Fix crash-report email-redaction denial of service by @elie222 in #2022
- fix: enforce metadata policy for connector IP literals by @elie222 in #2023
- Isolate model catalog update artifacts and caches by @elie222 in #2027
- Log sandbox rate limits as expected RPC failures by @elie222 in #2041
- feat(android): localize notifications and add permission onboarding by @renatosneves in #1806
- feat(android): keep voice calls alive with a foreground service by @renatosneves in #1807
- Fix runtime recovery and self-hosted backup safety by @luinbytes in #1838
- fix(mobile): float the chat header buttons over the chat on iOS by @elie222 in #2044
- Cap chat bubble width and render real chat UI in test fixtures by @elie222 in #2043
- fix(computer): enable nss_wrapper only after its files exist by @elie222 in #2035
- fix: save a credential asked for with a page URL under that page's site by @ald3b in #2054
- fix(web): float the chat header buttons over the transcript by @elie222 in #2047
- Name created bots inline in the reply, in their color by @elie222 in #2042
- Add a setting to run actions without asking by @elie222 in #2045
- fix(mcp): keep a rotated OAuth grant when storing it fails by @jfr956 in #1962
- Type each key once and keep the keyboard up on a controlled computer by @ald3b in #2055
- Break usage down by model with cost by @elie222 in #2046
- fix(browser): type with real key presses so code boxes get every digit by @ald3b in #2056
- fix: hide saved website login passwords from tool output in every run by @ald3b in #2069
- fix: remove unused secret answers, limit their size, shorten their notification by @ald3b in #2068
- Flatten general settings into grouped rows by @elie222 in #2060
- Remove test assertions that only wait on copy or guard removed features by @elie222 in #2072
- fix(adapters): observe raw usage events on WebSocket streams by @davidcasanovasola-git in #2075
- fix(desktop): reuse cached images for pinned releases by @ediril in #2077
- fix(telegram): split replies longer than Telegram's limit by @elie222 in #2051
- Add shared model roles and configurable approval models by @elie222 in #2058
- feat(web): web palette and system type, mobile unchanged by @ald3b in #2049
- feat(mobile): fit iPhone Duo poses and side bars by @Ndymario in #2078
- ci(android): refuse to publish an APK without Firebase config by @elie222 in #2084
- fix(browser): type saved logins only into password fields by @ald3b in #2070
- fix(adapters): recover model calls that stop early, and keep the reply a failure cuts short by @ald3b in #2053
- Place collapsed sidebar tooltips beside chat icons by @elie222 in #2087
- feat(web): hide sidebar search behind an icon by @elie222 in #2086
- feat(desktop): sign in with system passkeys on macOS, upgrade to Electron 45 by @elie222 in #2088
- Keep sidebar creation actions visible above bot list by @elie222 in #2089
- Restart the idle timer when a bot asks for takeover by @elie222 in #2094
- Allow several connections per model provider by @elie222 in #2092
- Clarify completed unread actions and align the chat composer by @elie222 in #2091
- Show cached data when revisiting spaces, chats and settings by @elie222 in #2095
- fix(web): label the text-selection action Reply by @elie222 in #2100
- Hide memory providers until asked for, and label self-hosted endpoints honestly by @elie222 in #2097
- fix(routines): don't charge tool discovery against a watched tool's timeout by @tc3oliver in #2103
- Add Resend API delivery and portable account email templates by @elie222 in #2105
- fix(computer): resolve a leading ~ in file tool paths to the computer's home by @tc3oliver in #2102
- fix(web): consistent button shapes and fewer hand-rolled buttons by @elie222 in #2098
- test(web): fix the flaky mark-as-unread E2E menu race by @elie222 in #2111
- Make pnpm dev pick free ports and share one database across worktrees by @elie222 in #2104
- fix(browser): settle browser tool argument errors without a desktop fallback by @ald3b in #2112
- Stop writing the legacy main-model storage by @elie222 in #2108
- Add Space settings and delete spaces with their bots by @elie222 in #2109
- fix(web): stop loading-screen flashes after sign-in and on reload by @elie222 in #2113
- Fix iOS startup crash and preserve early error reports by @elie222 in #2096
- fix(browser): keep two codes in one element apart when typing by @ald3b in #2093
- Remove persistent sidebar resize grip by @elie222 in #2114
- chore(deps): update compatible patch releases by @elie222 in #2115
- Upload mobile source maps after production updates by @elie222 in #2120
- Fix protected cloud computer screen connections by @elie222 in #2123
- Cap name fields at their API limits and translate oRPC validation failures by @princejain756 in #2126
- fix: make ticket tool validation errors actionable by @yxr-2025 in #2129
- Remove stale error status from computer panel header by @elie222 in #2137
- Send bot replies as Markdown on WhatsApp and Lark by @princejain756 in #2127
- Hide archived and under-minimum groups from search by @princejain756 in #2125
- chore(mobile): remove unused orientation module for next native release by @elie222 in #2085
- Deliver Telegram photos and voice notes in linked DMs by @princejain756 in #2138
- feat: import an existing OpenClaw, Hermes or other agent into Rakazo by @rjdotdev in #2048
- fix: cap mobile account labels and cover name limits in e2e by @elie222 in #2145
- fix(approvals): replace the opposite rule when one is set by @tc3oliver in #2149
- Add live end-to-end flows with a simulated person by @elie222 in #2141
- Keep a bot's screen and browser between runs on provider desktops by @elie222 in #2143
- Make confirmation presets switches in a settings group by @elie222 in #2140
- fix(adapters): keep home saves from breaking idle suspension claims by @elie222 in #2157
- chore(desktop): release v0.3.4 by @elie222 in #2152
New Contributors
- @stmoerman made their first contribution in #1887
- @guilhermesan made their first contribution in #1888
- @damballa212 made their first contribution in #1898
- @earsonlau made their first contribution in #1514
- @Praneel7015 made their first contribution in #1964
- @davidcasanovasola-git made their first contribution in #2075
- @Ndymario made their first contribution in #2078
- @tc3oliver made their first contribution in #2103
- @princejain756 made their first contribution in #2126
- @yxr-2025 made their first contribution in #2129
Full Changelog: v0.3.3...v0.3.4