v2026.5.26.0
What's Changed
- fix(search): index persistent chats so agent chat content is searchable by @gbirman in #3488
- feat(search): multi-term AND with quoted-phrase support for channel messages by @gbirman in #3489
- feat(calls): show share with team in call record by @whutchinson98 in #3485
- feat(auth): add in ability to generate gmail account link by @whutchinson98 in #3490
- fix(calls): team share toggle) by @whutchinson98 in #3494
- feat(search): chats v2 parent/child join + keyset backfill by @gbirman in #3492
- feat(tasks): pretty branch names by @whutchinson98 in #3495
- feat(team): add CRM enable/disable endpoint with team-level killswitch by @evanhutnik in #3486
- chore(infra): enable join-shape chats index reads on dev by @gbirman in #3497
- fix migration collision by @evanhutnik in #3502
- chore(ai): update agents.md with sqlx migrate instructions by @whutchinson98 in #3503
- fix(md): weird spread bug with md awareness labels by @sedson in #3504
- feat(github): support team-slug pr task integration by @whutchinson98 in #3506
- fix(search): apply role filter inside each per-term has_child clause for chats by @gbirman in #3507
- feat(search): call records v2 parent/child join + keyset backfill by @gbirman in #3499
- chore(infra): enable join-shape call records index reads on dev by @gbirman in #3500
- fix(task-compose): fix tab nav and max height by @sedson in #3509
- style(md): improve sidepanel style and prop rendering by @sedson in #3511
- fix: show mobile send button when only attachments are present by @peterchinman in #3445
- fix(soup): task narrow view by @peterchinman in #3439
- fix(mobile): preserve text selection when dismissing keyboard via ges… by @peterchinman in #3446
- fix(mobile): only condense single channel-message stacks by @peterchinman in #3440
- fix(soup): properties not applied to duplicate entities by @dev-rb in #3512
- feat(teams): do not allow non-paying teams to invite or have members join by @whutchinson98 in #3515
- feat(crm): skip populate_contact when contact and user share a domain by @evanhutnik in #3510
- feat(tasks): show github pr in tasks by @whutchinson98 in #3517
- chore(ai): start .pi folder for ai helpers by @whutchinson98 in #3518
- feat(teams): show and allow team slug to be edited by @whutchinson98 in #3519
- feat(soup): bundle email_filter+crm_scope, extend /ast endpoint, optimize precheck by @evanhutnik in #3516
- feat(crm): track updated_at on crm_companies and crm_contacts by @evanhutnik in #3520
- chore(env): add EMAIL_BACKFILL_QUEUE to local env files by @evanhutnik in #3521
- fix(property): clicking on item in popover causes click to propagate by @dev-rb in #3514
- chore(ai): sqlx migration skill by @whutchinson98 in #3524
- feat(ui): input active by @Fake-User in #3525
- fix(ui): shove the mess under the bed by @Fake-User in #3526
- feat(github): pr enricher by @whutchinson98 in #3522
- feat(sidebar): promo card for plan upgrade by @dev-rb in #3467
- feat(paywall): new paywall content and plans (behind ff) by @dev-rb in #3508
- feat(ui): animate package by @Fake-User in #3530
- feat(split-layout): per-entry state + navigation cause (Phase 1) by @gbirman in #3493
- chore(property): finish migration to new property package by @sedson in #3529
- feat(search): preserve query and filters on back/forward (Phase 2) by @gbirman in #3496
- fix(dropdown): allow override for trigger size by @sedson in #3531
- fix(ui): avatar background anti-aliasing by @Fake-User in #3532
- fix(soup): clear stale group-by when switching views within a split by @gbirman in #3534
- fix(sidebar): feature flag promo card by @dev-rb in #3528
- fix(teams): gate invite and join behind plan check by @dev-rb in #3527
- chore(docker): use docker compose command so you can use podman under the hood by @whutchinson98 in #3536
- feat(ai): structured completion endpoint with agent by @ehayes2000 in #3429
- synoet/call restyle by @synoet in #3505
- feat(github): better github pr view in tasks by @whutchinson98 in #3538
- fix(sidebar): promo showing for paid users by @dev-rb in #3542
- refactor(soup-view): split preferences from entry state (Phase 3) by @gbirman in #3535
- fix(ui): remove old cancerous dropdown classes by @Fake-User in #3544
- refactor(login): remove custom button component by @dev-rb in #3543
- feat(sidebar): restore prior entry state on sidebar nav by @gbirman in #3539
- fix(props): unify priority critical label by @sedson in #3549
- feat[mobile]: swipe in animation, and other improvements by @peterchinman in #3533
- feat(crm): track first_interaction/last_interaction + is_sent populate gate by @evanhutnik in #3548
- feat(email): improve reply type dropdown UI with labels and better styling by @synoet in #3547
- fix(channels): optimistic deletion of top-level messages without replies by @synoet in #3540
- fix(settings): restore subscription tier svg animation by @dev-rb in #3551
- style(task): update style for github pr pill and add section to sidepanel by @sedson in #3552
- feat(calls): move call sharing controls to side panel by @synoet in #3541
- feat(db): add foreign entity table by @whutchinson98 in #3546
- fix(notif): channel reply notif title by @seanaye in #3436
- fix(settings): name change not working by @dev-rb in #3553
- fix(ai): Email tool improvements by @evanhutnik in #3513
- fix(ui): focus styling for
ctabutton variant by @dev-rb in #3556 - feat(sidepanel): build out sidepanel ns components more by @sedson in #3557
Full Changelog: v2026.5.22.0...v2026.5.26.0