twenty/v2.29.0
twentyhq/twentytwenty/v2.29.0Aug 11, 2026by twenty-pr[bot]
AI Summary
Focuses on Slack integration enhancements, workflow automation improvements, and new call recording widget types, along with various bug fixes and UX improvements.
Key Highlights
- Slack integration improvements including record linking and bot mention stripping.
- New call recording transcript and summary widget types.
- Automated workflow triggers dispatched from core behind a flag.
- Row-level permissions enforced on joined relations.
New Features
- Link records and format assistant replies in Slack.
- Repair orphaned core workflow versions via upgrade command.
- Add call recording transcript and summary widget types.
- Enforce row-level permissions on joined relations.
Full Release Notes
<!-- generated-release-notes v1 -->
## β¨ New features
- feat(twenty-slack): link records and format the assistant reply footer ([#23539](https://github.com/twentyhq/twenty/pull/23539)) by @abdulrahmancodes
- feat(slack): cache the Slack bot user id at connect time ([#23726](https://github.com/twentyhq/twenty/pull/23726)) by @abdulrahmancodes
- feat(workflow): repair orphan core workflow versions via upgrade command ([#23739](https://github.com/twentyhq/twenty/pull/23739)) by @thomtrp
- feat(server): export event-loop delay and workspace-cache recompute metrics ([#23751](https://github.com/twentyhq/twenty/pull/23751)) by @charlesBochet
- feat(slack): release the Slack team claim when the connection goes away ([#23753](https://github.com/twentyhq/twenty/pull/23753)) by @abdulrahmancodes
- feat(workflow): dispatch automated triggers from core behind a flag ([#23775](https://github.com/twentyhq/twenty/pull/23775)) by @thomtrp
- feat(server): instrument the local metadata cache and cap heavy providers by entry count ([#23778](https://github.com/twentyhq/twenty/pull/23778)) by @charlesBochet
- feat(slack): strip the bot's own mention anywhere in the request text ([#23837](https://github.com/twentyhq/twenty/pull/23837)) by @abdulrahmancodes
## π
Improvements & UX
- Make subdomain minimum length configurable via env var ([#23209](https://github.com/twentyhq/twenty/pull/23209)) by @ijreilly
- Enforce row-level permissions on joined relations ([#23369](https://github.com/twentyhq/twenty/pull/23369)) by @bosiraphael
- Add messages support to runAgent for multi-turn bot conversations ([#23395](https://github.com/twentyhq/twenty/pull/23395)) by @abdulrahmancodes
- Add a book-a-call onboarding step for qualified leads ([#23521](https://github.com/twentyhq/twenty/pull/23521)) by @bosiraphael
- Stop showing raw chunk load errors ([#23571](https://github.com/twentyhq/twenty/pull/23571)) by @bosiraphael
- Fix grouping a view that can no longer be changed or removed ([#23619](https://github.com/twentyhq/twenty/pull/23619)) by @abdulrahmancodes
- Fan out Fireflies backfill into batched jobs ([#23622](https://github.com/twentyhq/twenty/pull/23622)) by @ehconitin
- Feat/advanced text editor capability presets ([#23657](https://github.com/twentyhq/twenty/pull/23657)) by @ijreilly
- Add cookie-session integration test suite ([#23715](https://github.com/twentyhq/twenty/pull/23715)) by @prastoin
- Hide onboarding credits when billing is disabled ([#23717](https://github.com/twentyhq/twenty/pull/23717)) by @bosiraphael
- Update website release notes through 2.26 ([#23736](https://github.com/twentyhq/twenty/pull/23736)) by @Bonapara
- Run the people-data-labs spec suite in CI ([#23743](https://github.com/twentyhq/twenty/pull/23743)) by @bosiraphael
- Continue the workspace setup chat in the side panel when navigating away ([#23744](https://github.com/twentyhq/twenty/pull/23744)) by @bosiraphael
- Ignore expired invitations in invitation lookups ([#23749](https://github.com/twentyhq/twenty/pull/23749)) by @prastoin
- Add IS_FEATURE_FLAG_MANAGEMENT_ENABLED to unlock feature flag toggling outside cloud ([#23750](https://github.com/twentyhq/twenty/pull/23750)) by @FelixMalfait
- Dnd library migration fixes and changes ([#23752](https://github.com/twentyhq/twenty/pull/23752)) by @git-init-priyanshu
- Keep the token pair as a fallback after switching to cookie auth ([#23755](https://github.com/twentyhq/twenty/pull/23755)) by @FelixMalfait
- Add global admin panel chat list with onboarding filter and enriched transcript ([#23757](https://github.com/twentyhq/twenty/pull/23757)) by @bosiraphael
- Standardize dragged element feedback ([#23772](https://github.com/twentyhq/twenty/pull/23772)) by @Bonapara
- Restrict which workspace fields can be updated before activation ([#23781](https://github.com/twentyhq/twenty/pull/23781)) by @prastoin
- Refactor outbound email content compilation ([#23782](https://github.com/twentyhq/twenty/pull/23782)) by @FelixMalfait
- Make the call recorder transcript provider an application variable ([#23789](https://github.com/twentyhq/twenty/pull/23789)) by @ehconitin
- Add OpenTelemetry metrics to workspace migration build and run ([#23797](https://github.com/twentyhq/twenty/pull/23797)) by @prastoin
- Fix stray bracket after AI chat chips ([#23798](https://github.com/twentyhq/twenty/pull/23798)) by @bosiraphael
- Fix workflow email body overflowing into the attachments section ([#23810](https://github.com/twentyhq/twenty/pull/23810)) by @ijreilly
- Fix AI campaign editing: tool auth context in workers and live editor resync ([#23811](https://github.com/twentyhq/twenty/pull/23811)) by @FelixMalfait
- Stop classifying Recall bot-detection timeouts as NOT_RECORDED in call-recorder ([#23812](https://github.com/twentyhq/twenty/pull/23812)) by @ehconitin
- Bump vulnerable dependencies flagged by ECR image scanning ([#23813](https://github.com/twentyhq/twenty/pull/23813)) by @charlesBochet
- Fix widget view save paths dropping relationTargetFieldMetadataId ([#23814](https://github.com/twentyhq/twenty/pull/23814)) by @FelixMalfait
- Add nested relation Field widgets on record page layouts ([#23815](https://github.com/twentyhq/twenty/pull/23815)) by @FelixMalfait
- Cancel drag activation when the drag source unmounts mid-gesture ([#23816](https://github.com/twentyhq/twenty/pull/23816)) by @FelixMalfait
- Report a sending domain as pending while SES waits for the DKIM records ([#23818](https://github.com/twentyhq/twenty/pull/23818)) by @ijreilly
- Extend live update coverage: workflow draft updates and side-panel records ([#23830](https://github.com/twentyhq/twenty/pull/23830)) by @FelixMalfait
- Make AI chat streaming render cost independent of message length ([#23831](https://github.com/twentyhq/twenty/pull/23831)) by @FelixMalfait
- Fix client-side record matching for nested relation filters ([#23832](https://github.com/twentyhq/twenty/pull/23832)) by @FelixMalfait
- slack: answer empty requests and nudge lapsed threads ([#23835](https://github.com/twentyhq/twenty/pull/23835)) by @abdulrahmancodes
- Rename credits "Increase" button to "Manage" ([#23840](https://github.com/twentyhq/twenty/pull/23840)) by @FelixMalfait
- Scope sessions and application authorizations to the workspace ([#23843](https://github.com/twentyhq/twenty/pull/23843)) by @FelixMalfait
- Fix missing border below the last record table row ([#23846](https://github.com/twentyhq/twenty/pull/23846)) by @FelixMalfait
- Revert AI chat chips to the [[kind:...:label]] syntax ([#23852](https://github.com/twentyhq/twenty/pull/23852)) by @bosiraphael
- Add call recording transcript and summary widget types ([#23864](https://github.com/twentyhq/twenty/pull/23864)) by @ehconitin
- Escape JSON-LD payloads before inlining them in a script tag ([#23865](https://github.com/twentyhq/twenty/pull/23865)) by @FelixMalfait
- Strip template elements from the HTML block preview ([#23866](https://github.com/twentyhq/twenty/pull/23866)) by @FelixMalfait
- Clear to-one relation key instead of storing {id: null} in record workflow steps ([#23869](https://github.com/twentyhq/twenty/pull/23869)) by @thomtrp
- Revert "Make subdomain minimum length configurable via env var" ([#23871](https://github.com/twentyhq/twenty/pull/23871)) by @ijreilly
- Gate the workspace setup AI chat to workspace creators ([#23881](https://github.com/twentyhq/twenty/pull/23881)) by @bosiraphael
- Show only the record title in the mobile page header ([#23902](https://github.com/twentyhq/twenty/pull/23902)) by @FelixMalfait
## π Bug fixes
- fix: allow app-manifest RECORD_TABLE widgets to reference a view by universal identifier ([#23634](https://github.com/twentyhq/twenty/pull/23634)) by @thomtrp
- fix(twenty-front): expand HTML preview viewport in DocumentViewer (#23668) ([#23676](https://github.com/twentyhq/twenty/pull/23676)) by @Shinu-Cherian
- fix(front): show relation value chip (Me / record names) in advanced filters ([#23718](https://github.com/twentyhq/twenty/pull/23718)) by @charlesBochet
- fix(settings): unbreak the AI tools table and validate page-level graphql documents ([#23731](https://github.com/twentyhq/twenty/pull/23731)) by @FelixMalfait
- fix(front): only show Discard Draft when workflow has a published version ([#23756](https://github.com/twentyhq/twenty/pull/23756)) by @thomtrp
- fix(workflow): reject if-else branches with a dangling filterGroupId ([#23758](https://github.com/twentyhq/twenty/pull/23758)) by @blockgroot
- fix(twenty-front): stop field widget layout dropdown from crashing th⦠([#23784](https://github.com/twentyhq/twenty/pull/23784)) by @FelixMalfait
- fix(twenty-server): compose email from the caller's own connected account ([#23793](https://github.com/twentyhq/twenty/pull/23793)) by @charlesBochet
- fix(twenty-server): stop the yarn-install Lambda from running out of memory ([#23805](https://github.com/twentyhq/twenty/pull/23805)) by @charlesBochet
- fix(workflow): make core-consistency drift check trustworthy for rollout ([#23807](https://github.com/twentyhq/twenty/pull/23807)) by @thomtrp
- fix(front): apply advanced filter value and operand edits after a fresh page load ([#23819](https://github.com/twentyhq/twenty/pull/23819)) by @charlesBochet
- fix(twenty-front): keep auto-select model preselection instead of discarding it ([#23854](https://github.com/twentyhq/twenty/pull/23854)) by @charlesBochet
- fix(front): run a single Monaco instance across the app ([#23855](https://github.com/twentyhq/twenty/pull/23855)) by @FelixMalfait
- fix(twenty-server): notify SSE subscribers when an update leaves their filtered view ([#23858](https://github.com/twentyhq/twenty/pull/23858)) by @charlesBochet
- fix(front): preserve currency decimals when opening the field editor ([#23874](https://github.com/twentyhq/twenty/pull/23874)) by @thomtrp
## π§ Developer & API
- webhook subscriptions error handling ([#23707](https://github.com/twentyhq/twenty/pull/23707)) by @neo773
- Accept a singleton or filter in the GraphQL filter walker ([#23738](https://github.com/twentyhq/twenty/pull/23738)) by @bosiraphael
- Proxy API routes through the vite dev server to keep local dev same-origin ([#23779](https://github.com/twentyhq/twenty/pull/23779)) by @prastoin
- Give AWS SDK clients an explicit request timeout ([#23857](https://github.com/twentyhq/twenty/pull/23857)) by @charlesBochet
- Self-host every font instead of loading them from Google ([#23859](https://github.com/twentyhq/twenty/pull/23859)) by @FelixMalfait
<details>
<summary>ποΈ Internal changes (3)</summary>
- chore(codeowners): guard .claude, .mcp.json and CLAUDE.md ([#23734](https://github.com/twentyhq/twenty/pull/23734)) by @prastoin
- refactor(front): move workflow run step logs into workflow-actions ([#23841](https://github.com/twentyhq/twenty/pull/23841)) by @thomtrp
- ci(pr-review): stop a skipped label dispatch from cancelling the open dispatch ([#23856](https://github.com/twentyhq/twenty/pull/23856)) by @charlesBochet
</details>
## π New contributors
- @blockgroot made their first contribution in https://github.com/twentyhq/twenty/pull/23758
<details>
<summary>Full changelog (98 PRs)</summary>
- Make subdomain minimum length configurable via env var ([#23209](https://github.com/twentyhq/twenty/pull/23209)) by @ijreilly
- Enforce row-level permissions on joined relations ([#23369](https://github.com/twentyhq/twenty/pull/23369)) by @bosiraphael
- Add messages support to runAgent for multi-turn bot conversations ([#23395](https://github.com/twentyhq/twenty/pull/23395)) by @abdulrahmancodes
- Add a book-a-call onboarding step for qualified leads ([#23521](https://github.com/twentyhq/twenty/pull/23521)) by @bosiraphael
- feat(twenty-slack): link records and format the assistant reply footer ([#23539](https://github.com/twentyhq/twenty/pull/23539)) by @abdulrahmancodes
- Stop showing raw chunk load errors ([#23571](https://github.com/twentyhq/twenty/pull/23571)) by @bosiraphael
- Fix grouping a view that can no longer be changed or removed ([#23619](https://github.com/twentyhq/twenty/pull/23619)) by @abdulrahmancodes
- Fan out Fireflies backfill into batched jobs ([#23622](https://github.com/twentyhq/twenty/pull/23622)) by @ehconitin
- fix: allow app-manifest RECORD_TABLE widgets to reference a view by universal identifier ([#23634](https://github.com/twentyhq/twenty/pull/23634)) by @thomtrp
- Feat/advanced text editor capability presets ([#23657](https://github.com/twentyhq/twenty/pull/23657)) by @ijreilly
- fix(twenty-front): expand HTML preview viewport in DocumentViewer (#23668) ([#23676](https://github.com/twentyhq/twenty/pull/23676)) by @Shinu-Cherian
- webhook subscriptions error handling ([#23707](https://github.com/twentyhq/twenty/pull/23707)) by @neo773
- Add cookie-session integration test suite ([#23715](https://github.com/twentyhq/twenty/pull/23715)) by @prastoin
- Hide onboarding credits when billing is disabled ([#23717](https://github.com/twentyhq/twenty/pull/23717)) by @bosiraphael
- fix(front): show relation value chip (Me / record names) in advanced filters ([#23718](https://github.com/twentyhq/twenty/pull/23718)) by @charlesBochet
- feat(slack): cache the Slack bot user id at connect time ([#23726](https://github.com/twentyhq/twenty/pull/23726)) by @abdulrahmancodes
- chore: bump version to 2.28.0 ([#23730](https://github.com/twentyhq/twenty/pull/23730)) by @twenty-pr
- fix(settings): unbreak the AI tools table and validate page-level graphql documents ([#23731](https://github.com/twentyhq/twenty/pull/23731)) by @FelixMalfait
- chore(codeowners): guard .claude, .mcp.json and CLAUDE.md ([#23734](https://github.com/twentyhq/twenty/pull/23734)) by @prastoin
- Update website release notes through 2.26 ([#23736](https://github.com/twentyhq/twenty/pull/23736)) by @Bonapara
- Accept a singleton or filter in the GraphQL filter walker ([#23738](https://github.com/twentyhq/twenty/pull/23738)) by @bosiraphael
- feat(workflow): repair orphan core workflow versions via upgrade command ([#23739](https://github.com/twentyhq/twenty/pull/23739)) by @thomtrp
- i18n - translations ([#23740](https://github.com/twentyhq/twenty/pull/23740)) by @github-actions
- Run the people-data-labs spec suite in CI ([#23743](https://github.com/twentyhq/twenty/pull/23743)) by @bosiraphael
- Continue the workspace setup chat in the side panel when navigating away ([#23744](https://github.com/twentyhq/twenty/pull/23744)) by @bosiraphael
- i18n - translations ([#23746](https://github.com/twentyhq/twenty/pull/23746)) by @github-actions
- i18n - translations ([#23748](https://github.com/twentyhq/twenty/pull/23748)) by @github-actions
- Ignore expired invitations in invitation lookups ([#23749](https://github.com/twentyhq/twenty/pull/23749)) by @prastoin
- Add IS_FEATURE_FLAG_MANAGEMENT_ENABLED to unlock feature flag toggling outside cloud ([#23750](https://github.com/twentyhq/twenty/pull/23750)) by @FelixMalfait
- feat(server): export event-loop delay and workspace-cache recompute metrics ([#23751](https://github.com/twentyhq/twenty/pull/23751)) by @charlesBochet
- Dnd library migration fixes and changes ([#23752](https://github.com/twentyhq/twenty/pull/23752)) by @git-init-priyanshu
- feat(slack): release the Slack team claim when the connection goes away ([#23753](https://github.com/twentyhq/twenty/pull/23753)) by @abdulrahmancodes
- Keep the token pair as a fallback after switching to cookie auth ([#23755](https://github.com/twentyhq/twenty/pull/23755)) by @FelixMalfait
- fix(front): only show Discard Draft when workflow has a published version ([#23756](https://github.com/twentyhq/twenty/pull/23756)) by @thomtrp
- Add global admin panel chat list with onboarding filter and enriched transcript ([#23757](https://github.com/twentyhq/twenty/pull/23757)) by @bosiraphael
- fix(workflow): reject if-else branches with a dangling filterGroupId ([#23758](https://github.com/twentyhq/twenty/pull/23758)) by @blockgroot
- Standardize dragged element feedback ([#23772](https://github.com/twentyhq/twenty/pull/23772)) by @Bonapara
- feat(workflow): dispatch automated triggers from core behind a flag ([#23775](https://github.com/twentyhq/twenty/pull/23775)) by @thomtrp
- feat(server): instrument the local metadata cache and cap heavy providers by entry count ([#23778](https://github.com/twentyhq/twenty/pull/23778)) by @charlesBochet
- Proxy API routes through the vite dev server to keep local dev same-origin ([#23779](https://github.com/twentyhq/twenty/pull/23779)) by @prastoin
- Restrict which workspace fields can be updated before activation ([#23781](https://github.com/twentyhq/twenty/pull/23781)) by @prastoin
- Refactor outbound email content compilation ([#23782](https://github.com/twentyhq/twenty/pull/23782)) by @FelixMalfait
- fix(twenty-front): stop field widget layout dropdown from crashing th⦠([#23784](https://github.com/twentyhq/twenty/pull/23784)) by @FelixMalfait
- Make the call recorder transcript provider an application variable ([#23789](https://github.com/twentyhq/twenty/pull/23789)) by @ehconitin
- fix(twenty-server): compose email from the caller's own connected account ([#23793](https://github.com/twentyhq/twenty/pull/23793)) by @charlesBochet
- i18n - translations ([#23794](https://github.com/twentyhq/twenty/pull/23794)) by @github-actions
- i18n - docs translations ([#23796](https://github.com/twentyhq/twenty/pull/23796)) by @github-actions
- Add OpenTelemetry metrics to workspace migration build and run ([#23797](https://github.com/twentyhq/twenty/pull/23797)) by @prastoin
- Fix stray bracket after AI chat chips ([#23798](https://github.com/twentyhq/twenty/pull/23798)) by @bosiraphael
- i18n - translations ([#23800](https://github.com/twentyhq/twenty/pull/23800)) by @github-actions
- i18n - translations ([#23803](https://github.com/twentyhq/twenty/pull/23803)) by @github-actions
- fix(twenty-server): stop the yarn-install Lambda from running out of memory ([#23805](https://github.com/twentyhq/twenty/pull/23805)) by @charlesBochet
- i18n - translations ([#23806](https://github.com/twentyhq/twenty/pull/23806)) by @github-actions
- fix(workflow): make core-consistency drift check trustworthy for rollout ([#23807](https://github.com/twentyhq/twenty/pull/23807)) by @thomtrp
- Fix workflow email body overflowing into the attachments section ([#23810](https://github.com/twentyhq/twenty/pull/23810)) by @ijreilly
- Fix AI campaign editing: tool auth context in workers and live editor resync ([#23811](https://github.com/twentyhq/twenty/pull/23811)) by @FelixMalfait
- Stop classifying Recall bot-detection timeouts as NOT_RECORDED in call-recorder ([#23812](https://github.com/twentyhq/twenty/pull/23812)) by @ehconitin
- Bump vulnerable dependencies flagged by ECR image scanning ([#23813](https://github.com/twentyhq/twenty/pull/23813)) by @charlesBochet
- Fix widget view save paths dropping relationTargetFieldMetadataId ([#23814](https://github.com/twentyhq/twenty/pull/23814)) by @FelixMalfait
- Add nested relation Field widgets on record page layouts ([#23815](https://github.com/twentyhq/twenty/pull/23815)) by @FelixMalfait
- Cancel drag activation when the drag source unmounts mid-gesture ([#23816](https://github.com/twentyhq/twenty/pull/23816)) by @FelixMalfait
- Report a sending domain as pending while SES waits for the DKIM records ([#23818](https://github.com/twentyhq/twenty/pull/23818)) by @ijreilly
- fix(front): apply advanced filter value and operand edits after a fresh page load ([#23819](https://github.com/twentyhq/twenty/pull/23819)) by @charlesBochet
- chore: bump version to 2.29.0 ([#23820](https://github.com/twentyhq/twenty/pull/23820)) by @twenty-pr
- Extend live update coverage: workflow draft updates and side-panel records ([#23830](https://github.com/twentyhq/twenty/pull/23830)) by @FelixMalfait
- Make AI chat streaming render cost independent of message length ([#23831](https://github.com/twentyhq/twenty/pull/23831)) by @FelixMalfait
- Fix client-side record matching for nested relation filters ([#23832](https://github.com/twentyhq/twenty/pull/23832)) by @FelixMalfait
- i18n - translations ([#23834](https://github.com/twentyhq/twenty/pull/23834)) by @github-actions
- slack: answer empty requests and nudge lapsed threads ([#23835](https://github.com/twentyhq/twenty/pull/23835)) by @abdulrahmancodes
- feat(slack): strip the bot's own mention anywhere in the request text ([#23837](https://github.com/twentyhq/twenty/pull/23837)) by @abdulrahmancodes
- chore: sync AI model catalog from models.dev ([#23839](https://github.com/twentyhq/twenty/pull/23839)) by @github-actions
- Rename credits "Increase" button to "Manage" ([#23840](https://github.com/twentyhq/twenty/pull/23840)) by @FelixMalfait
- refactor(front): move workflow run step logs into workflow-actions ([#23841](https://github.com/twentyhq/twenty/pull/23841)) by @thomtrp
- Scope sessions and application authorizations to the workspace ([#23843](https://github.com/twentyhq/twenty/pull/23843)) by @FelixMalfait
- i18n - translations ([#23844](https://github.com/twentyhq/twenty/pull/23844)) by @github-actions
- i18n - translations ([#23845](https://github.com/twentyhq/twenty/pull/23845)) by @github-actions
- Fix missing border below the last record table row ([#23846](https://github.com/twentyhq/twenty/pull/23846)) by @FelixMalfait
- i18n - docs translations ([#23851](https://github.com/twentyhq/twenty/pull/23851)) by @github-actions
- Revert AI chat chips to the [[kind:...:label]] syntax ([#23852](https://github.com/twentyhq/twenty/pull/23852)) by @bosiraphael
- i18n - translations ([#23853](https://github.com/twentyhq/twenty/pull/23853)) by @github-actions
- fix(twenty-front): keep auto-select model preselection instead of discarding it ([#23854](https://github.com/twentyhq/twenty/pull/23854)) by @charlesBochet
- fix(front): run a single Monaco instance across the app ([#23855](https://github.com/twentyhq/twenty/pull/23855)) by @FelixMalfait
- ci(pr-review): stop a skipped label dispatch from cancelling the open dispatch ([#23856](https://github.com/twentyhq/twenty/pull/23856)) by @charlesBochet
- Give AWS SDK clients an explicit request timeout ([#23857](https://github.com/twentyhq/twenty/pull/23857)) by @charlesBochet
- fix(twenty-server): notify SSE subscribers when an update leaves their filtered view ([#23858](https://github.com/twentyhq/twenty/pull/23858)) by @charlesBochet
- Self-host every font instead of loading them from Google ([#23859](https://github.com/twentyhq/twenty/pull/23859)) by @FelixMalfait
- i18n - translations ([#23860](https://github.com/twentyhq/twenty/pull/23860)) by @github-actions
- Add call recording transcript and summary widget types ([#23864](https://github.com/twentyhq/twenty/pull/23864)) by @ehconitin
- Escape JSON-LD payloads before inlining them in a script tag ([#23865](https://github.com/twentyhq/twenty/pull/23865)) by @FelixMalfait
- Strip template elements from the HTML block preview ([#23866](https://github.com/twentyhq/twenty/pull/23866)) by @FelixMalfait
- Clear to-one relation key instead of storing {id: null} in record workflow steps ([#23869](https://github.com/twentyhq/twenty/pull/23869)) by @thomtrp
- Revert "Make subdomain minimum length configurable via env var" ([#23871](https://github.com/twentyhq/twenty/pull/23871)) by @ijreilly
- i18n - translations ([#23873](https://github.com/twentyhq/twenty/pull/23873)) by @github-actions
- fix(front): preserve currency decimals when opening the field editor ([#23874](https://github.com/twentyhq/twenty/pull/23874)) by @thomtrp
- i18n - docs translations ([#23878](https://github.com/twentyhq/twenty/pull/23878)) by @github-actions
- Gate the workspace setup AI chat to workspace creators ([#23881](https://github.com/twentyhq/twenty/pull/23881)) by @bosiraphael
- Show only the record title in the mobile page header ([#23902](https://github.com/twentyhq/twenty/pull/23902)) by @FelixMalfait
- i18n - translations ([#23905](https://github.com/twentyhq/twenty/pull/23905)) by @github-actions
</details>
**Full Changelog**: https://github.com/twentyhq/twenty/compare/twenty/v2.27.0...twenty/v2.29.0