github twentyhq/twenty twenty/v2.15.0

latest releases: sdk/v2.16.0, ui/v1.0.0-alpha.1
5 hours ago

What's Changed

  • Move twenty-client-sdk to dev dep by @prastoin in #21611
  • chore: bump version to 2.15.0 by @twenty-pr[bot] in #21624
  • chore(server): temporary diagnostic logging for empty verification email body by @charlesBochet in #21628
  • fix(front): set up Monaco workers for GraphQL playground by @charlesBochet in #21620
  • fix(command-menu-item): persist overrides after save and add reset-to-default by @Weiko in #21623
  • i18n - docs translations by @github-actions[bot] in #21633
  • Fix relation-traversal filters showing no options on select fields by @bosiraphael in #21616
  • fix(twenty-partners): reuse existing company by domain in partner-application handler by @rashad in #21615
  • Add call recording scheduling backend by @ehconitin in #21629
  • fix(ai) - workflow tool outputs optim + display fix by @etiennejouan in #21500
  • Add single-record People Data Labs enrich functions (company & person) by @bosiraphael in #21650
  • fix(front): remove runtime default-view creation fallback by @charlesBochet in #21652
  • fix(docker): run twenty-server in production mode (NODE_ENV=production) by @charlesBochet in #21635
  • fix(ui): default Monaco CodeEditor to scrollBeyondLastLine: false by @FelixMalfait in #21657
  • fix(server): run 2-14 standard relation label/icon heal as a system build by @charlesBochet in #21658
  • Add Recall webhook status handler to the meeting bot app by @ehconitin in #21659
  • fix(route-trigger): return 422 instead of 500 for logic function execution errors by @charlesBochet in #21656
  • fix(server): run 2-14 standard relation label/icon heal as a system build by @charlesBochet in #21667
  • Enable inline field editing in calendar event details by @ehconitin in #21666
  • Update GitHub banners and remove unused assets by @Bonapara in #21655
  • Clean up MCP Monaco editor by @Bonapara in #21643
  • Load twenty-ui global styles in twenty-front Storybook by @bosiraphael in #21665
  • feat(ai-agent): suggest similar tool names when tool discovery misses by @FelixMalfait in #21654
  • ci: migrate cross-repo dispatch senders to workflow_dispatch (actions:write) by @prastoin in #21648
  • feat(admin-panel) - add billing/usage section by @etiennejouan in #21672
  • Update Connection provider path by @martmull in #21678
  • i18n - docs translations by @github-actions[bot] in #21681
  • fix(cli): detect expired token on deploy and offer interactive re-auth by @Manibharadwaj in #21335
  • Hide Input and Test tabs for app logic function nodes by @bosiraphael in #21671
  • Show app name on workflow logic function nodes by @bosiraphael in #21675
  • feat(onboarding): prefill the invite step with teammates from the connected calendar by @FelixMalfait in #21640
  • feat(workflow): expand manual-trigger runtime payload with payload + _metadata by @thomtrp in #21676
  • fix(messaging): honor IMAP/SMTP encryption setting instead of inferring it from the port by @neo773 in #21562
  • Support variables file email attachment by @neo773 in #21613
  • Stabilize flaky Argos stories in twenty-front storybook by @bosiraphael in #21691
  • fix(messaging): pin Google OAuth2 client to native fetch by @neo773 in #21668
  • fix(server): default timeline thread visibility to METADATA by @neo773 in #21669
  • perf(onboarding): compute invite suggestions on-demand by @FelixMalfait in #21696
  • fix(onboarding): show the connect step after workspace creation by @FelixMalfait in #21701
  • feat(code-interpreter): reuse a warm sandbox per conversation (E2B) by @FelixMalfait in #21664
  • Show app logo and name in workflow step side panel header by @bosiraphael in #21689
  • Let users pick their workspace subdomain during sign-up by @FelixMalfait in #21641
  • feat(sdk): let docker:start choose the server version by @charlesBochet in #21690
  • Fix selectable list arrow focus by @Bonapara in #21679
  • Remove twenty-ui-deprecated and migrate frontend to twenty-ui by @bosiraphael in #21596
  • Partners app: profile picture (additive file field), derived region & deployment, scope cleanup (0.5.4) by @rashad in #21709
  • fix(route-trigger): distinguish user vs platform logic function execution errors by @charlesBochet in #21715
  • Added page card box-shadow by @Bonapara in #21688
  • i18n - docs translations by @github-actions[bot] in #21724
  • fix(front): wait for viewFields + fieldMetadataItems before opening the metadata gate by @FelixMalfait in #21713
  • fix(front): home redirect honors first object of the navigation menu by @thomtrp in #21626
  • docs: update calendar-email page by @neo773 in #21719
  • i18n - docs translations by @github-actions[bot] in #21741
  • feat(server): add isSystemSideEffect & merge createOneObject/createOneField side-effect migrations by @Weiko in #21673
  • feat(workflow): use workspace member as variable sender for emails by @thomtrp in #21582
  • Point New UI visual regression at the twenty-ui Argos project by @bosiraphael in #21728
  • Provide custom workspace id while seeding by @prastoin in #21721
  • Add limit on view widget by @martmull in #21718
  • i18n - docs translations by @github-actions[bot] in #21746
  • Add stale Recall bot reconciliation by @ehconitin in #21720
  • fix(server): allow app-defined permission flags to be referenced by a role in the same sync by @Weiko in #21742
  • feat(workflow): surface manual-trigger payload + metadata in variable picker by @thomtrp in #21692
  • fix(ai): handle dynamic-tool message parts in chat persistence by @FelixMalfait in #21740
  • [BREAKING CHANGE] fix chart cache collisions with key-based data plumbing by @ehconitin in #21743
  • feat(billing) - facilitate top up in ai chat by @etiennejouan in #21645
  • ci: remove merge queue, run e2e on push to main by @charlesBochet in #21722
  • fix(server): enforce lowercase universalIdentifier in sync by @Weiko in #21754
  • fix(ai): prevent chat thread bricking from tool parts with null input by @FelixMalfait in #21752
  • fix(front): stop impersonation from corrupting the impersonator's profile name by @FelixMalfait in #21757
  • Twenty app e2e app prod parity dispatch by @prastoin in #21750
  • feat(workflow): expected output schema for runtime-output steps + validation by @etiennejouan in #21744
  • fix: enforce strict rules for currency value handling by ai chatbot by @dankgarlic1 in #21470
  • Add post-call recording ingestion and billing by @ehconitin in #21758
  • Reorganize twenty-ui into best-practice component domains and per-component folders by @bosiraphael in #21745
  • Tool execution metrics by @abdulrahmancodes in #21587
  • chore(deps-dev): bump @babel/core from 7.28.0 to 7.29.7 by @dependabot[bot] in #21760
  • chore(deps-dev): bump @electron-forge/maker-zip from 7.11.1 to 7.11.2 by @dependabot[bot] in #21761
  • chore(deps): bump mintlify from 4.2.595 to 4.2.629 by @dependabot[bot] in #21762
  • Reworked website. by @mabdullahabaid in #21763
  • Centralize and standardize impersonation validation rules by @prastoin in #21717
  • Fix typecheck by @bosiraphael in #21783
  • fix: exclude non-groupBy date fields (deletedAt) from calendar field selection by @ehconitin in #21764
  • Remove twenty-shared import from postcard app by @prastoin in #21786
  • Configure Recall bot server variables by @ehconitin in #21774
  • Add search input to manual record trigger object select by @bosiraphael in #21777
  • feat(workflow): add update_agent tool and responseFormat-aware AI Agent step schema by @etiennejouan in #21755
  • Bump call recording app version by @martmull in #21787
  • Accessibility fix pass for twenty-ui input components by @bosiraphael in #21776
  • Fix flaky Argos diffs by @bosiraphael in #21771
  • fix(server): prevent enum migration failure for long identifier names by @thomtrp in #21748
  • i18n - docs translations by @github-actions[bot] in #21789
  • fix(server): type WasRemovedInUpgrade columns with WasRemovedInUpgrade<> by @Weiko in #21785
  • Fix side panel command menu header controls by @Bonapara in #21747
  • Converge Recall transcript artifacts on meeting start by @ehconitin in #21788
  • feat(workflow): auto-layout steps on AI workflow creation via shared tidy-up by @etiennejouan in #21756
  • Accessibility fix pass for remaining twenty-ui domains by @bosiraphael in #21790
  • [Website] Full-bleed hero/testimonials, nav restructure, OpenNext deploy config by @mabdullahabaid in #21794
  • Partner application form: required fields, skills rework, fail-fast validation by @rashad in #21710
  • fix(logic-function): treat invoke timeout as a user-level error, not a platform error by @thomtrp in #21779
  • i18n - website translations by @github-actions[bot] in #21795
  • Disable Claude Code attribution on commits and PRs by @FelixMalfait in #21798
  • feat(auth): collect the workspace logo on the sign-up creation step by @FelixMalfait in #21723
  • [Website] Carry over README assets, .well-known, and an env template by @mabdullahabaid in #21803
  • feat(website - self hosts billing): add internal endpoint to reissue enterprise keys by @ijreilly in #21660
  • [Website] Port partner application form rework (required fields, skills, fail-fast) by @mabdullahabaid in #21802
  • [Website] Straighten the footer 20 model by @mabdullahabaid in #21797
  • feat(server): report enterprise instance metadata on license validation by @FelixMalfait in #21793
  • fix(metadata): remove deprecated isCustom from Objects and Fields by @Weiko in #21799
  • Scope empty fixture workspaces to upgrade integration tests by @neo773 in #21778
  • Fix(record table): Drag select position by @git-init-priyanshu in #21579
  • Fix view type label casing by @Bonapara in #21772
  • fix(front): unwrap react-qr-code default export to fix 2FA crash on prod by @charlesBochet in #21804
  • messaging: gmail folder backfill by @neo773 in #21753
  • fix(workflow): hide empty option for non-nullable select fields by @brendanerofeev in #21075
  • feat(server): derive email/calendar timelines from object relations by @neo773 in #21684
  • fix(twenty-shared): derive short-number suffix from the rounded value by @yashs33244 in #21591
  • fix(security): bump form-data to 4.0.6 (CRLF injection) by @mabdullahabaid in #21808
  • fix(security): remove vulnerable lodash 4.17.23 (code injection + prototype pollution) by @mabdullahabaid in #21809
  • fix(security): bump piscina to 4.9.3 (prototype pollution → RCE) by @mabdullahabaid in #21810
  • fix(security): bump protobufjs to 7.6.4 (DoS + property shadowing) by @mabdullahabaid in #21811
  • fix(security): bump http-proxy-middleware to 3.0.7 (multipart field injection) by @mabdullahabaid in #21812
  • fix(security): bump tar to 7.5.16 across lockfiles (PAX file smuggling) by @mabdullahabaid in #21813
  • fix(security): bump markdown-it to 14.2.0 (smartquotes ReDoS) by @mabdullahabaid in #21814
  • fix(security): dedupe uuid to 11.1.1 (missing buffer bounds check) by @mabdullahabaid in #21815
  • fix(security): patch yaml across both major lines (stack overflow) by @mabdullahabaid in #21817
  • [Website] Add internal enterprise key reissue endpoint. by @mabdullahabaid in #21807
  • Infer record pickers for record-typed logic function workflow inputs by @bosiraphael in #21494
  • fix(security): bump webpack-dev-server resolution to 5.2.5 (HMR WS interception) by @mabdullahabaid in #21818
  • feat(partners): add partner-application-triage and partner-meeting-recap skills by @rashad in #21819
  • fix call recording bot automatic leave activate after bug by @ehconitin in #21820
  • feat(onboarding): always show the Create Profile step by @FelixMalfait in #21823
  • [Website] Cut over to the rebuilt site by @mabdullahabaid in #21825
  • fix(front): emit error instead of completing empty on failed token renewal by @FelixMalfait in #21822
  • fix(front): pass auth headers to GraphiQL fetcher for introspection by @etiennejouan in #21821
  • fix: filtered view resetting to unfiltered list on navigation by @parshipcy in #21080
  • i18n - website translations by @github-actions[bot] in #21827
  • Create CI workflow for internal apps by @martmull in #21791
  • fix: reorder table columns against visible fields only (#20940) by @singhharsh1708 in #21084
  • feat(billing): embed Stripe Payment Element in onboarding by @FelixMalfait in #21759
  • fix(security): bump tar to 7.5.16 in seed-dependencies (PAX file smuggling) by @mabdullahabaid in #21829
  • fix(workflow): show fields for system objects in record-updated trigger by @thomtrp in #21826
  • Add application to test input in workflow by @martmull in #21830
  • fix(workflow): label manual trigger record output as Record/Records by @thomtrp in #21832
  • fix: prevent Create Workspace redirect from being cancelled by @FelixMalfait in #21835
  • docs(user-guide): remove unsupported Between operator for Number filters by @thomtrp in #21838
  • fix: Edit Layout keeping the command menu open by @parshipcy in #21161
  • Deprecate legacy encryption by @prastoin in #21831
  • fix(front): recompute ExpandableList visible chips on resize by @dilanmelvin in #21139
  • Update ci internal applications by @martmull in #21837
  • fix(ai): validate AI agent output field names against schema-key constraint by @charlesBochet in #21834
  • i18n - docs translations by @github-actions[bot] in #21841
  • Enable getting started translations by @abdulrahmancodes in #21842
  • Add Update fields select to People Data Labs enrichment functions by @bosiraphael in #21801
  • fix(onboarding): refresh stale workspace in currentWorkspace field resolver by @FelixMalfait in #21839
  • fix(front): allow null subfields in Phones default value so Save enables by @thomtrp in #21847
  • App uninstall lambda, layers cleanup by @prastoin in #21749
  • reset filter search input on field select by @abdulrahmancodes in #21850
  • fix(front): keep record table footer visible below information banner by @thomtrp in #21852
  • i18n - docs translations by @github-actions[bot] in #21859
  • fix(website): restore deploymentId, security headers and redirects in next config by @mabdullahabaid in #21851
  • Accessibility guardrails and component hardening for twenty-ui by @bosiraphael in #21848
  • feat: add resizable kanban column width by @FelixMalfait in #21828
  • Fix record table footer hidden when an information banner is visible by @bosiraphael in #21860
  • Add standard record page layout for calendar events by @ehconitin in #21857
  • fix(workflow): add tooltip explaining why the variable picker is disabled by @thomtrp in #21862
  • Add twenty slack to internal application ci by @martmull in #21849
  • i18n - website translations by @github-actions[bot] in #21864
  • i18n - docs translations by @github-actions[bot] in #21865
  • i18n - website translations by @github-actions[bot] in #21866
  • Workspace migration post transaction commit side effect by @prastoin in #21845
  • Fix broken CSV import grid layout by @bosiraphael in #21867
  • fix(security): drop vulnerable serialize-javascript via terser-webpack-plugin bump by @mabdullahabaid in #21871
  • i18n - docs translations by @github-actions[bot] in #21873
  • fix(security): refresh undici across lockfiles (6.x → 6.27.0, 7.x → 7.28.0) by @mabdullahabaid in #21870
  • fix(security): bump socks to clear vulnerable ip-address (XSS) by @mabdullahabaid in #21872
  • Clear stale parent-view filters on front-component cross-object navigation by @bosiraphael in #21869
  • Add transcript tab to calendar record page by @ehconitin in #21792
  • Rename meeting bot app variables from RECALL_BOT_* to MEETING_BOT_* by @ehconitin in #21878
  • Add recall io webhook endpoint by @martmull in #21879
  • i18n - docs translations by @github-actions[bot] in #21884
  • fix(front): respect user number format for counts and aggregates by @FelixMalfait in #21894
  • test(server): make timeline integration test self-seed its data by @FelixMalfait in #21896
  • fix(security): bump nodemailer to 9.0.1 (raw-option SSRF / file read) by @mabdullahabaid in #21903
  • fix(security): bump dompurify to 3.4.11 (config/hook pollution) by @mabdullahabaid in #21905
  • feat(website): spotlight visual on top and uniform tile background by @mabdullahabaid in #21906
  • fix(twenty-website): fill feature-card visual frame on wide viewports by @mabdullahabaid in #21876
  • fix: hide restricted objects and views nested in navigation folders by @abdulrahmancodes in #21914
  • Fix dangling relation fields crashing records after deleting a custom object by @Weiko in #21874
  • feat(workflow): condition filter on database-event triggers by @FelixMalfait in #21868
  • fix: cannot create record from table view — empty morph to-many relation returns null by @charlesBochet in #21846
  • fix(front): prevent AI agent output field error message from overlapping the Type field by @charlesBochet in #21921
  • feat(workflow): add Pick Record action (1/3 — random selection) by @FelixMalfait in #21899
  • feat(sdk): declare row-level permission predicates in the role manifest by @FelixMalfait in #21919
  • feat(workflow): Pick Record round robin strategy (2/3) by @FelixMalfait in #21900
  • i18n - docs translations by @github-actions[bot] in #21923
  • feat(workflow): Pick Record load balanced strategy (3/3) by @FelixMalfait in #21902
  • fix(twenty-server): remove uuid format from openapi pageInfo cursors by @Manibharadwaj in #21920
  • fix(ai): gemini not working in ask ai by @abdulrahmancodes in #21898
  • ci: block bot contributors from PR commit history by @charlesBochet in #21926
  • chore(deps): bump wrangler to 4.102.0 and drop the wrangler/esbuild resolution by @mabdullahabaid in #21930
  • fix(security): bump react-router to 6.30.4 via react-router-dom (open redirect) by @mabdullahabaid in #21931
  • [Twenty-front]: Bunch of View Picker Fixes and improvements. by @git-init-priyanshu in #21290
  • fix(security): drop vulnerable postcss via styled-components bump (XSS) by @mabdullahabaid in #21932
  • Add twenty-discord on internal ci apps by @martmull in #21928
  • Fix meeting bot CalendarEvent field visibility and editability by @ehconitin in #21883
  • Add twenty-exa application to internal app ci by @martmull in #21882
  • fix: surface proper errors for People create/delete constraint violations by @Pantkartik in #21270
  • fix(workflow): serialize object variables in resolved prompts by @ijreilly in #21612
  • Add twenty-fireflies on internal ci apps by @martmull in #21939
  • Add self-hosting on internal ci apps by @martmull in #21940
  • fix(front): isolate record table dashboard widget filters on duplicate by @ehconitin in #21936
  • make mergeMany atomic and optimize relation/field-map handling by @abdulrahmancodes in #21885
  • Add twenty-for-twenty on internal ci apps by @martmull in #21944
  • Add twenty-linear on internal ci apps by @martmull in #21942
  • fix(server): surface nested QueryFailedError detail in upgrade error formatting by @charlesBochet in #21948
  • Remove jotai from twenty-ui by @bosiraphael in #21937
  • Add people-data-labs on internal ci apps by @martmull in #21941
  • suport non aws providers 1 by @jubinsoni in #21927
  • Refactor search vector field by @prastoin in #21947
  • Add gallery screenshot to People Data Labs app by @bosiraphael in #21960
  • chore(twenty-server): upgrade typeorm to 0.3.29 by @mabdullahabaid in #21957
  • fix(front): keep relation field record tables scoped to the host record by @rcshetty3 in #21293
  • feat: real-time email & calendar tabs on record pages by @neo773 in #21953
  • fix(website): render partner marketplace dynamically to stop profile 404s by @rashad in #21963
  • perf(server): rate-limit the active event stream count scan by @charlesBochet in #21951
  • perf(server): raise workspace local cache size and meter evictions by @charlesBochet in #21954
  • Remove unused call-recording application by @martmull in #21966
  • fix(server): skip callRecordings widget in calendar-event page sync when field is absent by @charlesBochet in #21967
  • Improve twenty-ui packaging for standalone publishing by @bosiraphael in #21946
  • fix(front): scope relation table widget via currentRecordId by @charlesBochet in #21965
  • Fix field widget textarea focus reset by @Bonapara in #21959

New Contributors

Full Changelog: twenty/v2.14.0...twenty/v2.15.0

Don't miss a new twenty release

NewReleases is sending notifications on new releases.