What's Changed
- Unify application version gate, registration writes and upgrade paths across sources by @martmull in #22931
- chore: bump version to 2.23.0 by @twenty-pr[bot] in #22975
- fix(serverless): flush IPC message before exiting local function runner by @phelix001 in #22920
- [2/2] Write CREATED at activation, clean stale onboarding workspaces by @charlesBochet in #22915
- Revert "Remove calendar week view feature flag from public flags" by @Weiko in #22987
- Add mostly-empty field hints to data model settings by @FelixMalfait in #22962
- i18n - translations by @github-actions[bot] in #22988
- fix(docker): bump curl pin to 8.20.0-r0 (2 high + 6 medium CVEs) by @charlesBochet in #22994
- Only show the install-apps onboarding step to workspace creators by @charlesBochet in #22990
- fix(server): stop treating Microsoft Graph 401 as a permanent failure by @neo773 in #22989
- fix(front): only sign out when token renewal is rejected by the server by @FelixMalfait in #22983
- Reduce Recall bot lifecycle reconciliation traffic by @ehconitin in #22908
- Count self-hosted billable seats per distinct user by @FelixMalfait in #22986
- Fix join at in the past by @martmull in #23000
- docs(skills): use 'twenty apply' in codex-plugin skills (dev --once deprecated) by @admin-laicadev in #22880
- Copy application source files during build and install by @Weiko in #22991
- fix(twenty-server): re-list marketplace registration when catalog serves an app first installed locally by @nicoko93 in #22877
- Client brief wizard — /partners/brief by @rashad in #22291
- Converge email recipient fields on existing patterns: shared parser/formatter, search-index members, one display-name rule by @FelixMalfait in #22997
- i18n - website translations by @github-actions[bot] in #23005
- feat(email-group): communications UX, per-record DNS status by @neo773 in #23002
- i18n - translations by @github-actions[bot] in #23007
- chore: sync AI model catalog from models.dev by @github-actions[bot] in #23015
- fix(server): shard the server-test unit job to stop the intermittent crash by @FelixMalfait in #23009
- Reduce call-recorder Recall API load and harden bot scheduling recovery by @martmull in #23014
- Bump app version by @martmull in #23049
- Skip install-apps onboarding step for invited users by @bosiraphael in #22823
- Ignore call-recorder bots for unsupported meeting platforms by @martmull in #23050
- fix(messaging): register and harden webhook subscription renewal cron by @neo773 in #23006
- feat(workflow): backfill + dual-write for core workflow entity by @thomtrp in #22776
- fix(server): recover workflow runs whose queue job was lost - monitoring only by @thomtrp in #22995
- Fix duplicate searchFieldMetadata inserts in the 2.16 backfill upgrade command by @prastoin in #23060
- v1.3.0 — Partner workspace self-service (glowup app) by @rashad in #22929
- fix(server): stop cross-pod recompute cascade on localDataOnly workspace cache keys by @FelixMalfait in #22980
- Show the onboarding welcome animation on sign-up only by @bosiraphael in #23057
- chore(twenty-exa): bump to 0.2.0, add marketplace metadata and Twenty version floor by @etiennejouan in #23063
- Add auto-upgrade-in-apps by @martmull in #23001
- i18n - translations by @github-actions[bot] in #23068
- Add autofocus to 2FA OTP inputs by @martmull in #23067
- Show connect emails step to invited users without granting credits by @bosiraphael in #23058
- i18n - docs translations by @github-actions[bot] in #23074
- feat(call-recorder): add copy-to-clipboard buttons for transcript, summary, and video link by @martmull in #23052
- feat(app): allow non-admin developers to claim and list marketplace apps by @martmull in #22621
- i18n - translations by @github-actions[bot] in #23076
- Fix record board column header action accessibility by @Gautam5514 in #22496
- i18n - translations by @github-actions[bot] in #23077
- Widen the front component event allow-list by @bosiraphael in #22616
- System side effect relations by @prastoin in #22882
- fix(workflow): show account select in Send Email node when no account is connected by @thomtrp in #23066
- fix(ai): show answered ask_questions as a card in chat history by @etiennejouan in #23075
- i18n - translations by @github-actions[bot] in #23082
- i18n - docs translations by @github-actions[bot] in #23083
- i18n - translations by @github-actions[bot] in #23085
- chore: bump npm packages to 2.23.0-alpha.1 by @prastoin in #23084
- Add metadata cache tracing and avoid duplicate cache lookups by @Weiko in #23080
- i18n - docs translations by @github-actions[bot] in #23087
- i18n - docs translations by @github-actions[bot] in #23090
- Marketplace glowup — live partner profiles, case studies & matching (website) by @rashad in #23016
- Reduce call-recorder recovery crons to daily to relieve production by @martmull in #23099
- fix(ai-chat) - fix record chips in AI ask-questions card by @etiennejouan in #23106
- Fix "Go to roles settings" command by @ijreilly in #23105
- Fix: allow API key creation without Roles permission by @ijreilly in #23102
- Upgrade call-recorder, people-data-labs, last-contact and partners apps to twenty-sdk 2.23.0-alpha.1 by @prastoin in #23098
- feat: kanban, calendar and group-by table layouts for dashboard view widgets by @FelixMalfait in #22963
- i18n - translations by @github-actions[bot] in #23108
- Instrument Node runtime and workspace cache metrics by @Weiko in #23107
- fix(shared): multi-select "contains any" filter matcher should use OR semantics by @winklemad in #23010
- Forward editing and clipboard events to front components by @bosiraphael in #22630
- Make upgrade applications batch size a job parameter defaulting to 5 by @martmull in #23101
- i18n - translations by @github-actions[bot] in #23114
- Add per-application API rate limiter by @martmull in #23100
- fix(ai-chat) - fix AI record references when display names contain markdown characters by @etiennejouan in #23113
- Cache twenty-client-sdk modules host-side via content-addressed URLs by @prastoin in #22981
- i18n - translations by @github-actions[bot] in #23116
- i18n - docs translations by @github-actions[bot] in #23117
- Fix invalid UUID insert in workflow core-links backfill by @Weiko in #23118
- Documentation update by @BOHEUS in #23091
- Fix update events reporting untouched columns as changed by @bosiraphael in #22797
- i18n - website translations by @github-actions[bot] in #23096
- Remove dead code from legacy metadataVersion cache mechanism by @Weiko in #23122
- Add real estate demo app by @thomtrp in #23111
- i18n - docs translations by @github-actions[bot] in #23125
- Upgrade remaining official apps to 2.23 alpha by @prastoin in #23124
- i18n - translations by @github-actions[bot] in #23126
- fix(billing) - expand billing sub uniqueness constraint by @etiennejouan in #23123
- i18n - docs translations by @github-actions[bot] in #23136
- Fix workspace cache flush versioned metadata by @Weiko in #23121
- chore: sync AI model catalog from models.dev by @github-actions[bot] in #23143
- Fix instance fast migration, fallback index creation by @prastoin in #23149
New Contributors
- @admin-laicadev made their first contribution in #22880
- @nicoko93 made their first contribution in #22877
- @Gautam5514 made their first contribution in #22496
- @winklemad made their first contribution in #23010
Full Changelog: twenty/v2.22.0...twenty/v2.23.2