github-actions[bot]
ba0108944f
i18n - translations ( #18955 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-25 14:11:05 +01:00
Félix Malfait
03c94727be
fix: wrap standard object/field metadata labels in msg for i18n extraction ( #18951 )
...
## Summary
- Standard object and field metadata labels were plain strings instead
of being wrapped in Lingui `msg` template literals, which prevented
extraction into translation catalogs. This caused "Uncompiled message
detected!" warnings at runtime.
- The bug was introduced when the decorator-based approach
(`@WorkspaceEntity({ labelSingular: msg`...` })`) was replaced by flat
metadata builder utils with plain strings.
- Adds an `i18nLabel` helper to safely extract the message string from
`MessageDescriptor` objects.
- Re-runs `lingui extract` and `lingui compile` to update all locale PO
files and compiled catalogs.
- Adds an integration test that queries the metadata API with `x-locale`
headers to verify locale-aware label resolution.
- Includes a ClickHouse usage event writer integration test (small
unrelated fix noticed along the way).
## Test plan
- [ ] CI lint passes (prettier + oxlint)
- [ ] CI typecheck passes
- [ ] Server unit tests pass
- [ ] Integration tests pass (including new `object-metadata-i18n` test)
- [ ] No "Uncompiled message detected!" warnings for standard
object/field labels at runtime
Made with [Cursor](https://cursor.com )
2026-03-25 14:03:51 +01:00
github-actions[bot]
5c99d7205f
i18n - translations ( #18930 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-24 19:30:01 +01:00
github-actions[bot]
856c72c5d6
i18n - translations ( #18920 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-24 17:15:17 +01:00
github-actions[bot]
4104b1d2bc
i18n - translations ( #18915 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-24 14:59:22 +01:00
github-actions[bot]
68a508a353
i18n - translations ( #18839 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-23 01:40:20 +01:00
github-actions[bot]
a1b1622d94
i18n - translations ( #18837 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-23 00:03:35 +01:00
github-actions[bot]
d149c2a041
i18n - translations ( #18806 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-20 17:44:20 +01:00
github-actions[bot]
3cbd9f2b5d
i18n - translations ( #18786 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-20 00:39:40 +01:00
github-actions[bot]
189c564840
i18n - translations ( #18742 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-18 18:19:45 +01:00
github-actions[bot]
c676e46a1d
i18n - translations ( #18736 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-18 14:48:17 +01:00
github-actions[bot]
48285be164
i18n - translations ( #18686 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-17 00:09:04 +01:00
github-actions[bot]
087ee19807
i18n - translations ( #18683 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-16 18:17:39 +01:00
github-actions[bot]
55d675bba7
i18n - translations ( #18633 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-13 19:23:23 +01:00
github-actions[bot]
501fcc737f
i18n - translations ( #18586 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-12 15:18:16 +01:00
github-actions[bot]
f19fcd0010
i18n - translations ( #18578 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-12 13:23:54 +01:00
github-actions[bot]
21de221420
i18n - translations ( #18557 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-11 15:57:19 +01:00
github-actions[bot]
3d7cb4499f
i18n - translations ( #18454 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-06 08:53:00 +01:00
github-actions[bot]
4d0b8a8644
i18n - translations ( #18450 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-06 02:23:59 +01:00
Charles Bochet
9d57bc39e5
Migrate from ESLint to OxLint ( #18443 )
...
## Summary
Fully replaces ESLint with OxLint across the entire monorepo:
- **Replaced all ESLint configs** (`eslint.config.mjs`) with OxLint
configs (`.oxlintrc.json`) for every package: `twenty-front`,
`twenty-server`, `twenty-emails`, `twenty-ui`, `twenty-shared`,
`twenty-sdk`, `twenty-zapier`, `twenty-docs`, `twenty-website`,
`twenty-apps/*`, `create-twenty-app`
- **Migrated custom lint rules** from ESLint plugin format to OxLint JS
plugin system (`@oxlint/plugins`), including
`styled-components-prefixed-with-styled`, `no-hardcoded-colors`,
`sort-css-properties-alphabetically`,
`graphql-resolvers-should-be-guarded`,
`rest-api-methods-should-be-guarded`, `max-consts-per-file`, and
Jotai-related rules
- **Migrated custom rule tests** from ESLint `RuleTester` + Jest to
`oxlint/plugins-dev` `RuleTester` + Vitest
- **Removed all ESLint dependencies** from `package.json` files and
regenerated lockfiles
- **Updated Nx targets** (`lint`, `lint:diff-with-main`, `fmt`) in
`nx.json` and per-project `project.json` to use `oxlint` commands with
proper `dependsOn` for plugin builds
- **Updated CI workflows** (`.github/workflows/ci-*.yaml`) — no more
ESLint executor
- **Updated IDE setup**: replaced `dbaeumer.vscode-eslint` with
`oxc.oxc-vscode` extension, configured `source.fixAll.oxc` and
format-on-save with Prettier
- **Replaced all `eslint-disable` comments** with `oxlint-disable`
equivalents across the codebase
- **Updated docs** (`twenty-docs`) to reference OxLint instead of ESLint
- **Renamed** `twenty-eslint-rules` package to `twenty-oxlint-rules`
### Temporarily disabled rules (tracked in `OXLINT_MIGRATION_TODO.md`)
| Rule | Package | Violations | Auto-fixable |
|------|---------|-----------|-------------|
| `twenty/sort-css-properties-alphabetically` | twenty-front | 578 | Yes
|
| `typescript/consistent-type-imports` | twenty-server | 3814 | Yes |
| `twenty/max-consts-per-file` | twenty-server | 94 | No |
### Dropped plugins (no OxLint equivalent)
`eslint-plugin-project-structure`, `lingui/*`, `@stylistic/*`,
`import/order`, `prefer-arrow/prefer-arrow-functions`,
`eslint-plugin-mdx`, `@next/eslint-plugin-next`,
`eslint-plugin-storybook`, `eslint-plugin-react-refresh`. Partial
coverage for `jsx-a11y` and `unused-imports`.
### Additional fixes (pre-existing issues exposed by merge)
- Fixed `EmailThreadPreview.tsx` broken import from main rename
(`useOpenEmailThreadInSidePanel`)
- Restored truthiness guard in `getActivityTargetObjectRecords.ts`
- Fixed `AgentTurnResolver` return types to match entity (virtual
`fileMediaType`/`fileUrl` are resolved via `@ResolveField()`)
## Test plan
- [x] `npx nx lint twenty-front` passes
- [x] `npx nx lint twenty-server` passes
- [x] `npx nx lint twenty-docs` passes
- [x] Custom oxlint rules validated with Vitest: `npx nx test
twenty-oxlint-rules`
- [x] `npx nx typecheck twenty-front` passes
- [x] `npx nx typecheck twenty-server` passes
- [x] CI workflows trigger correctly with `dependsOn:
["twenty-oxlint-rules:build"]`
- [x] IDE linting works with `oxc.oxc-vscode` extension
2026-03-06 01:03:50 +01:00
github-actions[bot]
61f9cf9260
i18n - translations ( #18442 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-05 20:37:14 +01:00
github-actions[bot]
9d4ff7820d
i18n - translations ( #18415 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-05 11:14:03 +01:00
github-actions[bot]
7f6b270a76
i18n - translations ( #18388 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-04 17:32:14 +01:00
github-actions[bot]
d59d2efb8b
i18n - translations ( #18383 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-04 15:46:01 +01:00
github-actions[bot]
aaa483c020
i18n - translations ( #18380 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-04 15:35:13 +01:00
github-actions[bot]
b341704a0e
i18n - translations ( #18306 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-28 14:24:11 +01:00
github-actions[bot]
1ed13182d0
i18n - translations ( #18197 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-24 18:10:28 +01:00
github-actions[bot]
c369baf63a
i18n - translations ( #18176 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-24 10:07:16 +01:00
github-actions[bot]
e21a7e11b2
i18n - translations ( #18175 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-23 19:56:31 +01:00
github-actions[bot]
020cf7f3e0
i18n - translations ( #18146 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-22 12:36:23 +01:00
github-actions[bot]
d444648cc0
i18n - translations ( #18127 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-20 14:41:58 +01:00
github-actions[bot]
7b10202c69
i18n - translations ( #18086 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-19 13:17:01 +01:00
github-actions[bot]
b33f86fbf5
i18n - translations ( #18079 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-19 11:56:21 +01:00
github-actions[bot]
42108e0611
i18n - translations ( #18053 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-18 22:20:32 +01:00
github-actions[bot]
9bac8f15d4
i18n - translations ( #18029 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-18 13:26:54 +01:00
github-actions[bot]
7c5a13852b
i18n - translations ( #18007 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-17 17:27:50 +01:00
github-actions[bot]
aac032e517
i18n - translations ( #17986 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-17 11:14:14 +01:00
github-actions[bot]
0876197c8d
i18n - translations ( #17935 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-14 10:54:52 +01:00
github-actions[bot]
ebfaff0a53
i18n - translations ( #17932 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-13 18:19:38 +01:00
github-actions[bot]
975c64bf3d
i18n - translations ( #17911 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-13 11:20:56 +01:00
github-actions[bot]
91bfd45dc5
i18n - translations ( #17877 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-11 22:08:58 +01:00
github-actions[bot]
0ee63a0525
i18n - translations ( #17872 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-11 17:35:20 +01:00
github-actions[bot]
18880f0385
i18n - translations ( #17869 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-11 17:05:37 +01:00
github-actions[bot]
05a6a96b13
i18n - translations ( #17842 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-10 20:23:26 +01:00
github-actions[bot]
8f91529153
i18n - translations ( #17838 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-10 15:24:40 +01:00
github-actions[bot]
aa7973e5b8
i18n - translations ( #17817 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-09 19:08:48 +01:00
github-actions[bot]
bf4c348c8b
i18n - translations ( #17790 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-09 11:18:24 +01:00
github-actions[bot]
497230a052
i18n - translations ( #17789 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-09 00:22:32 +01:00
github-actions[bot]
30cbf0e40e
i18n - translations ( #17768 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-06 18:27:52 +01:00
github-actions[bot]
e505eba978
i18n - translations ( #17751 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-05 18:14:47 +01:00