v2026.10.21.0

m-bain/whisperXv2026.10.21.0Oct 21, 2026by synoet

Upgrading?

AI Summary

A large feature release adding Outlook email and calendar support, tables in Sheets, and a wide set of email reading and mobile improvements. It also includes extensive reliability work around promises, caching, observability and desktop integrations.

Key Highlights

  • Outlook email and calendar support added
  • Tables introduced in Sheets
  • Email threads can be read in a pane beside the list, with compact stacked rows for narrow layouts
  • GIF search via /gif slash command and Supercut/Loom video embeds
  • Import theme from clipboard and mobile top bar with close button and actions

New Features

  • Outlook email and calendar support
  • Tables in Sheets
  • Email thread reading pane beside the list
  • Compact stacked rows for narrow email lists
  • Swipe a row right to set a reminder on touch
  • Saved reply drafts shown in threads on touch
  • GIF search with /gif slash command
  • Supercut and Loom video embed support
  • Import theme from clipboard
  • Mobile top bar with close button and actions for PR blocks
  • Copy link and share actions on PR blocks
  • Separate import button next to the spreadsheet download menu
  • Calendar events created with their Macro call in one write
  • Guest chat in quick and scheduled calls
  • App Store link and copy button in Mobile App settings
  • Type-aware oxlint enforcement for no-floating-promises

Full Release Notes

