v2026.7.22.1
What's Changed
- chore: remove legacy internal auth by @whutchinson98 in #5043
- chore: remove attach_user_permissions by @whutchinson98 in #5051
- feat(seed): config-driven scenario seeding for teams/perms/entities by @gbirman in #4812
- refactor(email): remove Details panel from thread side panel by @evanhutnik in #5054
- fix(automations): disable duplicate action for automation entities by @jbecke in #5050
- fix(quick-access): not able to get item from quick access because of pagination by @dev-rb in #5056
- fix(graphql-soup): forward team receipts to flat soup by @seanaye in #5057
- feat(teams): add auto join team channel support by @whutchinson98 in #5061
- seanaye/feat/broadcast fanout by @seanaye in #5062
- wolf: inline ai editing by @404Wolf in #4911
- feat(teams): default team channel on team creation by @whutchinson98 in #5063
- feat(channels): add in viewonly channel access by @whutchinson98 in #5064
- fix(md): drag insert indicator not disappearing on image drop by @peterchinman in #5055
- fix: better url link handling by @peterchinman in #5049
- feat(properties): bulk entity property option updates by @gbirman in #4975
- fix(local): isolate named-instance scenario seeding by @gbirman in #5071
- feat(channels): join channel using viewonly permission by @whutchinson98 in #5076
- feat(email): mark thread read/unread from thread view, cmd-K, and soup by @evanhutnik in #5059
- fix(email): scope contact lookup to link_id in link_has_any_message_with by @evanhutnik in #5073
- feat(channel): default macro support channel for new users by @whutchinson98 in #5077
- fix(teams): only set is_paying if subscription id is provided by @whutchinson98 in #5078
- fix cargo deny ammonia advisory by @seanaye in #5081
- fix notifications for channel thread edges by @seanaye in #5080
- Add mobile web signup flow for unauthenticated visitors by @jbecke in #5082
- chore: kafka record document sync service events by @404Wolf in #4788
- feat(onboarding): send mobile welcome email via auth service on signup by @evanhutnik in #5085
- fix(email): preserve paragraph spacing in sent emails by @evanhutnik in #5079
- feat(channel): support is_participant in soup and channel join for participating channels by @whutchinson98 in #5083
- feat(crm): manual company and contact creation by @evanhutnik in #5084
- fix(teams): unique domain index by @whutchinson98 in #5086
- feat(properties): cross-entity bulk option/tag update endpoint + AI tool by @gbirman in #5070
- feat(search): add server-side channel name search for ai tools by @gbirman in #5072
- refactor(onboarding): use ts-pattern match for error-code dispatch by @evanhutnik in #5088
- fix(soup): ListEntities prompt is out of date by @ehayes2000 in #5066
- fix(editor): keep empty paragraph when inserting a block node into an empty doc by @ehayes2000 in #5087
- fix(dynamic-ui): render emails correctly in AI list widgets by @ehayes2000 in #5065
- fix(tags): keep doc render fast for public-link viewers by @gbirman in #5091
- feat(channel): create team channel and auto join by @dev-rb in #5093
- Seanaye/feat/soup realtime by @seanaye in #5068
- fix(channels): create team channel with auto join adds team members by @whutchinson98 in #5096
- fix(channel): display current team members when auto join is on by @dev-rb in #5098
- feat(ai-tools): colored tag chips + item count for property-update tool cards by @gbirman in #5099
- refactor(tags): remove tags + tags-search feature flags (GA) by @gbirman in #5097
- fix(task): fix dropdown going up on ct by @synoet in #5094
- Seanaye/feat/strong consumer typing by @seanaye in #5092
- chg(welcome): welcome channel name formatting, automatically favorite welcome channel by @synoet in #5089
- feat(channels): support welcome message from julia by @synoet in #5104
- fix(analytics): track user payment status by @synoet in #5101
Full Changelog: v2026.7.20.1...v2026.7.22.1