Abdul Rahman
54815196c1
Improve AI Tool Step Renderer Layout and JSON Tree Scrolling ( #15698 )
...
### Before
https://github.com/user-attachments/assets/a222a6ff-550c-453b-bc0b-ee9bdb925956
### After
https://github.com/user-attachments/assets/249b7097-8dc1-4611-8205-2a43cb015a33
2025-11-07 13:31:05 +01:00
github-actions[bot]
c9d7361e7c
i18n - translations ( #15689 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2025-11-06 19:40:28 +01:00
Marie
4ce93aee52
Fix user deletion flows ( #15614 )
...
**Before**
- any user with workpace_members permission was able to remove a user
from their workspace. This triggered the deletion of workspaceMember +
of userWorkspace, but did not delete the user (even if they had no
workspace left) nor the roleTarget (acts as junction between role and
userWorkspace) which was left with a userWorkspaceId pointing to
nothing. This is because roleTarget points to userWorkspaceId but the
foreign key constraint was not implemented
- any user could delete their own account. This triggered the deletion
of all their workspaceMembers, but not of their userWorkspace nor their
user nor the roleTarget --> we have orphaned userWorkspace, not
technically but product wise - a userWorkspace without a workspaceMember
does not make sense
So the problems are
- we have some roleTargets pointing to non-existing userWorkspaceId
(which caused https://github.com/twentyhq/twenty/issues/14608 )
- we have userWorkspaces that should not exist and that have no
workspaceMember counterpart
- it is not possible for a user to leave a workspace by themselves, they
can only leave all workspaces at once, except if they are being removed
from the workspace by another user
**Now**
- if a user has multiple workspaces, they are given the possibility to
leave one workspace while remaining in the others (we show two buttons:
Leave workspace and Delete account buttons). if a user has just one
workspace, they only see Delete account
- when a user leaves a workspace, we delete their workspaceMember,
userWorkspace and roleTarget. If they don't belong to any other
workspace we also soft-delete their user
- soft-deleted users get hard deleted after 30 days thanks to a cron
- we have two commands to clean the orphans roleTarget and userWorkspace
(TODO: query db to see how many must be run)
**Next**
- once the commands have been run, we can implement and introduce the
foreign key constraint on roleTarget
Fixes https://github.com/twentyhq/twenty/issues/14608
2025-11-06 18:29:12 +00:00
Baptiste Devessier
bfe1f47065
Create old fields design widget ( #15645 )
...
In this PR:
- Pass `layoutMode` and `tabId` via PageLayoutContentContext provider
- Getting `pageLayoutType` from the current page layout
- Getting isInPinnedTab through `useIsInPinnedTab` hook
## Before
<img width="3456" height="2160" alt="CleanShot 2025-11-06 at 14 22
44@2x"
src="https://github.com/user-attachments/assets/763bb413-5739-45ef-85ed-82a72415886f "
/>
## After
<img width="3456" height="2162" alt="CleanShot 2025-11-06 at 14 20
38@2x"
src="https://github.com/user-attachments/assets/eee6cccd-9d36-426e-a22f-400e8f7f9413 "
/>
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com >
2025-11-06 18:16:42 +01:00
Raphaël Bosi
931d12c77b
Add animations on widget buttons and on action buttons ( #15631 )
...
Animated:
- Grip
- Trash can
- Action buttons
https://github.com/user-attachments/assets/1cac7a5e-2036-4308-9622-3b4809ae90a3
2025-11-06 17:38:05 +01:00
Paul Rastoin
137aba049d
Fix tsconfigpaths root ( #15683 )
...
# Introduction
We've facing facing intra package build error for a moment such as:
```ts
vite v7.1.12 building for production...
src/components/BaseEmail.tsx:20:19 - error TS2719: Type 'import("/Users/paulrastoin/ws/twenty/node_modules/@lingui/core/dist/index").I18n' is not assignable to type 'import("/Users/paulrastoin/ws/twenty/node_modules/@lingui/core/dist/index").I18n'. Two different types with this name exist, but they are unrelated.
Types have separate declarations of a private property '_locale'.
20 <I18nProvider i18n={i18nInstance}>
~~~~
node_modules/@lingui/react/dist/shared/react.b2b749a9.d.ts:42:5
42 i18n: I18n;
~~~~
The expected type comes from property 'i18n' which is declared here on type 'IntrinsicAttributes & Omit<I18nContext, "_"> & { children?: ReactNode; }'
```
and now since hacktoberfest merge getting even more such as:
```ts
➜ twenty git:(main) ✗ npx nx build twenty-emails
✔ 2/2 dependent project tasks succeeded [2 read from cache]
Hint: you can run the command with --verbose to see the full dependent project outputs
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
[tsconfig-paths] An error occurred while parsing "/Users/paulrastoin/ws/twenty/packages/twenty-apps/hacktoberfest-2025/linkedin-browser-extension/browser-extension/tsconfig.json". See below for details. To disable this message, set the `ignoreConfigErrors` option to true.
TSConfckParseError: failed to resolve "extends":"./.wxt/tsconfig.json" in /Users/paulrastoin/ws/twenty/packages/twenty-apps/hacktoberfest-2025/linkedin-browser-extension/browser-extension/tsconfig.json
at resolveExtends (file:///Users/paulrastoin/ws/twenty/node_modules/tsconfck/src/parse.js:261:8)
at parseExtends (file:///Users/paulrastoin/ws/twenty/node_modules/tsconfck/src/parse.js:196:24)
... 5 lines matching cause stack trace ...
at async createBuilder (file:///Users/paulrastoin/ws/twenty/node_modules/vite/dist/node/chunks/config.js:34104:19)
at async CAC.<anonymous> (file:///Users/paulrastoin/ws/twenty/node_modules/vite/dist/node/cli.js:629:10) {
code: 'EXTENDS_RESOLVE',
cause: Error: Cannot find module './.wxt/tsconfig.json'
Require stack:
- /Users/paulrastoin/ws/twenty/packages/twenty-apps/hacktoberfest-2025/linkedin-browser-extension/browser-extension/tsconfig.json
at Module._resolveFilename (node:internal/modules/cjs/loader:1410:15)
at require.resolve (node:internal/modules/helpers:163:19)
at resolveExtends (file:///Users/paulrastoin/ws/twenty/node_modules/tsconfck/src/parse.js:249:14)
at parseExtends (file:///Users/paulrastoin/ws/twenty/node_modules/tsconfck/src/parse.js:196:24)
at Module.parse (file:///Users/paulrastoin/ws/twenty/node_modules/tsconfck/src/parse.js:54:23)
at async Promise.all (index 21)
at async BasicMinimalPluginContext.configResolved (/Users/paulrastoin/ws/twenty/node_modules/vite-tsconfig-paths/dist/index.js:134:9)
at async Promise.all (index 0)
at async resolveConfig (file:///Users/paulrastoin/ws/twenty/node_modules/vite/dist/node/chunks/config.js:35892:2)
at async createBuilder (file:///Users/paulrastoin/ws/twenty/node_modules/vite/dist/node/chunks/config.js:34104:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/Users/paulrastoin/ws/twenty/packages/twenty-apps/hacktoberfest-2025/linkedin-browser-extension/browser-extension/tsconfig.json'
]
},
tsconfigFile: '/Users/paulrastoin/ws/twenty/packages/twenty-apps/hacktoberfest-2025/linkedin-browser-extension/browser-extension/tsconfig.json'
}
vite v7.1.12 building for production...
src/components/BaseEmail.tsx:20:19 - error TS2719: Type 'import("/Users/paulrastoin/ws/twenty/node_modules/@lingui/core/dist/index").I18n' is not assignable to type 'import("/Users/paulrastoin/ws/twenty/node_modules/@lingui/core/dist/index").I18n'. Two different types with this name exist, but they are unrelated.
Types have separate declarations of a private property '_locale'.
20 <I18nProvider i18n={i18nInstance}>
~~~~
node_modules/@lingui/react/dist/shared/react.b2b749a9.d.ts:42:5
42 i18n: I18n;
~~~~
The expected type comes from property 'i18n' which is declared here on type 'IntrinsicAttributes & Omit<I18nContext, "_"> & { children?: ReactNode; }'
✓ 492 modules transformed.
[vite:dts] Start generate declaration files...
computing gzip size (31)...[vite:dts] Declaration files built in 981ms.
dist/locales/generated/zh-CN.mjs 4.16 kB │ gzip: 2.02 kB
dist/locales/generated/zh-TW.mjs 4.21 kB │ gzip: 2.05 kB
dist/locales/generated/en.mjs 4.34 kB │ gzip: 1.28 kB
dist/locales/generated/fi-FI.mjs 4.45 kB │ gzip: 1.90 kB
dist/locales/generated/af-ZA.mjs 4.50 kB │ gzip: 1.88 kB
dist/locales/generated/no-NO.mjs 4.52 kB │ gzip: 1.85 kB
dist/locales/generated/da-DK.mjs 4.52 kB │ gzip: 1.84 kB
dist/locales/generated/pt-BR.mjs 4.54 kB │ gzip: 1.89 kB
dist/locales/generated/sv-SE.mjs 4.54 kB │ gzip: 1.88 kB
dist/locales/generated/nl-NL.mjs 4.55 kB │ gzip: 1.87 kB
dist/locales/generated/pt-PT.mjs 4.56 kB │ gzip: 1.88 kB
dist/locales/generated/it-IT.mjs 4.59 kB │ gzip: 1.87 kB
dist/locales/generated/pl-PL.mjs 4.66 kB │ gzip: 2.04 kB
dist/locales/generated/cs-CZ.mjs 4.67 kB │ gzip: 2.05 kB
dist/locales/generated/es-ES.mjs 4.70 kB │ gzip: 1.90 kB
dist/locales/generated/tr-TR.mjs 4.70 kB │ gzip: 2.02 kB
dist/locales/generated/de-DE.mjs 4.71 kB │ gzip: 1.97 kB
dist/locales/generated/ca-ES.mjs 4.73 kB │ gzip: 1.92 kB
dist/locales/generated/ko-KR.mjs 4.73 kB │ gzip: 2.14 kB
dist/locales/generated/ro-RO.mjs 4.73 kB │ gzip: 1.95 kB
dist/locales/generated/fr-FR.mjs 4.74 kB │ gzip: 1.92 kB
dist/locales/generated/hu-HU.mjs 4.82 kB │ gzip: 2.09 kB
dist/locales/generated/he-IL.mjs 4.88 kB │ gzip: 1.99 kB
dist/locales/generated/ja-JP.mjs 4.95 kB │ gzip: 2.19 kB
dist/locales/generated/vi-VN.mjs 5.19 kB │ gzip: 2.14 kB
dist/locales/generated/ar-SA.mjs 5.35 kB │ gzip: 2.21 kB
dist/locales/generated/pseudo-en.mjs 5.68 kB │ gzip: 2.27 kB
dist/locales/generated/sr-Cyrl.mjs 5.82 kB │ gzip: 2.32 kB
dist/locales/generated/uk-UA.mjs 6.11 kB │ gzip: 2.41 kB
dist/locales/generated/el-GR.mjs 6.47 kB │ gzip: 2.53 kB
dist/locales/generated/ru-RU.mjs 6.62 kB │ gzip: 2.55 kB
dist/index.mjs 822.22 kB │ gzip: 179.78 kB
dist/locales/generated/zh-CN.js 4.23 kB │ gzip: 2.08 kB
dist/locales/generated/zh-TW.js 4.28 kB │ gzip: 2.10 kB
dist/locales/generated/en.js 4.41 kB │ gzip: 1.33 kB
dist/locales/generated/fi-FI.js 4.52 kB │ gzip: 1.95 kB
dist/locales/generated/af-ZA.js 4.56 kB │ gzip: 1.93 kB
dist/locales/generated/no-NO.js 4.58 kB │ gzip: 1.90 kB
dist/locales/generated/da-DK.js 4.59 kB │ gzip: 1.89 kB
dist/locales/generated/pt-BR.js 4.60 kB │ gzip: 1.94 kB
dist/locales/generated/sv-SE.js 4.61 kB │ gzip: 1.93 kB
dist/locales/generated/nl-NL.js 4.62 kB │ gzip: 1.92 kB
dist/locales/generated/pt-PT.js 4.63 kB │ gzip: 1.93 kB
dist/locales/generated/it-IT.js 4.66 kB │ gzip: 1.92 kB
dist/locales/generated/pl-PL.js 4.73 kB │ gzip: 2.09 kB
dist/locales/generated/cs-CZ.js 4.74 kB │ gzip: 2.10 kB
dist/locales/generated/es-ES.js 4.77 kB │ gzip: 1.95 kB
dist/locales/generated/tr-TR.js 4.77 kB │ gzip: 2.07 kB
dist/locales/generated/de-DE.js 4.77 kB │ gzip: 2.02 kB
dist/locales/generated/ca-ES.js 4.80 kB │ gzip: 1.97 kB
dist/locales/generated/ko-KR.js 4.80 kB │ gzip: 2.20 kB
dist/locales/generated/ro-RO.js 4.80 kB │ gzip: 2.00 kB
dist/locales/generated/fr-FR.js 4.81 kB │ gzip: 1.97 kB
dist/locales/generated/hu-HU.js 4.89 kB │ gzip: 2.14 kB
dist/locales/generated/he-IL.js 4.95 kB │ gzip: 2.04 kB
dist/locales/generated/ja-JP.js 5.02 kB │ gzip: 2.24 kB
dist/locales/generated/vi-VN.js 5.26 kB │ gzip: 2.19 kB
dist/locales/generated/ar-SA.js 5.42 kB │ gzip: 2.26 kB
dist/locales/generated/pseudo-en.js 5.75 kB │ gzip: 2.32 kB
dist/locales/generated/sr-Cyrl.js 5.89 kB │ gzip: 2.37 kB
dist/locales/generated/uk-UA.js 6.18 kB │ gzip: 2.47 kB
dist/locales/generated/el-GR.js 6.54 kB │ gzip: 2.58 kB
dist/locales/generated/ru-RU.js 6.69 kB │ gzip: 2.60 kB
dist/index.js 606.48 kB │ gzip: 160.10 kB
✓ built in 2.45s
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
NX Successfully ran target build for project twenty-emails and 2 tasks it depends on (5s)
Nx read the output from the cache instead of running the command for 2 out of 3 tasks.
```
Fixing folder to search for tsconfig from
2025-11-06 16:28:01 +00:00
Guillim
373399fadc
Settings of morph needs a CSS fix ( #15681 )
...
adding margin auto for morph preview card in order to vertically align
the box, as per figma
Before
<img width="467" height="331" alt="Screenshot 2025-11-06 at 16 36 00"
src="https://github.com/user-attachments/assets/23543cdc-d0f3-4bbf-8dc1-4ac5f26f786e "
/>
After
<img width="576" height="362" alt="Screenshot 2025-11-06 at 16 36 16"
src="https://github.com/user-attachments/assets/8530d59f-53a2-4eaa-834a-68b801bba3c8 "
/>
Fixes https://github.com/twentyhq/core-team-issues/issues/1846
2025-11-06 17:06:04 +01:00
Etienne
037663ddcd
RichText editor fixes ( #15678 )
...
closes https://github.com/twentyhq/twenty/issues/15474
closes https://github.com/twentyhq/twenty/issues/15677
2025-11-06 16:21:57 +01:00
Baptiste Devessier
9ec0a7b969
fix: use default trigger name if step name isn't defined ( #15676 )
...
## Before
https://github.com/user-attachments/assets/68427ca7-6523-4acc-bec3-7d98f3ae7840
## After
https://github.com/user-attachments/assets/8a998a52-29fc-450e-a92e-1cadc78e3856
2025-11-06 15:48:37 +01:00
Thomas Trompette
e4ae792225
Allow rich text v2 in workflows ( #15674 )
...
Rich text V2 is supported and has probably been removed by mistake
Fix https://github.com/twentyhq/twenty/issues/15660
2025-11-06 14:33:06 +00:00
Abdul Rahman
e518f03031
Fix: AI Agent tool errors and relation field handling ( #15668 )
...
### Problems Fixed
1. **Tool execution errors broke conversations**
- Failed tool executions showed "Processing..." indefinitely instead of
error messages
- Tool errors with `input: null` caused subsequent messages to fail with
`Missing required parameter: 'input[X].arguments'`
2. **Relation fields not saved in AI Agent**
- AI Agent couldn't save relation fields (e.g., `companyId`) when
creating/upserting records
- Join column names weren't recognized during field validation
### Solutions
**Tool Error Handling:**
- Display error messages in UI with expandable error details
- Ensure tool parts always have valid `input` field (`input:
part.toolInput ?? {}`)
- Refactored `ToolStepRenderer` to accept complete `toolPart` object
**Relation Field Support:**
- Updated field validation in `create-record.service.ts` and
`upsert-record.service.ts`
- Check both `fieldIdByName` and `fieldIdByJoinColumnName` mappings
### Changes
- `packages/twenty-front/src/modules/ai/`
- `ToolStepRenderer.tsx` - Error state handling
- `AIChatAssistantMessageRenderer.tsx` - Pass complete toolPart
- `mapDBPartToUIMessagePart.ts` - Prevent null tool input
- `packages/twenty-server/src/engine/core-modules/record-crud/services/`
- `create-record.service.ts` - Add join column validation
- `upsert-record.service.ts` - Add join column validation
2025-11-06 12:28:00 +01:00
Thomas Trompette
027e9dddd3
Increase main chunk size to 6.1MB ( #15667 )
...
As title
2025-11-06 10:38:08 +00:00
Weiko
051a226b6f
Fix display currency amount if currency code is empty string ( #15654 )
...
## Before
<img width="1306" height="841" alt="Screenshot 2025-11-05 at 18 40 05"
src="https://github.com/user-attachments/assets/964f5771-bd91-4cb2-9684-52073b845580 "
/>
## After
<img width="1297" height="795" alt="Screenshot 2025-11-05 at 18 39 55"
src="https://github.com/user-attachments/assets/4ae99265-7459-4579-9f65-e2d8225e8306 "
/>
2025-11-05 23:55:57 +01:00
Marie
982964efbf
Fix scroll to start when resize or move around columns ( #15655 )
...
Fixes https://github.com/twentyhq/private-issues/issues/361
There's room for more improvement here -
triggerInitialRecordTableDataLoad does a lot of things, should not be
triggered so much. actually even
RecordTableVirtualizedInitialDataLoadEffect should not be triggered when
there's just a metadata field change (if we trust the name
initialDataLoad)
2025-11-05 18:58:35 +01:00
martmull
abde3c04ac
1630 extensibility twenty cli ability to create edit and delete fields ( #15501 )
...
As title
- adds decorators in twenty-sdk
- update twenty-cli load-manifest to it gets @FieldMetadata infos +
testing
- update twenty-server so it CRUD fields properly, using
universalIdentifier
- Fix UI so we can update managed objects records
- move FieldMetadata items from twenty-server to twenty-shared
2025-11-05 17:50:06 +01:00
github-actions[bot]
f0aac163bd
i18n - translations ( #15644 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2025-11-05 14:49:51 +01:00
nitin
636c564168
Add shortcut on dashboard workspace entity + add shortcuts ( #15603 )
...
syncmetadata required!
closes
https://discord.com/channels/1130383047699738754/1435260594176393256
---------
Co-authored-by: bosiraphael <raphael.bosi@gmail.com >
Co-authored-by: Raphaël Bosi <71827178+bosiraphael@users.noreply.github.com >
2025-11-05 13:42:37 +00:00
nitin
3f52102e18
fix groupMode regression caused due to default value flip ( #15627 )
2025-11-05 16:04:09 +05:30
Abdullah.
0fcfcec426
(Breaking change) Switch between set password and change password on the settings page. ( #15582 )
...
Here is what the PR does:
- Surface password state in validatePasswordResetToken, returning
hasPassword so the client can tell whether a user is setting or changing
their password.
- Consume that flag throughout the front end (mock data, stories,
GraphQL types) and update the Reset/Set Password modal to swap the
heading/button label and success toast accordingly.
- After a successful password set/reset, immediately update the
logged-in user’s hasPassword flag so the Settings screen reflects the
new state without a reload.
Modal has two states now - reset password modal uses change password
state since it made intuitive sense.
<p align="center">
<img width="404" height="397" alt="image"
src="https://github.com/user-attachments/assets/c54cc581-1248-4395-833d-0202758e1947 "
/>
</p>
<p align="center">
<img width="403" height="393" alt="image"
src="https://github.com/user-attachments/assets/d8a39a95-27e6-4037-86f2-1f74176002ba "
/>
</p>
---------
Co-authored-by: Félix Malfait <felix.malfait@gmail.com >
2025-11-05 11:29:37 +01:00
Abdul Rahman
cc7343a8f2
Revert: Agent chat umbrella hook refactoring due to streaming issue on thread switch ( #15621 )
...
## Summary
Reverts commits afc518a, ae22e64, and 800b5b5 that refactored
`useAgentChat` to address umbrella hook pattern feedback.
## Issues Introduced by Refactoring
The refactoring broke several critical functionalities:
1. **Streaming fails on thread switch** - Messages don't stream properly
when switching between threads
2. **Messages lost on tab close** - When the Ask AI tab is closed, the
request is lost instead of continuing in the background
3. **Blank chat requiring force-reload** - Chats often appear blank and
require switching to another chat to force a reload (closes
[#1771 ](https://github.com/twentyhq/core-team-issues/issues/1771 ))
## Root Cause
After extensive debugging, it appears **multiple instances of `useChat`
don't work well together**. The refactored architecture inadvertently
created scenarios where multiple `useChat` instances interfere with each
other.
## Resolution
Reverting to restore functionality. The umbrella hook pattern
optimization needs a different architectural approach that doesn't rely
on multiple `useChat` instances.
## Follow-up
While the umbrella hook feedback is valid, we need to rethink the
implementation strategy:
- Find an alternative to multiple `useChat` instances
- Possibly consolidate chat state management differently
2025-11-05 10:50:50 +01:00
Harshit Singh
003b04e9ae
fix: removeuseMergeRecordRelatationship and simplify dry run response ( #15486 )
...
## Description
- This PR addresses issue
https://github.com/twentyhq/twenty/issues/15201
- Removed
[useMergeRecordRelationships.ts](https://github.com/twentyhq/twenty/compare/main...harshit078:fix-merge-frontend?expand=1#diff-5d0366f814ff0c0e8961f40120690206a7acd3f7b66135cfb8c4ad8d3f6bc681 )
- now backend returns populated result and frontend just shows it
without refetching relations.
- to be merged after PR- https://github.com/twentyhq/twenty/pull/15484
## Visual Appearance
https://github.com/user-attachments/assets/09d7548a-74a9-4742-af49-e98b4174f68c
---------
Co-authored-by: Etienne <45695613+etiennejouan@users.noreply.github.com >
2025-11-05 10:33:24 +01:00
martmull
642e0c882a
Fix missing creation attributes ( #15624 )
2025-11-05 08:29:23 +00:00
neo773
5d5999b80a
fix useTriggerProviderReconnect ( #15620 )
2025-11-05 00:51:25 +01:00
nitin
b5064e88f6
Fix groupMode toggle ( #15585 )
...
groupMode should be undefined if no groupby is set on the secondary
axis!
This default value is also the reason -- all the logic -- where
groupMode was checked for conditional rendering -- for eg
, negative data labels when there is no groupby -- the labels should
appear below wasn't happening -- since there was always a default to
groupMode!
changes -
- getting rid of the default value on the bar chart DTO for groupMode
- on front -- make sure groupMode is only set when the secondary axis
gets groupBy id and proper cleanup
2025-11-04 18:28:20 +01:00
Raphaël Bosi
05a28a8ec2
Create a feature flag for dashboards v2 ( #15601 )
...
Prevent users from creating v2 chart types via the api.
Only created unit tests and not integration tests (since it's not that
important, and the v2 will be released soon), but tested via the api
playground.
2025-11-04 16:29:08 +01:00
github-actions[bot]
cd05470e99
i18n - translations ( #15602 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2025-11-04 15:36:08 +01:00
Paul Rastoin
8dd43be9a2
Create many view groups ( #15591 )
...
# Introduction
Same as https://github.com/twentyhq/twenty/pull/15576 but for view
groups creation
When creating a kanban view with v2 flag activated in production result
in race condition due to request being slow and //.
That's why we're introducing a batch create on view group here
closing https://github.com/twentyhq/core-team-issues/issues/1847
## In v2
- batch create view group endpoint is available
- frontend will target the new endpoint
## In v1
- batch create view group endpoint is not available
- frontend will stick to old fake batch view group creation loop
## Gallery
### v2
<img width="1796" height="486" alt="image"
src="https://github.com/user-attachments/assets/932cfe9f-85f1-41cc-a1c4-72a4b5d5a256 "
/>
### v1
<img width="1852" height="966" alt="image"
src="https://github.com/user-attachments/assets/8aa9df11-cdea-4b12-ae60-118cdf5e257b "
/>
2025-11-04 15:17:55 +01:00
nitin
186dbb8aca
fast-follows: fix placeholder not appearing when no widgets in a tab ( #15599 )
...
closes -
https://discord.com/channels/1130383047699738754/1435261256251605053
before:
https://github.com/user-attachments/assets/fbbfd6b0-6c25-48c3-9367-efbf47efd34a
after:
https://github.com/user-attachments/assets/87105c4e-cf79-43c0-83bb-ebb4c32a64fc
2025-11-04 14:05:02 +00:00
neo773
e3076328dd
Child folders followup ( #15526 )
2025-11-04 15:04:03 +01:00
github-actions[bot]
15a6ca64da
i18n - translations ( #15598 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2025-11-04 14:40:04 +01:00
Paul Rastoin
1472eb3cda
[Twenty-front] Jest maxWorkers 50% as if not result to cpu halt (#15594 )
2025-11-04 14:35:35 +01:00
Raphaël Bosi
7256abad3a
Dashboard: Deactivate delete and navigation actions in edit mode ( #15590 )
...
https://github.com/user-attachments/assets/74256232-dfb1-4cb5-9fd8-854e0b3b7c09
2025-11-04 18:43:36 +05:30
Raphaël Bosi
98180c263d
Filter out null values in tooltip ( #15588 )
...
Before:
<img width="356" height="330" alt="CleanShot 2025-11-04 at 11 44 14@2x"
src="https://github.com/user-attachments/assets/924f8623-3961-411c-9763-800fd9491224 "
/>
After:
<img width="418" height="242" alt="CleanShot 2025-11-04 at 11 43 49@2x"
src="https://github.com/user-attachments/assets/54cf5fa4-1146-43b4-8cff-59817bcbe6a4 "
/>
2025-11-04 11:09:12 +00:00
Paul Rastoin
a3dc6e5c59
View field create many mutation ( #15576 )
...
# Introduction
When creating a view with v2 flag activated in production result in race
condition due to request being slow and //.
That's why we're introducing a batch create on view field here
closing https://github.com/twentyhq/core-team-issues/issues/1836
## In v2
- batch create view field endpoint is available
- frontend will target the new endpoint
## In v1
- batch create view field endpoint is not available
- frontend will stick to old fake batch view field creation loop
## Polish
- use persist view field is quite verbose as contains two data model we
could aim to create an update many view fields in order to standardize
new pattern
2025-11-04 11:36:08 +01:00
nitin
106c33abec
fix inconsistent widget placeholder placement ( #15580 )
...
fixes -
https://github.com/twentyhq/twenty/pull/15496#issuecomment-3481636780
and https://discord.com/channels/1130383047699738754/1434971632539009055
- make the pending placeholder to be non-static -- so that it behaves
similarly to compact behavior like other widgets do
- make sure users can't set dashboards to be opened in the side panel --
similar to workflows
before-
https://github.com/user-attachments/assets/d991db56-1388-4e4b-b743-a63f56b6187a
after-
https://github.com/user-attachments/assets/9031f2c6-1e3b-4604-a5a0-3124d14484ce
2025-11-04 11:07:57 +01:00
nitin
5bc876e4b4
IFrame widget improvements ( #15483 )
...
changes -
- make iframe side panel to match others -- ie use SidePanelHeader for
title
- make url optional in configuration to match that of the other widgets
(allow partial saves) - render No data status when error or no url
- split widget sizes into two -- graph widget sizes and widget sizes
(graph widgets are a subset of chart widgets)
2025-11-03 17:30:06 +00:00
nitin
902eb2c5d2
Instant widget placeholder placement on drag end ( #15496 )
...
closes -
https://discord.com/channels/1130383047699738754/1430596561137700957
fixed a bug - where on chart type change in side panel -- wont update
the widgets minimum size
---------
Co-authored-by: Raphaël Bosi <71827178+bosiraphael@users.noreply.github.com >
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com >
2025-11-03 17:08:13 +00:00
Raphaël Bosi
711cf819e9
Fix date granularity saving issue ( #15579 )
...
The date granularities were missing in the fragment
2025-11-03 16:53:44 +00:00
Lucas Bordeau
b33b38cb02
Follow-up high fixes on date refactor ( #15553 )
...
This PR fixes important bugs on date filter handling following-up date
refactor.
Fixes : https://github.com/twentyhq/core-team-issues/issues/1814
2025-11-03 17:51:42 +01:00
nitin
bafc0496b1
add inner padding on bar chart ( #15577 )
...
before:
<img width="602" height="407" alt="CleanShot 2025-11-03 at 22 06 45"
src="https://github.com/user-attachments/assets/3553d3a0-2626-4f88-9adc-7d472fde2b26 "
/>
after:
<img width="628" height="392" alt="CleanShot 2025-11-03 at 22 06 08"
src="https://github.com/user-attachments/assets/d5cf2b68-c5eb-4ce7-be27-c685ccd81109 "
/>
2025-11-03 17:48:57 +01:00
Raphaël Bosi
a64d4dbe71
Various font styling fixes on chart ( #15572 )
...
- Fix axis legends styling
- Fix legends styling
- Fix tooltip legends
---------
Co-authored-by: ehconitin <nitinkoche03@gmail.com >
2025-11-03 16:43:28 +00:00
Raphaël Bosi
4a87706d0b
Fix chart filter settings back button behavior ( #15573 )
...
Before:
https://github.com/user-attachments/assets/23881978-3234-4a0b-95ec-15470d26026d
After:
https://github.com/user-attachments/assets/80d222f6-585a-4fff-8476-dae327e34699
2025-11-03 16:25:59 +00:00
Thomas Trompette
d1330a4a8c
Improve workflow performances ( #15528 )
...
- on draft creation, do not fetch the full version. Avoid the fetch of
steps and trigger
- on activation, we were performing 8 queries/mutations synchronously +
2 additional for automated triggers. I refacto the call it it gets
reduced to 4 queries/mutations + 2 additional for automated triggers
2025-11-03 17:23:01 +01:00
nitin
c2d8fd495a
fix: trash button centering + gap between forbidden display and trashbutton ( #15571 )
...
<img width="247" height="73" alt="CleanShot 2025-11-03 at 21 24 18"
src="https://github.com/user-attachments/assets/c0287919-be18-4dfa-96b8-5bbdeaab6693 "
/>
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2025-11-03 16:21:17 +00:00
Marie
d72aae86cb
Graph margins vary depending on presence of labels ( #15559 )
...
https://github.com/user-attachments/assets/3c27fa7b-78a3-49eb-9795-53571662cf12
---------
Co-authored-by: Raphaël Bosi <71827178+bosiraphael@users.noreply.github.com >
2025-11-03 17:06:41 +01:00
github-actions[bot]
06feee91f0
i18n - translations ( #15570 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2025-11-03 16:47:03 +01:00
Weiko
464f80ed9b
fix front lint
2025-11-03 16:38:55 +01:00
Ranjeet Baraik
454114932a
fix: ai settings page crash ( #15455 )
...
Fixes - https://github.com/twentyhq/twenty/issues/14995
---------
Co-authored-by: prastoin <paul@twenty.com >
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com >
2025-11-03 16:36:27 +01:00
Weiko
a5e53d74dc
fix calendar view when switched from other layout type bis ( #15569 )
2025-11-03 16:35:30 +01:00
Weiko
0b21ac7dd8
Add permission check on calendar view drag and add new ( #15556 )
...
## Context
If selected date field of the calendar view has readonly, we should not
allow users to drag/drop cards nor allow them to add a new record
(resulting in a permission error on the BE due to the FE updating the
said field)
2025-11-03 16:33:59 +01:00