## What's Changed
* fix(deps): upgrade zip and ammonia to clear cargo-deny advisories by @synoet in https://github.com/macro-inc/macro/pull/8253
* fix(hotkeys): ignore keyless key events and scope duplicate-token warning by @synoet in https://github.com/macro-inc/macro/pull/8205
* fix(crm): show split close beside the collapsed CRM sidebar toggle by @synoet in https://github.com/macro-inc/macro/pull/8218
* fix(mentions): keep bin headers steady when View all disappears by @synoet in https://github.com/macro-inc/macro/pull/8224
* feat(crm): add deal and contact form to pipelines by @synoet in https://github.com/macro-inc/macro/pull/8211
* fix(graphql-soup): gate cache sessions and defer draft recovery by @synoet in https://github.com/macro-inc/macro/pull/7923
* fix(crm): open a shared pipeline link while Customers is open by @synoet in https://github.com/macro-inc/macro/pull/8223
* fix(desktop): let Pipedream Connect load in its iframe on macOS by @synoet in https://github.com/macro-inc/macro/pull/8226
* fix(database): make every table cell clickable across the full row height by @synoet in https://github.com/macro-inc/macro/pull/8216
* fix(email): open Cc and Bcc from the keyboard in replies by @synoet in https://github.com/macro-inc/macro/pull/8140
* feat(sheets): tables  by @synoet in https://github.com/macro-inc/macro/pull/8134
* fix(email): give the list keyboard focus when it remounts by @synoet in https://github.com/macro-inc/macro/pull/8236
* fix(crm): close the narrow CRM navigation menu on collapse by @synoet in https://github.com/macro-inc/macro/pull/8219
* feat(email): show saved reply drafts in threads on touch by @synoet in https://github.com/macro-inc/macro/pull/8240
* feat(email): swipe a row right to set a reminder on touch by @synoet in https://github.com/macro-inc/macro/pull/8239
* feat(email): read threads in a pane beside the list by @synoet in https://github.com/macro-inc/macro/pull/8237
* feat(email): compact stacked rows for narrow email lists by @synoet in https://github.com/macro-inc/macro/pull/8242
* fix(flags): turn agent DMs on in dev and default new flags on in dev by @synoet in https://github.com/macro-inc/macro/pull/8162
* fix(pdf): stop unhandled "timed out" rejections by @synoet in https://github.com/macro-inc/macro/pull/8208
* fix(observability): symbolicate web and native errors and drop browser noise by @synoet in https://github.com/macro-inc/macro/pull/8213
* fix(web): handle floating promises in lib/core by @synoet in https://github.com/macro-inc/macro/pull/8257
* fix(web): handle floating promises in queries, clients, router and tooling by @synoet in https://github.com/macro-inc/macro/pull/8258
* fix(web): handle floating promises in soup, commands, entities and channels by @synoet in https://github.com/macro-inc/macro/pull/8259
* fix(web): handle floating promises in blocks, views and app components by @synoet in https://github.com/macro-inc/macro/pull/8260
* ci(web): enforce no-floating-promises with type-aware oxlint by @synoet in https://github.com/macro-inc/macro/pull/8261
* refactor(web): start voided promises with fireAndForget by @synoet in https://github.com/macro-inc/macro/pull/8265
* refactor(web): start arrow-body voided promises with fireAndForget by @synoet in https://github.com/macro-inc/macro/pull/8267
* chore(web): treat voided promises as floating by @synoet in https://github.com/macro-inc/macro/pull/8268
* fix(email): show the sender picture in mobile email rows again by @synoet in https://github.com/macro-inc/macro/pull/8262
* feat(pr): add mobile top bar with close button and actions by @jbecke in https://github.com/macro-inc/macro/pull/8271
* feat(settings): add import theme from clipboard and document theme mentions by @jbecke in https://github.com/macro-inc/macro/pull/8186
* fix(auth): disable graphql cache on confirmed session expiry by @seanaye in https://github.com/macro-inc/macro/pull/8278
* fix(channels): keep PR mentions from suspending the composer by @peterchinman in https://github.com/macro-inc/macro/pull/8194
* fix(channels): revalidate cached messages after reconnect by @seanaye in https://github.com/macro-inc/macro/pull/8276
* fix(desktop): restore browser file drop uploads by @ehayes2000 in https://github.com/macro-inc/macro/pull/8170
* feat(spreadsheet): add separate import button next to download menu by @jbecke in https://github.com/macro-inc/macro/pull/8180
* feat(calendar): create events with their Macro call in one write by @gbirman in https://github.com/macro-inc/macro/pull/8187
* fix(scheduling): display reschedule times in user's timezone by @jbecke in https://github.com/macro-inc/macro/pull/8275
* fix(email): stop Signal rows flickering and jumping after mark done by @gbirman in https://github.com/macro-inc/macro/pull/8165
* chore(ios): release 2.0.10 (build 189) by @peterchinman in https://github.com/macro-inc/macro/pull/8114
* fix(connectors): complete native Pipedream authorization in the browser by @ehayes2000 in https://github.com/macro-inc/macro/pull/8178
* fix(email): return desktop Gmail consent to the app by @ehayes2000 in https://github.com/macro-inc/macro/pull/8172
* fix(agent): restore canonical tool names during history replay by @ehayes2000 in https://github.com/macro-inc/macro/pull/8289
* feat(pr): add copy link action to PR block menu by @jbecke in https://github.com/macro-inc/macro/pull/8290
* fix(markdown): open mentions after soft line breaks by @ehayes2000 in https://github.com/macro-inc/macro/pull/8280
* fix(desktop): publish update feed from release commit by @ehayes2000 in https://github.com/macro-inc/macro/pull/8184
* feat(email): add outlook email and calendar support by @synoet in https://github.com/macro-inc/macro/pull/7461
* feat(settings): add App Store link and copy button to Mobile App settings by @jbecke in https://github.com/macro-inc/macro/pull/8301
* feat(block-pr): add share button to PR block by @jbecke in https://github.com/macro-inc/macro/pull/8300
* fix(ios): keep the watcher from treating a released build as drifted by @peterchinman in https://github.com/macro-inc/macro/pull/8285
* fix(drive): open public links without account services by @seanaye in https://github.com/macro-inc/macro/pull/8296
* fix(scheduling): load reschedule slots on the guest's local date by @gbirman in https://github.com/macro-inc/macro/pull/8302
* feat(calls): enable guest chat in quick and scheduled calls by @ehayes2000 in https://github.com/macro-inc/macro/pull/8295
* fix(pdf): restore signature drawing and stable dialog placement by @gbirman in https://github.com/macro-inc/macro/pull/8308
* perf(web): serve the remote dev server over HTTP/2 with compression and linked source maps by @404Wolf in https://github.com/macro-inc/macro/pull/8287
* feat(email): animate draft and thread expansion by @jbecke in https://github.com/macro-inc/macro/pull/8313
* fix(channels): keep list previews inert and accessible by @peterchinman in https://github.com/macro-inc/macro/pull/8282
* fix(email): give emails bottom clearance above the mobile nav chrome by @peterchinman in https://github.com/macro-inc/macro/pull/7153
* fix(email): send AI-composed email from the right inbox by @peterchinman in https://github.com/macro-inc/macro/pull/8010
* feat(web): add GIF search with /gif slash command by @jbecke in https://github.com/macro-inc/macro/pull/8188
* feat(unfurl): add Supercut and Loom video embed support by @jbecke in https://github.com/macro-inc/macro/pull/8176
* fix(email): stop squishing the Macro logo in digest and invite emails by @synoet in https://github.com/macro-inc/macro/pull/8307
* feat(tasks): give group headers the email card chrome by @jbecke in https://github.com/macro-inc/macro/pull/8306
* fix(code-mode): attribute SDK messages to the session agent by @404Wolf in https://github.com/macro-inc/macro/pull/8286
* feat(channel): render the title menu from the shared channel top bar by @peterchinman in https://github.com/macro-inc/macro/pull/7749
* feat(ios): explain release gate status on pull requests by @peterchinman in https://github.com/macro-inc/macro/pull/8117
* fix(search): restore mobile results on back navigation by @peterchinman in https://github.com/macro-inc/macro/pull/8279
* fix(email): keep next and previous working after the open thread leaves by @synoet in https://github.com/macro-inc/macro/pull/8227
* fix(properties): read an entity's properties from the primary by @gbirman in https://github.com/macro-inc/macro/pull/8091
* fix(crm): align CSV file picker with app conventions by @gbirman in https://github.com/macro-inc/macro/pull/8315
* feat(email): advance to the next thread after send and mark done by @synoet in https://github.com/macro-inc/macro/pull/8229
* fix(crm): keep split controls out of the narrow CRM navigation menu by @gbirman in https://github.com/macro-inc/macro/pull/8314
* feat(email): offer Macro links for attachments over the size limit by @gbirman in https://github.com/macro-inc/macro/pull/8292
* Revert "fix(drive): open public links without account services (#8296)" by @seanaye in https://github.com/macro-inc/macro/pull/8333
* feat(agents): unify composer controls and model selection by @404Wolf in https://github.com/macro-inc/macro/pull/7862
* feat(forms): keep channel polls out of Drive by @404Wolf in https://github.com/macro-inc/macro/pull/8312
* fix(comments): stop a document row from opening its comment drawer on mobile by @peterchinman in https://github.com/macro-inc/macro/pull/7328
* feat(desktop): label app icon, download page, and settings as alpha by @ehayes2000 in https://github.com/macro-inc/macro/pull/8351
* fix(channels): clear stale unread dots when opening conversations by @gbirman in https://github.com/macro-inc/macro/pull/8336
* fix(auth): restore public document access with preview session discovery by @seanaye in https://github.com/macro-inc/macro/pull/8349
* refactor(entities): route flagged mutations through graphql by @seanaye in https://github.com/macro-inc/macro/pull/8348
* fix(scheduling): preserve native navigation on booking pages by @jbecke in https://github.com/macro-inc/macro/pull/8263
* fix(crm): give opened records and pipelines their own URLs by @gbirman in https://github.com/macro-inc/macro/pull/8344
* fix(onboarding): keep connector continue button visible by @ehayes2000 in https://github.com/macro-inc/macro/pull/8320
* fix(calls): navigate to the call record after ending a call by @ehayes2000 in https://github.com/macro-inc/macro/pull/8305
* feat(crm): open company and contact links inside Customers on desktop by @gbirman in https://github.com/macro-inc/macro/pull/8345
* fix(channels): stop DM expand from shrinking the Channels section by @gbirman in https://github.com/macro-inc/macro/pull/8316
* fix(notifications): open macOS alerts at their destination by @ehayes2000 in https://github.com/macro-inc/macro/pull/8319
* fix(channels): search every channel the user is in from the rail by @gbirman in https://github.com/macro-inc/macro/pull/8360
* feat(sdk): complete endpoint coverage and expose database SQL by @404Wolf in https://github.com/macro-inc/macro/pull/8328
* fix(desktop): export frontend telemetry from desktop builds by @ehayes2000 in https://github.com/macro-inc/macro/pull/8357
* fix(agents): replace legacy chat tools with session workflows by @ehayes2000 in https://github.com/macro-inc/macro/pull/8303
* fix(home): show the mention sender in channel thread rows by @gbirman in https://github.com/macro-inc/macro/pull/8366
* fix(web): prevent GitHub status failures from refreshing lists by @peterchinman in https://github.com/macro-inc/macro/pull/8329
* fix(mobile): unify Chat icon with desktop sidebar by @jbecke in https://github.com/macro-inc/macro/pull/8365
* fix(ai-editing): let move place images and other decorator blocks by @404Wolf in https://github.com/macro-inc/macro/pull/8369
* fix(notifications): use desktop wording for native permission prompt by @ehayes2000 in https://github.com/macro-inc/macro/pull/8368
* fix(desktop): include agent fold wasm in release bundles by @ehayes2000 in https://github.com/macro-inc/macro/pull/8374
* fix(github): recover stale grants while preserving existing links by @peterchinman in https://github.com/macro-inc/macro/pull/8359
* fix(macrod): forward configured MCP connections to external agents by @ehayes2000 in https://github.com/macro-inc/macro/pull/8378
* fix(search): flatten mention chips to the indexed email in search queries by @gbirman in https://github.com/macro-inc/macro/pull/8370
* fix(ios): recover socket failures and diagnose webview reloads by @peterchinman in https://github.com/macro-inc/macro/pull/8354
* docs(infra): say MICROSOFT_TOKEN_KMS_KEY_ID is set by hand in Doppler by @gbirman in https://github.com/macro-inc/macro/pull/8382
* fix(channels): make @macro always offer to share items it links by @404Wolf in https://github.com/macro-inc/macro/pull/8379
* fix(routines): move routines and agents off retired claude models by @404Wolf in https://github.com/macro-inc/macro/pull/8327
* feat(agent-sessions): serve the folded session log and add AgentSession.foldedLog() by @404Wolf in https://github.com/macro-inc/macro/pull/8383
* fix(drive): show active filter counts and preserve menu selections by @peterchinman in https://github.com/macro-inc/macro/pull/7568
* feat(call): add provider-independent call entity model by @ehayes2000 in https://github.com/macro-inc/macro/pull/7660
* docs(agents): clarify bring-your-own-agent setup by @404Wolf in https://github.com/macro-inc/macro/pull/8394
* fix(email): send content-length on bodyless outlook graph writes by @synoet in https://github.com/macro-inc/macro/pull/8338
* fix(email-compose): poll draft status only after the server confirms it by @synoet in https://github.com/macro-inc/macro/pull/8339
* fix(email): stop outlook threads waiting forever for confirmation by @synoet in https://github.com/macro-inc/macro/pull/8342
* perf(email): restore fast label lookups and index Outlook user lookups by @synoet in https://github.com/macro-inc/macro/pull/8343
* fix(mobile): reserve top chrome in CRM and detail views by @peterchinman in https://github.com/macro-inc/macro/pull/8395
* fix(bots): simplify setup and collapse advanced options by @ehayes2000 in https://github.com/macro-inc/macro/pull/8391
* feat(marketing): refresh product pages and interactive demos by @chaitbuilds in https://github.com/macro-inc/macro/pull/8396
* fix(favorites): use get_entity_permission for channel favorites by @jbecke in https://github.com/macro-inc/macro/pull/8361
* fix(mobile): polish by @peterchinman in https://github.com/macro-inc/macro/pull/8390
* feat(calls): trace browser media permissions and setup by @ehayes2000 in https://github.com/macro-inc/macro/pull/8375
* feat(agent-session): record why a turn ended and whether it answered by @404Wolf in https://github.com/macro-inc/macro/pull/8400
* feat(analytics): group PostHog events by team by @chaitbuilds in https://github.com/macro-inc/macro/pull/8401
* fix(email): hide routine Outlook draft and send status by @synoet in https://github.com/macro-inc/macro/pull/8402
* fix(nix): fetch the ffmpeg tarball from pinned mirrors by @synoet in https://github.com/macro-inc/macro/pull/8318
* fix(home): request AI models inside the user's plan by @synoet in https://github.com/macro-inc/macro/pull/8214
* fix(web): handle failures that voided promises dropped by @synoet in https://github.com/macro-inc/macro/pull/8269
* feat(call): import Granola meetings as calls automatically by @ehayes2000 in https://github.com/macro-inc/macro/pull/7722
* feat(email): show a paperclip next to the date of threads with files by @synoet in https://github.com/macro-inc/macro/pull/8222
* fix(graphql): keep removed fields for stale clients and block breaking schema changes by @synoet in https://github.com/macro-inc/macro/pull/8212
* fix(web): stop unknown service variants crashing exhaustive matches by @synoet in https://github.com/macro-inc/macro/pull/8221
* fix(tauri): reconnect websockets after read errors and handle dropped IPC promises by @synoet in https://github.com/macro-inc/macro/pull/8207
* docs(coding): limit regression tests to behavior that can break again by @synoet in https://github.com/macro-inc/macro/pull/8406
* Sean/cache local grouping by @seanaye in https://github.com/macro-inc/macro/pull/8298
* fix(mobile): reserve alpha branding for desktop by @ehayes2000 in https://github.com/macro-inc/macro/pull/8427
* fix(marketing): change /download page to coming soon by @jbecke in https://github.com/macro-inc/macro/pull/8426
* fix(agents): finish external chat replies in their threads by @gbirman in https://github.com/macro-inc/macro/pull/8398
* fix(web): give the local soup grouping match a fallback by @peterchinman in https://github.com/macro-inc/macro/pull/8428
* fix(calendar): join Google Meet with the connected account by @gbirman in https://github.com/macro-inc/macro/pull/8429
* feat(ci): tell the author when a release label cannot start a release by @peterchinman in https://github.com/macro-inc/macro/pull/8425
* fix(marketing): smooth page loads and simplify mobile navigation by @chaitbuilds in https://github.com/macro-inc/macro/pull/8437
* feat(desktop): bundle macrod and add one-click local agent runtime setup by @ehayes2000 in https://github.com/macro-inc/macro/pull/8358
* fix(docx): wait for upload extraction before opening documents by @gbirman in https://github.com/macro-inc/macro/pull/8372
* fix(forms): strengthen poll result bar fills by @404Wolf in https://github.com/macro-inc/macro/pull/8335
* fix(calls): improve controls layout and camera-off styling by @ehayes2000 in https://github.com/macro-inc/macro/pull/7746
* feat(agent): add Auto model routing and discounted Gemini pricing by @404Wolf in https://github.com/macro-inc/macro/pull/8389
* fix(invites): email every invitee in a multi-person team invite by @chaitbuilds in https://github.com/macro-inc/macro/pull/8436
* fix(soup): guard missing grouped query data during startup by @synoet in https://github.com/macro-inc/macro/pull/8440
* feat(composer): refine controls and expand plus menu by @jbecke in https://github.com/macro-inc/macro/pull/8377
* fix(calendar): use dropdown for month picker on desktop by @jbecke in https://github.com/macro-inc/macro/pull/8405
* fix(email): convert booking link mentions to clickable links in sent emails by @jbecke in https://github.com/macro-inc/macro/pull/8362
* feat(web): add draft icon for PR mentions by @jbecke in https://github.com/macro-inc/macro/pull/8340
* feat(mentions): show booking links in mentions menu when no text after @ by @jbecke in https://github.com/macro-inc/macro/pull/8326
* fix(block-md): update document title live when another person changes it by @jbecke in https://github.com/macro-inc/macro/pull/8331
* ci(desktop): decouple desktop-only native code from mobile release gates by @ehayes2000 in https://github.com/macro-inc/macro/pull/8441
* fix(marketing): prevent desktop demo flashing on mobile startup by @chaitbuilds in https://github.com/macro-inc/macro/pull/8457
* fix(reviews): keep pull requests in date order after live updates by @jbecke in https://github.com/macro-inc/macro/pull/8454
* refactor(call): type call providers and Granola sync states by @ehayes2000 in https://github.com/macro-inc/macro/pull/8431
* fix(layout): coalesce split resizing and prevent composer observer loops by @ehayes2000 in https://github.com/macro-inc/macro/pull/8174
* fix(command): find teammates before their first direct message by @gbirman in https://github.com/macro-inc/macro/pull/8435
* fix(call): refresh Soup when a Granola meeting is imported by @ehayes2000 in https://github.com/macro-inc/macro/pull/8458
* perf(email): walk each inbox link in index order by @synoet in https://github.com/macro-inc/macro/pull/7607
* fix(calendar): keep RSVP saving feedback inside the footer by @gbirman in https://github.com/macro-inc/macro/pull/8460
* perf(email): walk each inbox in index order for recency previews by @synoet in https://github.com/macro-inc/macro/pull/8453
* feat(macrod): Windows builds and one-line installers by @404Wolf in https://github.com/macro-inc/macro/pull/8448
* fix(email): finish Gmail draft moves while Outlook writes are off by @synoet in https://github.com/macro-inc/macro/pull/8462
* fix(marketing): polish mobile navigation and homepage demos by @chaitbuilds in https://github.com/macro-inc/macro/pull/8465
* perf(soup): serve NOTIFIED_AT on GraphQL soup and check by-ids access per id by @synoet in https://github.com/macro-inc/macro/pull/8450
* perf(notifications): page the GraphQL feed by notified entities by @synoet in https://github.com/macro-inc/macro/pull/8451
* perf(infra): right-size idle ECS tasks and tier S3 storage by @404Wolf in https://github.com/macro-inc/macro/pull/8442


**Full Changelog**: https://github.com/macro-inc/macro/compare/v2026.10.18.0...v2026.10.21.0

Related Repositories