What's Changed
- Companies show page as record page by @Devessier in #15132
- Connect chart filters to backend by @lucasbordeau in #15133
- [command fix] Limit migration to workflow versions by @ijreilly in #15145
- Iterators design updates by @thomtrp in #15146
- Analyze Context of Issue #1586 Using GitHub MCP by @twill-hq[bot] in #15058
- Remove cpx from package.json in twenty-ui since it was unused and caused dependabot alert. by @mabdullahabaid in #15147
- Add schema name display in Settings Admin Workspace by @neo773 in #15151
- Add child folders support for Microsoft by @neo773 in #15114
- Reserve "trust" subdomain by @FelixMalfait in #15159
- 1635 extensibilitytwenty cli app vars by @martmull in #15143
- Remove iterator feature flag by @thomtrp in #15165
- Fix migration file by @martmull in #15168
[CLI-E2E-CI]Fix dependency graph by @prastoin in #15167- Release - Fix migration message command by @etiennejouan in #15148
- Fix invalid UUID/workspaceMemberId error in timeline activity worker by @holdgold0 in #15074
- Log invalid uuids by @RaphiTobi in #15099
- Fix settings admin workspace by @ijreilly in #15173
- Seeding Attachments, Disable ORM Logs, Seeding Parallelization by @FelixMalfait in #15174
ViewGroupandViewFiltersside effect in v2 by @prastoin in #15096- Squash migration files up to v1.5.5 by @FelixMalfait in #15183
- Add applicationId to syncableEntity and fix syncApp deletion by @Weiko in #15170
- Release - revert/downgrade twenty website next version by @etiennejouan in #15181
- implement "acting on behalf of user" for workflows and agents by @abdulrahmancodes in #15103
- Fix CI concurrency: prevent test cancellation on main branch by @FelixMalfait in #15188
- Consolidate Prettier config and improve consistency by @FelixMalfait in #15191
- Fix: Make CI .env manipulation robust against missing trailing newlines by @FelixMalfait in #15189
- Add timestamps to GQL fields in useRecordsFieldVisibleGqlFields hook by @ManikanthMartha in #15185
- Fixed advanced filters by @lucasbordeau in #15144
- Scaffold all company cards as widgets by @Devessier in #15149
- feat: multi role permission intersection by @abdulrahmancodes in #15150
- Fix worker health check using wrong Redis connection by @FelixMalfait in #15195
- Fix Calendar max height by @pvrnn in #15127
- Fix dropdowns scroll display by @charlesBochet in #15199
- Change runner for breaking change CI by @FelixMalfait in #15205
- Fix env not optional + serverless logging by @martmull in #15186
- feat: workflow delay action (Pause - Wait/Sleep/Delay) by @harshit078 in #14915
- release - upgrade next js on twenty website by @etiennejouan in #15204
- Move schemas to constant folder by @martmull in #15207
- Add twenty-sdk by @Weiko in #15208
- Fix duplicate height properties in styled components by @Copilot in #15200
- Fix missing base project files by @martmull in #15209
- Fix table virtualization data load < 120 records by @lucasbordeau in #15203
- Publish twenty-cli 0.1.2 by @martmull in #15210
- Add .env.example in hello-world app by @martmull in #15211
- Common api - Group by query by @etiennejouan in #15108
- Refactored WorkflowSendEmailBody to FormAdvancedTextFieldInput by @RounakJoshi09 in #15157
- Common api - Add field create input validation integration testing by @etiennejouan in #15026
- Fix Group by actor field by @ijreilly in #15215
- (breaking) Fix author attachment field by @twill-hq[bot] in #15065
- Remove dependency on lodash.pick. by @mabdullahabaid in #15213
- Reuse OAuth access tokens by @neo773 in #15089
- Fix serverless update not saving new code with migration v2 by @Weiko in #15221
- Number chart editor by @bosiraphael in #15222
- Support side panel in record page layout by @Devessier in #15216
- Fix wrong check by @martmull in #15179
- feat: add-create-update-record in workflow by @harshit078 in #14654
- Add queue management dashboard by @FelixMalfait in #15202
- ci(server): integration server increase shard by @prastoin in #15228
- Field deactivation side effect
viewscalendarkanbanviewFieldsby @prastoin in #15180 - Preserve all emails, phones, and links when merging records by @neo773 in #15224
- fix: Add reserved subdomains constant and update validation on
generateSubdomainby @naineel1209 in #15217 - Fix integration test by @etiennejouan in #15232
- Update documentation by @BOHEUS in #14891
- Full Refresh of the User Guide by @StephanieJoly4 in #15236
- [BREAKING CHANGE] refactor: Add Entity suffix to TypeORM entity classes by @FelixMalfait in #15239
- Workflow command menu fixes by @thomtrp in #15234
- Connect the number chart to the backend by @bosiraphael in #15229
- [DOCS] Error Workaround twenty-server start on WSL - JavaScript heap out of memory by @purvapr13 in #15047
- Implement basic edition for record page layouts by @Devessier in #15237
- [Dashboards] - Min Max range on secondary axis bar charts by @ehconitin in #15118
- fix: prototype pollution vulnerability in parse-git-config by @mabdullahabaid in #15242
- chore: body-parser vulnerable to denial of service when url encoding is enabled by @mabdullahabaid in #15243
- feat: display specific action types in workflow side panel tooltips by @DipakHalkude in #15013
- Update self host url message by @martmull in #15246
- Format pasted JSON in Workflow HttpRequest Action by @pvrnn in #15119
- Use aggregate operations in the widget configuration instead of extended aggregate operations by @bosiraphael in #15248
- feat: Implement AI Router for Dynamic Agent Selection by @abdulrahmancodes in #15227
- 1750 extensibility twenty sdk v2 use twenty sdk to define an object by @martmull in #15230
- fix: graphql uncontrolled resource consumption vulnerability by @mabdullahabaid in #15260
- fix: dset prototype pollution vulnerability by @mabdullahabaid in #15253
- Common api - Destroy and delete queries by @etiennejouan in #15177
- Use array fields in filter steps by @thomtrp in #15256
- fix: axios requests vulnerable to possible SSRF and credential leakage via absolute URL by @mabdullahabaid in #15244
- Fix Cmd + K conflict in note when adding a link (cmd+k shortcut) and opening right drawer by @bosiraphael in #15257
- fix: pbkdf2 returns predictable uninitialized/zero-filled memory for non-normalized or unimplemented algos by @mabdullahabaid in #15266
- fix(docs): update guide links by @marcmaceira in #15265
- Add a banner in the side panel to alert if the bar chart has too many bars by @bosiraphael in #15267
- Add query progress to delete and destroy by @Weiko in #15252
- Remove blue border on hover on widgets when not in edit mode by @bosiraphael in #15268
- feat: Attachement for Send Email workflow node by @harshit078 in #15044
- Set serverlessFunctionLayerId not nullable by @martmull in #15272
- QA & final edits of the entire User Guide released this morning by @StephanieJoly4 in #15245
[v2_FIX]Update standardobject/fieldby @prastoin in #15233- Create widget grip and update title color by @bosiraphael in #15280
- fix: authorization bypass in next.js middleware by @mabdullahabaid in #15287
- Remove groupBy feature flag by @ijreilly in #15281
FindAllCoreViewsgraphql cache operation invalidation in view related v2 action run by @prastoin in #15285- Allow to stop running workflow by @thomtrp in #15270
- Fix defaultValue with enum options update in migration v2 by @Weiko in #15286
- Fix composite field update v2 by @prastoin in #15290
- Observability - add new counters by @etiennejouan in #15292
- Move react-email dependencies to their respective packages. by @mabdullahabaid in #15295
- fix: sha.js is missing type checks leading to hash rewind and passing on crafted data by @mabdullahabaid in #15296
- fix: linkify allows prototype pollution & HTML attribute injection (XSS) by @mabdullahabaid in #15291
- fix: cipher-base is missing type checks, leading to hash rewind and passing on crafted data by @mabdullahabaid in #15299
- first step in the show record page with a morph relation. by @guillim in #15109
[Followup]Fix defaultValue with enum options update in migration v2integration test + polish by @prastoin in #15300- Add Sentry AI agent monitoring with telemetry configuration by @FelixMalfait in #15301
- Hide stop run behind flag by @thomtrp in #15306
- Convert number chart to aggregate chart allowing date aggregates by @bosiraphael in #15294
- [Dashboards] - Tabs reordering by @ehconitin in #14798
- feat(auth): integrate captcha validation and component for sign-in/up… by @AMoreaux in #15054
- Stop parsing the PG_DATABASE_URL, use it directly by @EliRibble in #15310
- Introduce a command to regenerate search vectors for standard and custom objects to fix accent issue. by @mabdullahabaid in #15175
- Fix task creation by @charlesBochet in #15318
- fix: tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball by @mabdullahabaid in #15325
- Remove unused dependencies from root package.json. by @mabdullahabaid in #15323
- fix: elliptic's private key extraction in ECDSA upon signing a malformed input by @mabdullahabaid in #15326
- i18n - translations by @github-actions[bot] in #15328
- morph Board mode by @guillim in #15249
- Fix on Morph RelationFieldDisplay by @charlesBochet in #15333
- i18n - translations by @github-actions[bot] in #15334
- Common - Update one/many, restore one/many, findDuplicates & mergeMany by @etiennejouan in #15279
- fix migrations by @Weiko in #15336
- i18n - translations by @github-actions[bot] in #15335
- Align all field-level permissions by @twill-hq[bot] in #15023
- Missing workspace id in command by @thomtrp in #15337
- fix(billing): adapt current phase to current period by @AMoreaux in #15321
- feat: Add attachment size for attachments by @harshit078 in #15330
- i18n - translations by @github-actions[bot] in #15339
- message channel change 2 by @neo773 in #15269
- test(billing): add assertion for
end_datein billing subscription s… by @AMoreaux in #15341 - i18n - translations by @github-actions[bot] in #15342
- Update dizzle-kit and drizzle-orm to avoid the dependency on Hono. by @mabdullahabaid in #15343
- CleanOrphanedKanbanAggregateOperationFieldMetadataIdCommand by @Weiko in #15344
- [groupBy] Load record within groups (without relations) by @ijreilly in #15307
- Throttling in common api by @etiennejouan in #15338
- Support more standard objects in Record Page Layout by @Devessier in #15288
- fix: duplicate merge button bug by @anadi45 in #15284
- i18n - translations by @github-actions[bot] in #15350
- fix(mcp): Remove jsonSchema wrapper from tool inputSchema for MCP compatibility by @KennyVaneetvelde in #15349
- fix: nodemailer - email to an unintended domain can occur due to interpretation conflict. by @mabdullahabaid in #15356
- Add Role tab to agent detail page and fix restricted fields permission issue by @abdulrahmancodes in #15276
- i18n - translations by @github-actions[bot] in #15361
- Central european standard timezone update fix test by @prastoin in #15362
- Centralize v2 errors types in
twenty-sharedby @prastoin in #15358 - fix gmail access token by @neo773 in #15374
[DOCKER_COMPOSE]server depends on redis by @anadi45 in #15375- refactor: extract filter-emails utils into separate files by @neo773 in #15365
- New record button on dashboard index page and reorder by @ehconitin in #15367
- i18n - translations by @github-actions[bot] in #15381
- Fix v2 self relation field creation by @prastoin in #15382
- [groupBy] Handle relations on groupBy with records by @ijreilly in #15379
- fix invalid condition for google refresh token by @neo773 in #15383
- Enable records layouts for all records except workflows by @Devessier in #15378
- morph bug fix by @guillim in #15370
- Remove old Calendar and Messaging partial/full sync stages by @charlesBochet in #15380
- Add the MORPH feature in the LAB by @guillim in #15126
- Update bar chart design by @bosiraphael in #15372
- Add sort section in find records action by @thomtrp in #15340
- i18n - translations by @github-actions[bot] in #15394
- Refactor
twenty-frontmetadata api services for v2 by @prastoin in #15360 - i18n - translations by @github-actions[bot] in #15396
- Remove deprecated
viewand related workspace entities by @prastoin in #15393 - i18n - translations by @github-actions[bot] in #15399
- Hide page layout tab bar when there are less than two tabs to display by @Devessier in #15385
- Add metric (+fix) by @etiennejouan in #15400
- Common - many fixes by @etiennejouan in #15395
- Always use page layout renderer for dashboards by @Devessier in #15403
- Reset limit to 1 when object is changed by @BKM14 in #15354
- Support primitive types in filters by @thomtrp in #15402
- Widget cards by @ehconitin in #15387
- i18n - translations by @github-actions[bot] in #15409
- Set formatted before instead of after by @thomtrp in #15401
- Common - Update many fix by @etiennejouan in #15412
- fix: made standard object labels editable by @ShashwatPS in #15388
- Common - Throttle update + Metrics by @etiennejouan in #15413
- Common - Remove feature flag by @etiennejouan in #15371
- i18n - translations by @github-actions[bot] in #15423
- Front references to views as records by @prastoin in #15425
- Fix workspace views prefill by @prastoin in #15428
- Fix infinite loop on FE by @charlesBochet in #15415
- i18n - translations by @github-actions[bot] in #15429
- [groupBy] Order by within records by @ijreilly in #15404
- add validation on widgets grid position and sizing by @ehconitin in #15397
- Fix view rest api in v2 by @prastoin in #15398
- i18n - translations by @github-actions[bot] in #15432
- Debug sentry redis integration by @prastoin in #15431
- Add listkit to tiptap extension in workflow node by @harshit078 in #15363
- Fix email editor-email discrepancies by @thomtrp in #15436
- 1751 extensibility twenty sdk v2 use twenty sdk to define a serverless function trigger by @martmull in #15347
- Fix creating kanban view when no select field by @Weiko in #15441
- Explicitly set
workspaceIdcolumn asuuidtype to ease pg LEFT JOIN by @prastoin in #15430 - Complete color refactoring by @bosiraphael in #15414
- fix: on-headers is vulnerable to http response header manipulation by @mabdullahabaid in #15453
- chore: next.js may leak x-middleware-subrequest-id to external hosts. by @mabdullahabaid in #15438
- fix: validator.js has a URL validation bypass vulnerability in its isURL function. by @mabdullahabaid in #15437
- Add contextMenu actions to calendar view by @Weiko in #15451
- Set default graph axis display to NONE by @bosiraphael in #15459
- groupBy fix + typeMapper fix by @ijreilly in #15433
- fix: password reset redirection by @anadi45 in #15421
- Fix grip size on widgets by @bosiraphael in #15460
- Stop using .env variables to authenticate with cli by @martmull in #15461
- Make upsert action body common with create record instead of update record by @thomtrp in #15442
- Simplify Code on FetchMore by @charlesBochet in #15465
- fix: vite related dependabot alerts by @mabdullahabaid in #15464
- Tabs sidepanel settings on dashboards by @ehconitin in #15454
- i18n - translations by @github-actions[bot] in #15466
- Common - fixes by @etiennejouan in #15463
- update chart tooltip designs by @ehconitin in #15426
- i18n - translations by @github-actions[bot] in #15468
- overflown tabs should be selected upon clicking edit right button by @ehconitin in #15469
- Fix bar chart X-axis labels when groupBy matches aggregate field by @ehconitin in #15473
- Add lock on dashboard restricted charts by @ehconitin in #15476
- Render depends on menu items conditionally in chart settings + fix min max values by @ehconitin in #15391
- i18n - translations by @github-actions[bot] in #15477
- Activate v2 for new workspaces by @prastoin in #15472
- Some fixes for colors by @Devessier in #15479
- fix: login redirection to active objects by @anadi45 in #15366
- Add support for negative bars on bar chart by @ehconitin in #15418
- Data labels improvements by @bosiraphael in #15475
- fix: make $groupBy parameter required in group-by queries by @ehconitin in #15485
- feat: Migrate documentation to Mintlify and implement Helper Agent with search functionality by @abdulrahmancodes in #15443
- add max widths on bars by @ehconitin in #15487
- fix: composite field label retrieval in spreadsheet import utility by @anadi45 in #15489
- remove values/formatted values from chart legends by @ehconitin in #15490
- Fix maximum number of bars for stacked bars by @bosiraphael in #15481
- i18n - translations by @github-actions[bot] in #15494
- fix: Orderby secondary dimension sum by @ehconitin in #15493
- fix: regular expression denial of service (ReDoS) in cross-spawn by @mabdullahabaid in #15495
- Fix orderBy, groupBy, and orderByForRecords on foreignKey by @ijreilly in #15480
- Update minimum chart sizes by @bosiraphael in #15500
- Improve v2 and cache invalidation perfs by @prastoin in #15467
- Put delete button on step footer + add unique fields on upsert action by @thomtrp in #15497
- Migrate documentation to Mintlify and configure 301 redirects by @abdulrahmancodes in #15502
- Move http node to backend by @thomtrp in #15424
- i18n - translations by @github-actions[bot] in #15504
- Bar chart: Prevent left tick labels to overlap on label by @bosiraphael in #15499
- Add useGroupBy hook + update calendar view to use groupBy by @Weiko in #15439
- Support workflows in record page layouts by @Devessier in #15471
- Fix - Multiple banners issue by @etiennejouan in #15506
- [Breaking Change] Implement reliable date picker utils to handle all timezone combinations by @lucasbordeau in #15377
- i18n - translations by @github-actions[bot] in #15516
- refactor messaging error handling by @neo773 in #15416
- Fix view favorite making the app crash by @charlesBochet in #15517
- MORPH for relationDecorator by @guillim in #15420
- fix IMAP onboarding by @neo773 in #15444
- Remove Hacktoberfest from README by @FelixMalfait in #15530
- fix: tmp allows arbitrary temporary file / directory write via symbolic link
dirparameter by @mabdullahabaid in #15452 - i18n - translations by @github-actions[bot] in #15531
- Introduce SSO bypass permission. by @mabdullahabaid in #15417
- Revert "fix: tmp allows arbitrary temporary file / directory write via symbolic link
dirparameter" by @charlesBochet in #15539 - i18n - translations by @github-actions[bot] in #15541
- switch migrationActionsWithParent to migrationActionsWithParentTmp temporary by @guillim in #15478
- i18n - translations by @github-actions[bot] in #15542
- Add command to make sure v1.8 workspaces are not using FULL or PARTIAL sync stages (that should be already deprecated) by @charlesBochet in #15545
- fix migration command - workflow runs by @guillim in #15540
- fix: updated dryrun to return correct populated record by @harshit078 in #15484
- [demo] Allow workspace to work with a non-system workspaceMember object by @ijreilly in #15547
- Add date granularity and timezone and first day of the week to graphs by @bosiraphael in #15543
- Fix calendar view when switched from other layout type not updating state by @Weiko in #15562
- i18n - translations by @github-actions[bot] in #15563
- Add Dashboard in Lab, make Calendar available out of lab by @charlesBochet in #15560
[REQUIRED_FOR_1_10]Fix kanban foreign key migration by @prastoin in #15557- Add permission check on calendar view drag and add new by @Weiko in #15556
- fix calendar view when switched from other layout type bis by @Weiko in #15569
- fix: ai settings page crash by @anadi45 in #15455
- i18n - translations by @github-actions[bot] in #15570
- Graph margins vary depending on presence of labels by @ijreilly in #15559
- fix: trash button centering + gap between forbidden display and trashbutton by @ehconitin in #15571
- Improve workflow performances by @thomtrp in #15528
- Fix chart filter settings back button behavior by @bosiraphael in #15573
- i18n - translations by @github-actions[bot] in #15574
- Various font styling fixes on chart by @bosiraphael in #15572
- add inner padding on bar chart by @ehconitin in #15577
- Follow-up high fixes on date refactor by @lucasbordeau in #15553
- Fix date granularity saving issue by @bosiraphael in #15579
- Remove relations from manual trigger output schema by @thomtrp in #15578
- Instant widget placeholder placement on drag end by @ehconitin in #15496
- IFrame widget improvements by @ehconitin in #15483
- Add dashboard rollout commands by @charlesBochet in #15567
- fix: update tmp to a safer version. by @mabdullahabaid in #15554
- fix: brace-expansion regular expression denial of service vulnerability by @mabdullahabaid in #15558
- fix inconsistent widget placeholder placement by @ehconitin in #15580
- View field create many mutation by @prastoin in #15576
- Remove default feature flag feature by @Weiko in #15587
[HACKTOBERFEST]Add rollup engine app with UI-driven configuration by @jamesbrysmart in #15482[HACKTOBERFEST]feat: Add AI meeting transcript integration with Twenty CRM by @HarshitVashisht11 in #15498- [Hacktoberfest] AI-Powered Meeting Transcript Analysis Extension for Twenty CRM by @Irfan-Hussain107 in #15507
- [HACKTOBERFEST] [FEATURE] Create activity summary application by @thealiilman in #15510
- Last email interaction extension by @BOHEUS in #15511
- Mailchimp synchronizer extension by @BOHEUS in #15512
- Filter out null values in tooltip by @bosiraphael in #15588
- Stripe synchronizer extension by @BOHEUS in #15515
- [hacktoberfest] feat: add fireflies by @alex-galey in #15527
- feat: add Webmetic Visitor Intelligence by @yanniksuess in #15551
- Revert "[hacktoberfest] feat: add fireflies" by @Weiko in #15589
- V2 centralize relation optimistic logic by @prastoin in #15552
New Contributors
- @holdgold0 made their first contribution in #15074
- @RaphiTobi made their first contribution in #15099
- @ManikanthMartha made their first contribution in #15185
- @Copilot made their first contribution in #15200
- @RounakJoshi09 made their first contribution in #15157
- @purvapr13 made their first contribution in #15047
- @DipakHalkude made their first contribution in #15013
- @marcmaceira made their first contribution in #15265
- @EliRibble made their first contribution in #15310
- @anadi45 made their first contribution in #15284
- @KennyVaneetvelde made their first contribution in #15349
- @ShashwatPS made their first contribution in #15388
- @jamesbrysmart made their first contribution in #15482
- @HarshitVashisht11 made their first contribution in #15498
- @Irfan-Hussain107 made their first contribution in #15507
- @thealiilman made their first contribution in #15510
- @alex-galey made their first contribution in #15527
- @yanniksuess made their first contribution in #15551
Full Changelog: v1.8.0...v1.10.0