What's Changed
- fix(adapters): sanitize connector tool names for OpenAI Codex by @victormorenos in #1
- Prepare production release and portable scaling foundation by @elie222 in #5
- Add locked-down production auto-deploy by @elie222 in #6
- Make production deployment opt-in by @elie222 in #7
- Add portable computer sandbox runtime by @elie222 in #8
- test: expand verification coverage by @elie222 in #9
- fix(adapters): persist OAuth credentials in Pi runtime by @victormorenos in #2
- Refactor and simplify project internals by @elie222 in #10
- Harden realtime and background job reliability by @elie222 in #16
- fix(www): repair the mobile hero and header by @elie222 in #18
- Collapse test commands to test:* and cover emulator gaps by @elie222 in #17
- Improve marketing site SEO metadata by @elie222 in #24
- Fix mobile Metro TypeScript source resolution by @elie222 in #14
- Refresh the mobile bot list on return by @elie222 in #15
- feat(www): add PostHog analytics by @elie222 in #22
- Fix the live computer acceptance test by @elie222 in #13
- Fix the testkit package-local test command by @elie222 in #26
- Enforce server-side screen control boundaries by @elie222 in #23
- feat: add bot context menu actions by @elie222 in #19
- Fix Docker Compose quick start: supervisor workspace build, api EACCES on prisma generate, web missing env by @Belkouche in #12
- feat: add bot read status by @elie222 in #20
- Enforce takeover lease expiry by @elie222 in #25
- Make spawn_bot retries idempotent by @elie222 in #36
- Load durable memory into agent context by @elie222 in #37
- Terminate timed-out sandbox commands by @elie222 in #39
- Add daily Playwright visual reports by @elie222 in #44
- Fix Playwright report table alignment by @elie222 in #45
- Add Team Computer sharing with optional Private computers by @elie222 in #38
- Add critical Playwright journeys by @elie222 in #46
- Add safe bot archive and deletion by @elie222 in #40
- feat: add Daytona sandbox provider and real-provider E2E by @elie222 in #49
- Centralize sandbox preparation and rollback by @elie222 in #50
- Speed up Electron startup and interactions by @elie222 in #51
- Fix workspace-scoped model defaults and add model management by @bferanmi806-sketch in #48
- Let routines be edited and deleted without deleting the whole bot by @taur-us in #62
- Update README for Team Computer, Daytona, and rakazo.com by @elie222 in #64
- Add screenshot gallery column controls by @elie222 in #65
- Enforce PR review follow-through by @elie222 in #66
- Wait for signup UI before Playwright screenshot by @elie222 in #67
- Fix side panel overlap by @elie222 in #68
- Add coding-agent setup prompt by @elie222 in #71
- Remove archive and delete from bot settings by @elie222 in #69
- Emulate Composio catalog in end-to-end tests by @elie222 in #70
- Move routine run action into editor by @elie222 in #73
- Add community badges to README by @elie222 in #74
- Let Team bots run in parallel on distinct computer screens by @bnsd55 in #58
- Publish safe screenshots for pull requests by @elie222 in #75
- Allow attaching photos and files in chat by @bnsd55 in #57
- Add Box sandbox provider by @elie222 in #80
- Harden Box view-only desktop proxy by @elie222 in #82
- Fix App Store computer overlay, screen URL retries, and health revision by @elie222 in #81
- Add Supermemory-backed history compaction by @taur-us in #79
- fix: sync Composio-live plugin auth into Rakazo connection rows by @dank0296 in #63
- Allow clearing a conversation without deleting its bot by @elie222 in #42
- Align Expo native modules with SDK 57 by @elie222 in #86
- feat(www): refresh landing bot branding by @elie222 in #88
- Improve pull request screenshot review by @elie222 in #87
- Add voice mode with pluggable speech providers by @elie222 in #83
- docs: fix missing article in self-host.md by @lunar-me in #89
- feat(www): put landing demo bot list behind a hamburger on mobile by @elie222 in #92
- Simplify voice credential schema and fix silent voice selection by @elie222 in #91
- Teach a task by recording a live computer demonstration by @bnsd55 in #76
- Fix takeover control state updates by @elie222 in #103
- Sync computer panel status after RPC takeover by @elie222 in #107
- Add pinned bot groups and sidebar sections by @elie222 in #109
- Fix routine E2E request interception race by @elie222 in #110
- feat(adapters): support local OpenAI-compatible model servers by @izkold in #105
- Fix Chrome offering to save the account password in the chat message box by @taur-us in #104
- Fix Chrome autofilling the account password into API key fields by @taur-us in #96
- Fence Team Computer release to the active takeover lease by @bferanmi806-sketch in #78
- Reconcile stale pending Composio connections on catalog fetch by @taur-us in #94
- Add built-in history compaction without Supermemory by @bferanmi806-sketch in #112
- Add Markdown artifact previews by @elie222 in #140
- Group chats so several bots can share one thread by @bnsd55 in #84
- Add concise UI copy guidance by @elie222 in #141
- Fix tool-call narration splitting mid-sentence by @taur-us in #101
- Add provider-neutral workspace memory with Supermemory adapter by @taur-us in #102
- Fix landing waitlist and demo interactions by @elie222 in #145
- Add provider-neutral connector support by @elie222 in #144
- Add get started dialog to landing page by @elie222 in #146
- Live inspectable charts (render_plot + chart blocks) and per-tool activity feedback by @dennisonbertram in #137
- Wire model.reasoning through to PiAgentRuntime's thinkingLevel by @taur-us in #95
- Add Claude Pro/Max subscription sign-in (Anthropic OAuth) by @sirakinb in #106
- Ask before send and spend by @bnsd55 in #59
- Resume takeover runs correctly after skipped control by @millson1 in #142
- This PR fixes a few bugs around bot creation, settings panel UX, and custom model initialization. by @vivinarya in #143
- Fix consequential-approval E2E stuck after Allow once by @elie222 in #148
- Fix Windows CRLF breaking sandbox shebangs (#135) by @elie222 in #150
- Add conversational onboarding and MCP server management by @elie222 in #147
- Prevent OpenRouter mandatory-reasoning 400 from thinkingLevel "off" (#114) by @elie222 in #152
- docs: document DOCKER_SOCKET override (closes #134) by @elie222 in #151
- Fix mobile typecheck and takeover E2E by @elie222 in #156
- Harden and end-to-end test MCP OAuth by @dennisonbertram in #136
- feat(ui): add animated Grok-style bot avatars and multi-bot GroupAvatar by @coneborg in #153
- Connect any OpenAI-compatible local model server by @bnsd55 in #149
- Fix routine cron scheduling across weekdays and timezones by @elie222 in #155
- [fix:dep bump] Show current xAI and OpenCode Go models in the picker by @jatinkrmalik in #175
- Mirror UI chrome from locale and isolate user text direction by @bnsd55 in #171
- Add chat-native schedule tools for bot reminders by @bnsd55 in #170
- Add GHCR publish, Compose updater sidecar, and self-host upgrade path by @elie222 in #178
- Contain Windows desktop-sandbox writes through final symlinks by @elie222 in #179
- Ask which Rakazo instance the desktop app should use by @elie222 in #180
- Add Stop control to computer overlay for active runs by @elie222 in #187
- fix: disable Take control while a Team bot run blocks takeover by @elie222 in #188
- Add desktop auto-update and signed release workflow by @elie222 in #177
- fix(web): stop signing out a user the session lookup could not reach by @adam91holt in #185
- Add a copy button to code blocks in chat messages by @yairixStudio in #159
- fix(desktop): capture loopback OAuth codes from the sign-in popup by @elie222 in #191
- Fix takeover state race in web E2E by @elie222 in #190
- feat: per-bot scratchpad / open-work list by @elie222 in #196
- Make rakazo.com agent-ready by @elie222 in #204
- Fix production deploy and sharpen Grok Bot positioning by @elie222 in #205
- Per-bot model and thinking effort overrides by @elie222 in #189
- Default the Linux production deploy directory by @elie222 in #206
- Make production updater sidecar opt-in by @elie222 in #207
- Add shared agent skills (SKILL.md) storage, API, and tools by @elie222 in #192
- fix(e2b): open http(s) URLs via named browser launcher by @elie222 in #201
- fix: require VNC port readiness for E2B control stream by @elie222 in #202
- fix: gate screenshot computer tools on model vision capability by @elie222 in #203
- Fix Codex stream reliability and surface provider failures by @timvdhoorn in #208
- Add composer / picker for skills above Actions by @elie222 in #193
- ci: publish multi-arch server images (amd64+arm64) by @elie222 in #214
- Fix working elapsed timer resetting when switching bots (#210) by @elie222 in #212
- fix(web): auto-grow composer so Shift+Enter inserts newlines (#211) by @elie222 in #213
- Add a workspace Now/Recent run list on web and mobile by @bnsd55 in #160
- fix(api): close open SSE connections on graceful shutdown by @deepanshu1422 in #215
- fix(sandbox): screen readiness check and per-bot network isolation by @deepanshu1422 in #216
- Clarify homepage product positioning by @elie222 in #225
- Replay exact persisted tool requests after approval by @timvdhoorn in #209
- feat: let bots message each other by @adam91holt in #186
- feat(routines): support multiple schedules per routine by @deepanshu1422 in #217
- fix(sandbox): Team Computer was one desktop per bot, not one shared by @deepanshu1422 in #221
- fix: bound computer cache and stop SSE reconnects on unrelated params by @deepanshu1422 in #223
- Fix: define save_memory/recall_memory builtin tools by @kk078 in #224
- Search groups and jump to the matching message by @elie222 in #226
- feat: Grok-style @ mentions on the chip composer by @elie222 in #228
- fix(api): normalize run routineId to null in thread snapshot by @mtsogias in #230
- Fix write_file silently corrupting JSON object content by @elie222 in #237
- Default new web routines to the browser timezone. by @elie222 in #239
- Fix bot message run output validation by @Titozzz in #251
- Default uncapped tool calls; optional MAX_TOOL_CALLS_PER_TURN soft-stop (#248) by @elie222 in #253
- feat(web): Lingui i18n with English source, German + Korean catalogs by @elie222 in #254
- Add German and Korean marketing homepage locales by @elie222 in #255
- feat(web): Grok-style message hover Reply + Copy by @elie222 in #258
- fix(web): keep message hover Reply+Copy above bubble text by @elie222 in #259
- Quiet Integrations default; tool sources under Advanced by @elie222 in #268
- fix(sandboxes): suppress Chromium --no-sandbox infobar with --test-type flag by @coneborg in #263
- Recover, reset, and update a bot computer from settings by @elie222 in #272
- fix(web): keep reply parent preview across pagination by @elie222 in #260
- feat(web): add Turkish (tr) UI locale by @tuncasoftbildik in #274
- fix(dev): skip Corepack download prompt that hangs pnpm dev by @elie222 in #278
- fix(web): harden jumpToMessage against stale scroll races by @elie222 in #275
- fix(dev): make COREPACK_ENABLE_DOWNLOAD_PROMPT cross-platform for Windows by @elie222 in #283
- Pin Gmail, Calendar, Drive, Slack, and Notion in Integrations by @elie222 in #269
- feat(web): add Hindi and Brazilian Portuguese UI locales by @elie222 in #284
- fix: allow parallel Open Connector action batches by @Titozzz in #289
- Add accessibility labels for Integrations Add/Remove and Speak by @elie222 in #288
- fix(config): relax engines.node 24 floor to any 24.x by @elie222 in #290
- Stop markdown tables collapsing to one character per column by @malikmmoaz in #291
- fix(web): harden bot-crud computer panel E2E against skipped boot overlay by @elie222 in #293
- fix(api): expose failed bot runs in threadSnapshot (not cancelled/completed) by @elie222 in #295
- fix: key MCP session cache by identity, not server id by @shinjikhang in #296
- fix: pair the deployment model key with the provider it belongs to by @shinjikhang in #297
- fix: withhold the deployment key from a provider it was not issued for by @shinjikhang in #299
- docs: refresh supported providers and integrations by @elie222 in #298
- feat(web): model dropdown search + provider groups (#227 leftover) by @elie222 in #256
- feat(bots): include descriptions in teammate directory by @luinbytes in #286
- Add an organic avatar style preference by @elie222 in #311
- test: isolate MCP session cache by workspace and user separately by @elie222 in #313
- fix(mobile): keep avatar style on failed save by @elie222 in #316
- fix: recover past checkpoint errors and claim stopped computers by @elie222 in #315
- Clarify Rakazo development principles by @elie222 in #318
- fix(mobile): serialize avatar style updates by @luinbytes in #319
- fix(mobile): share pending avatar update by @luinbytes in #323
- fix(web): follow new chat messages without interrupting readers by @elie222 in #305
- fix(web): localize collaboration markers and reuse loading state by @luinbytes in #325
- fix(agents): keep tool-only turns honest by @elie222 in #307
- fix(web): preserve transcript reader position by @luinbytes in #324
- Share a bot as config only (JSON and public link) by @elie222 in #302
- Revert accidental share merge (#302) by @elie222 in #326
- Masked secret handoff for 2FA and connector codes by @elie222 in #303
- fix(dev): start the watched dev services with stdin detached by @ethanstoner in #322
- fix(adapters): safely handle optional context in agent runtimes by @elie222 in #332
- feat(groups): include escaped member titles in group chat context by @elie222 in #333
- Refine generated bot avatars by @luinbytes in #336
- Allow Tailscale server URLs in mobile app by @daniel18mobile-del in #338
- Preserve avatar animation state across UI updates by @luinbytes in #340
- Filter automatic successful Playwright screenshots by @elie222 in #341
- perf: add native computer control fast path by @dennisonbertram in #342
- feat(sidebar): add collapsible sections by @elie222 in #300
- fix(onboarding): preserve chosen bot name and add password reveal by @david1asher in #292
- Settings software update via Compose updater sidecar by @elie222 in #339
- fix(web): keep queued transcript snaps reader-safe by @luinbytes in #328
- Show agent titles in sidebar by @daniel18mobile-del in #337
- fix(mcp): allow configured localhost HTTP servers by @luinbytes in #285
- fix(web): reduce sidebar bot status polling latency and sync on send by @coneborg in #331
- fix(adapters): harden computer observe prompt against webpage content and quote confusion by @coneborg in #264
- Allow arming never-run one-shot routines by @elie222 in #327
- Harden self-hosted security boundaries by @elie222 in #343
- Fix: do not activate recurring routines on routine save by @elie222 in #346
- feat(groups): add chat organization actions by @luinbytes in #345
- Assert updater authorization failures precisely by @elie222 in #347
- fix(db): make group index migrations retry-safe by @luinbytes in #348
- fix(mcp): report an allowlist entry the server no longer offers by @shinjikhang in #349
- Add pull-based Compose self-host path (no clone) by @elie222 in #350
- fix(sandbox): boot a fresh sandbox when a reconnect cannot reach the old one by @shinjikhang in #351
- fix(sandbox): keep transport errors out of replaceComputer by @elie222 in #353
- feat(webhooks): add inbound webhook bot trigger endpoint and webhook run trigger by @coneborg in #334
- fix(sandbox): give E2B screen setup commands a real timeout by @shinjikhang in #354
- fix(docker): survive restrictive host umask in image builds by @akoenig in #355
- feat(api): log the RPC errors that become an opaque 500 by @shinjikhang in #357
- feat(self-host): Docker computers on published-images quick start by @elie222 in #361
- fix(mcp): preserve credentials for configured localhost servers by @luinbytes in #368
- fix(scripts): pass the root .env to Compose in backup and restore by @Scottcjn in #364
- fix(sandbox): fail Docker stop and destroy on a supervisor error by @Scottcjn in #365
- fix(supervisor): return container stderr instead of folding it into stdout by @Scottcjn in #366
- fix(sandbox): recognise an E2B sandbox that is already gone by @shinjikhang in #358
- fix(computer): paste host clipboard into take-control sandbox by @elie222 in #359
- fix(web): surface run failures instead of ending the turn silently by @chudasamajd in #362
- feat(approvals): Auto Review for unexpected consequential actions by @elie222 in #360
- fix(computer): drop stale Chromium singleton locks on boot by @DaveVoyles in #370
- fix(computer): route Docker browsers through Rakazo wrapper by @bferanmi806-sketch in #376
- fix(web): preserve user message line breaks by @davidrobertson in #372
- Fix delegated bot follow-through by @luinbytes in #369
- Fix Playwright report publication for growing screenshot suites by @elie222 in #380
- fix(web): support file drops in chat composer by @davidrobertson in #371
- fix(adapters): canonicalize Composio toolkit slugs by @davidrobertson in #374
- fix(web): add browser run notifications by @davidrobertson in #373
- Simplify the published-image quick start by @elie222 in #381
- fix(web): notify for bot messages by @davidrobertson in #384
- fix(adapters): avoid Composio tool preload limit by @davidrobertson in #383
- fix(web): stack peer messages on mobile by @davidrobertson in #386
- Fix delegated reply surfacing by @luinbytes in #385
- feat(mobile): bring Android chat parity by @luinbytes in #387
- fix(desktop): make conversation header draggable by @davidrobertson in #390
- fix(web): center composer and persist bot order by @davidrobertson in #392
- fix(adapters): isolate scheduled routine context by @davidrobertson in #388
- perf(mobile): keep live chats responsive by @luinbytes in #393
- feat(phone): SendBlue iMessage surface — DM bots, approval-gated group channels, agent connections by @dennisonbertram in #377
- fix(desktop): keep active conversation header draggable by @davidrobertson in #395
- fix(adapters): expose schedule tools in group chats by @luinbytes in #391
- feat(adapters): builtin web_search and web_fetch by @elie222 in #410
- fix: suppress Chromium restore pages bubble on crash by @awhite0030 in #420
- fix(adapters): prevent routine schedule recursion by @davidrobertson in #409
- fix(desktop): open external links in default browser by @davidrobertson in #417
- fix: persist replaced providerRef in reconnectComputer by @awhite0030 in #419
- Fix computer_act hanging due to blocking subprocess in control.py by @awhite0030 in #422
- fix: allow Tailscale MagicDNS hosts in integration URLs by @elie222 in #423
- fix: do not persist split UTF-16 surrogates in stream events by @elie222 in #424
- feat(web): show chat message timestamps on hover by @davidrobertson in #397
- Fix golden E2E bot selector blocking production deploys by @elie222 in #430
- Add isolated spaces for bot teams by @elie222 in #389
- fix(chat): hide inter-bot exchanges from transcript by @davidrobertson in #426
- feat(chat): persist thumbs-up message reactions by @davidrobertson in #428
- fix(web): anchor routine toggle thumb by @davidrobertson in #434
- fix(adapters): keep computers awake for background work by @davidrobertson in #435
- Improve mobile authentication flow by @elie222 in #436
- fix(adapters): harden background work probing by @davidrobertson in #438
- Improve mobile authentication flow by @elie222 in #437
- fix(web): keyboard completion for composer @mention picker by @elie222 in #432
- Publish compatible mobile changes with EAS Update by @elie222 in #441
- fix: suppress roster attention for silent routines by @davidrobertson in #439
- feat(adapters): lazily load large tool schemas by @davidrobertson in #429
- fix(chat): restore peer transcript markers by @davidrobertson in #443
- Collapse bot tool activity in chat by @davidrobertson in #440
- Multi-platform chat surface on Chat SDK (Slack, WhatsApp, Telegram + iMessage) by @elie222 in #444
- feat(chat): add tappable choice prompts by @davidrobertson in #433
- Don't fail every turn on an MCP tool enum TypeBox can't express by @timothyhoover in #450
- Add password reset and provider-neutral email by @elie222 in #446
- Stop labelling older models "latest" in the model picker by @david1asher in #456
- fix(ci): restore computer image GHCR publishing by @elie222 in #454
- fix(api): stop resurfacing a failed run after a newer run finishes by @sirakinb in #447
- fix(web): stop seen run errors returning after reload by @davidrobertson in #449
- Highlight PR-relevant Playwright frames in CI comments by @elie222 in #457
- feat(chat): deliver steering messages while bots work by @davidrobertson in #453
- fix(adapters): preserve cancellation and retry finalization by @davidrobertson in #459
- fix(chat): remove steering composer helper copy by @elie222 in #460
- fix(mobile): align Expo SDK 57 package versions for Typecheck CI by @elie222 in #467
- fix(ui): unify error red across web and mobile by @chudasamajd in #462
- fix(chat): show wall-clock worked duration by @davidrobertson in #461
- Reuse Pi provider sessions across bot turns by @matt-from-uk in #466
- Require PR descriptions to state why a change exists by @elie222 in #477
- feat(web): add Simplified Chinese UI locale by @fetw882 in #480
- fix(adapters): keep versioned OpenAI-compatible API roots by @fetw882 in #482
- Match Grok Bot: teach in chrome, muted Routines +, simpler sidepanel by @elie222 in #481
- fix(compose): allow generic installer download base override by @fetw882 in #484
- docs(self-host): document Stage C image registry override for restricted networks by @fetw882 in #487
- docs(self-host): add published-images TLS reverse-proxy snippet by @fetw882 in #489
- fix(compose): wait for healthy services in published-images installer by @fetw882 in #492
- fix(compose): allow overriding Hub postgres/busybox images by @fetw882 in #493
- Simplify rakazo.com self-host to short CTAs by @elie222 in #501
- Add Appearance control (System / Light / Dark) by @elie222 in #510
- fix(desktop): use macOS-safe icon for the dev dock by @elie222 in #529
- Align sidebar Search to selected conversation row width by @elie222 in #511
- fix: clear stale user computer control blocking reset (#500) by @elie222 in #512
- fix: tear down sandbox browser/shell work when a run is cancelled (#499) by @elie222 in #513
- fix(web): complete Korean UI translations (rebase onto main) by @elie222 in #537
- Desktop app installs and runs the local Rakazo stack with Docker Compose by @elie222 in #533
- Fix inline code contrast in light mode by @elie222 in #544
- docs: add a Run on a server section to the README by @elie222 in #545
- ci: build server images natively per architecture instead of under QEMU by @elie222 in #546
- feat: add Simplified Chinese on mobile and the marketing homepage by @elie222 in #539
- Wire ui-tokens into mobile screen backgrounds by @elie222 in #506
- ci: notarize macOS with an App Store Connect API key and make Windows optional by @elie222 in #547
- fix(desktop): name the Linux executable so the AppImage builds by @elie222 in #549
New Contributors
- @victormorenos made their first contribution in #1
- @elie222 made their first contribution in #5
- @Belkouche made their first contribution in #12
- @bferanmi806-sketch made their first contribution in #48
- @taur-us made their first contribution in #62
- @bnsd55 made their first contribution in #58
- @dank0296 made their first contribution in #63
- @lunar-me made their first contribution in #89
- @izkold made their first contribution in #105
- @dennisonbertram made their first contribution in #137
- @sirakinb made their first contribution in #106
- @millson1 made their first contribution in #142
- @vivinarya made their first contribution in #143
- @coneborg made their first contribution in #153
- @jatinkrmalik made their first contribution in #175
- @adam91holt made their first contribution in #185
- @yairixStudio made their first contribution in #159
- @timvdhoorn made their first contribution in #208
- @deepanshu1422 made their first contribution in #215
- @kk078 made their first contribution in #224
- @mtsogias made their first contribution in #230
- @Titozzz made their first contribution in #251
- @tuncasoftbildik made their first contribution in #274
- @malikmmoaz made their first contribution in #291
- @shinjikhang made their first contribution in #296
- @luinbytes made their first contribution in #286
- @ethanstoner made their first contribution in #322
- @daniel18mobile-del made their first contribution in #338
- @david1asher made their first contribution in #292
- @akoenig made their first contribution in #355
- @Scottcjn made their first contribution in #364
- @chudasamajd made their first contribution in #362
- @DaveVoyles made their first contribution in #370
- @davidrobertson made their first contribution in #372
- @awhite0030 made their first contribution in #420
- @timothyhoover made their first contribution in #450
- @matt-from-uk made their first contribution in #466
- @fetw882 made their first contribution in #480
Full Changelog: v0.1.0-beta...v0.1.0