v2026.5.28.0
macro-inc/macrov2026.5.28.0May 28, 2026by synoet
AI Summary
This release focuses on stabilizing multi-inbox infrastructure by fixing Gmail OAuth callbacks and introduces foreign entities for GitHub PRs.
Key Highlights
- Fixed Gmail OAuth callback logic
- Foreign entity support for GitHub PRs
- UI improvements (radio/checkbox, markdown delete)
- Channel ops moved to new hex service
New Features
- Multi-inbox linking fixes
- GitHub PR foreign entities
- Channel storage service migration
Full Release Notes
## What's Changed * fix(soup): new filter clearing bug by @sedson in https://github.com/macro-inc/macro/pull/3596 * feat(email): wire /link/gmail → callback → /email/init for multi-inbox by @gbirman in https://github.com/macro-inc/macro/pull/3593 * fix(auth): no-op on already-linked Google identity in /link/gmail callback by @gbirman in https://github.com/macro-inc/macro/pull/3597 * fix(db): drop email_links.macro_id unique index to unblock multi-inbox by @gbirman in https://github.com/macro-inc/macro/pull/3599 * fix(auth): free in_progress_user_link slot on failed Gmail OAuth callback by @gbirman in https://github.com/macro-inc/macro/pull/3598 * chore(pi): sqlx query validator skill by @whutchinson98 in https://github.com/macro-inc/macro/pull/3602 * chore(pi): add rust validation skill by @whutchinson98 in https://github.com/macro-inc/macro/pull/3601 * feat(github): add foreign entity for prs by @whutchinson98 in https://github.com/macro-inc/macro/pull/3590 * db checker agent by @whutchinson98 in https://github.com/macro-inc/macro/pull/3603 * feat: ai pricing by @ehayes2000 in https://github.com/macro-inc/macro/pull/3545 * fix(sfs): add CORS headers to CloudFront /file/* responses by @ehayes2000 in https://github.com/macro-inc/macro/pull/3591 * feat(ui): radio / checkbox by @Fake-User in https://github.com/macro-inc/macro/pull/3606 * feat(md): delete btn and cmd-a override for markdown code boxes by @sedson in https://github.com/macro-inc/macro/pull/3607 * fix(search): upgrade bundled pdfium to chromium/7857 by @gbirman in https://github.com/macro-inc/macro/pull/3609 * feat(channels): repoint frontend channel ops from @service-comms to @service-storage by @synoet in https://github.com/macro-inc/macro/pull/3605 * fix(mobile): clean up forward transition state machine by @peterchinman in https://github.com/macro-inc/macro/pull/3608 * chore(deps): pin pdfium-render API to pdfium_7543 by @gbirman in https://github.com/macro-inc/macro/pull/3612 * fix(login): auto focus email and otp inputs across stages by @synoet in https://github.com/macro-inc/macro/pull/3610 * fix(ai): task properties by @whutchinson98 in https://github.com/macro-inc/macro/pull/3617 * fix(md): escape hatches for lagging tanstack in rename mutation from title editor by @sedson in https://github.com/macro-inc/macro/pull/3616 * chore(ci): simplify deploy pipeline by @whutchinson98 in https://github.com/macro-inc/macro/pull/3619 * feat(multi-inbox): narrow-graph dispatch for cross-account inbox add by @gbirman in https://github.com/macro-inc/macro/pull/3614 * fix(ui): single check by @Fake-User in https://github.com/macro-inc/macro/pull/3620 * revert: remove FA IdP link data tagging by @gbirman in https://github.com/macro-inc/macro/pull/3621 * fix(ui): stupid scroll hammer by @Fake-User in https://github.com/macro-inc/macro/pull/3622 * feat(channels): port attachment references endpoint to channels hex by @synoet in https://github.com/macro-inc/macro/pull/3611 * feat(core-components): simplify SplitFileMenu to use MobileDrawer and standard Dropdown by @sedson in https://github.com/macro-inc/macro/pull/3624 * feat(fusionauth): reconcile lambda rejecting secondary-link sign-in by @gbirman in https://github.com/macro-inc/macro/pull/3623 * feat(channels): serve channel list via storage client by @synoet in https://github.com/macro-inc/macro/pull/3625 * fix(image_proxy): allow octet stream by @whutchinson98 in https://github.com/macro-inc/macro/pull/3628 * fix(auth): return generic error when oauth callback has no code by @gbirman in https://github.com/macro-inc/macro/pull/3629 * chore(channels): use MacroUserExtractor across channels handlers by @synoet in https://github.com/macro-inc/macro/pull/3631 * feat(channels): port entity-mentions endpoints to channels hex by @synoet in https://github.com/macro-inc/macro/pull/3618 * fix(mobile/share): dropdown scope and dismiss fix by @sedson in https://github.com/macro-inc/macro/pull/3634 * fix[mobile]: restructure push notification navigation by @peterchinman in https://github.com/macro-inc/macro/pull/3633 * feat(channels): port channel previews (POST /preview) to channels hex by @synoet in https://github.com/macro-inc/macro/pull/3615 * feat(style): make empty states more descriptive and useful by @aidanhb in https://github.com/macro-inc/macro/pull/3627 * style(properties): use panel components in call panel, restyle multiselect props, dropdown checkbox by @sedson in https://github.com/macro-inc/macro/pull/3639 * feat(channels): port /activity endpoints to channels hex [3/7] by @synoet in https://github.com/macro-inc/macro/pull/3638 **Full Changelog**: https://github.com/macro-inc/macro/compare/v2026.5.27.0...v2026.5.28.0