github twentyhq/twenty twenty/v2.46.0

5 hours ago

⚠️ Breaking changes

✨ New features

💅 Improvements & UX

🐛 Bug fixes

  • fix(auth): make login tokens single use (#26614) by @addyCooks
  • fix(front): open field links with noopener to prevent reverse tabnabbing (#26643) by @addyCooks
  • fix(shared): round currency filter amounts to whole micros (#26690) by @breken-ai
  • fix(shared): check currencyCode for currency code emptiness filters (#26691) by @breken-ai
  • fix(cache-lock): renew the lock lease while withLock runs and fence every release (#26709) by @addyCooks
  • fix(front): suppress Safari 'Cancelled' abort errors as snackbar notifications (#26740) by @okxint
  • fix(auth): validate login password before processing workspace invitation (#26657) (#26742) by @PINYOPATTANAWASANPORN
  • fix(front): move abbreviated numbers to the next suffix when rounding reaches 1000 (#26880) by @sarmah-rup
  • fix(front): preserve null currency amountMicros in CSV export (#26929) by @pranav440
  • fix(rich-text): keep selection after image autosave (#26969) by @waelantar
  • fix: make tokenBucketThrottleOrThrow atomic for every caller (#27012) by @abdulrahmancodes
  • fix(tools): report tool crashes to Sentry once, from dispatch (#27038) by @etiennejouan
  • fix(front): preserve multi-record selection in side-panel components (#27041) by @waelantar
  • fix(ai): navigate_app takes explicit record and view ids (#27108) by @FelixMalfait
  • fix(frontend): honor wildcard and missing Accept headers (#27119) by @FelixMalfait
  • fix(server): preserve OAuth-only caller reach in application targeting (#27120) by @Weiko
  • fix(workflow): stop reporting queued triggers for inactive versions to Sentry (#27137) by @thomtrp
  • fix(front): stop GraphQLPlayground story failing on Monaco worker load errors (#27139) by @thomtrp
  • fix(workflow): align core visibility cell and add back arrow to versions panel (#27143) by @thomtrp
  • fix(calendar): stop re-saving unchanged calendar events and participants on sync (#27151) by @charlesBochet
  • fix(ai): human input bugs found reviewing the approval feature (#27194) by @FelixMalfait
  • fix(ai-chat): write each assistant checkpoint in one transaction (#27213) by @FelixMalfait
  • fix: refresh role caches after workspace member removal (#27226) by @glitchedmob
  • fix(api): isEmptyArray filter ignores boolean value and misses NULL-stored arrays (#27232) by @okxint
  • fix(domain): serve frontend when its host is under public domain (#27248) by @YadurajManu
  • fix(workflow): a form step waits on its run, not in a conversation (#27250) by @FelixMalfait
  • fix(twenty-sdk): only remove dist/sdk before bundling declarations (#27261) by @PINYOPATTANAWASANPORN
  • fix(usage-limit): only a row on the default's period replaces it (#27272) by @etiennejouan
  • fix(mcp): mark database read tools read-only in direct mode (#27310) by @UditSinghChauhan
  • fix(usage): throw when the recurring charge lookup fails instead of charging every fee again (#27315) by @etiennejouan
  • fix(mcp): stop requiring defaulted fields in create tool schemas (#27345) by @UditSinghChauhan
  • fix(email): render links inline in the email thread message body (#27350) by @ijreilly
  • fix(server): unblock the server typecheck that times out on every PR (#27351) by @FelixMalfait
  • fix(usage-limit): keep the limits form off scopes only an operator can set (#27373) by @etiennejouan
  • fix(api): make neq match NULL rows when compared against a real value (#27399) by @Atharva0222
  • fix(cli): color doctor status labels (#27411) by @Weiko
  • fix(cli): default unnamed login connections to default (#27412) by @Weiko
  • fix(cli): omit deletedAt from default data columns (#27413) by @Weiko
  • fix(cli): guide app changes through plan and apply (#27414) by @Weiko
  • fix(cli): make built binary executable (#27422) by @Weiko
  • fix(cli): improve command output readability (#27423) by @Weiko
  • fix(cli): simplify connection hints and planning messages (#27425) by @Weiko
  • fix(auth): trust the identity provider's email for SSO sign-ups and show the real SAML/OIDC URLs (#27486) by @ijreilly
  • fix(cli): install the pinned CLI in generated app CI (#27518) by @Weiko
  • fix(cli): explain the Node requirement instead of crashing on unsupported Node versions (#27520) by @Weiko
  • fix(cli): create a fallback yarn.lock during app init (#27651) by @Weiko
  • fix(cli): avoid deprecated widget positions in app init (#27660) by @Weiko

⚡ Performance

  • perf(permissions): resolve settings permission flags from the workspace cache (#27109) by @FelixMalfait
  • perf(roles): batch role relation resolvers and add a getRole query (#27118) by @FelixMalfait
  • perf(cache): map user workspaces to members in the member cache (#27131) by @FelixMalfait
  • perf(server): build universal identifier lookups once per cache rebuild (#27134) by @charlesBochet
  • perf(rich-text): parse markdown with marked instead of BlockNote's jsdom pipeline (#27142) by @charlesBochet
  • perf(server): keep workspace cache versions live for 10 minutes before packing (#27149) by @charlesBochet
  • perf(server): memoize credentialed CORS origins on their config inputs (#27154) by @charlesBochet
  • perf(mcp): generate database tool input schemas as plain JSON Schema (#27158) by @charlesBochet
  • perf(api): stop expanding timeline activities in depth relations (#27162) by @charlesBochet
  • perf(api): drop NULLS FIRST from the id pagination tiebreaker (#27176) by @charlesBochet
  • perf(ai-chat): send each stream chunk's RPUSH and EXPIRE together (#27211) by @FelixMalfait
  • perf(ai-chat): spot changed chat messages by reference instead of deep comparison (#27212) by @FelixMalfait
  • perf(ai-history): check workspace history readiness once per process (#27215) by @FelixMalfait
  • perf(ai-chat): share one access check across the steps and tool calls of a short window (#27216) by @FelixMalfait
  • perf(server): bump metadata version only when object or field metadata changes (#27265) by @charlesBochet

🔧 Developer & API

🏗️ Internal changes (37)

🎉 New contributors

Full changelog (431 PRs)

Full Changelog: twenty/v2.45.0...twenty/v2.46.0

Don't miss a new twenty release

NewReleases is sending notifications on new releases.