7a721ef5dd
i18n - docs translations ( #19709 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-14 20:45:33 +02:00
42f452311b
i18n - docs translations ( #19705 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-14 18:44:30 +02:00
40c6c63bf5
i18n - docs translations ( #19672 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-14 10:54:27 +02:00
33c74c4d28
i18n - docs translations ( #19651 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-13 16:48:44 +02:00
20f28d6593
i18n - docs translations ( #19529 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-10 00:29:03 +02:00
Paul Rastoin and GitHub
e411f076f1
Replace typeorm binary by database:migrate:generate ( #19515 )
2026-04-09 16:25:10 +00:00
93eeeb2397
i18n - docs translations ( #19509 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-09 16:55:20 +02:00
64c7f52f06
i18n - docs translations ( #19490 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-09 12:39:31 +02:00
265d859c6e
i18n - docs translations ( #19446 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-08 14:42:19 +02:00
8090fa4364
i18n - docs translations ( #19437 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-08 12:40:41 +02:00
24a5273a79
i18n - docs translations ( #19410 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-07 18:36:49 +02:00
neo773 and GitHub
54be3b7e87
docs: remove reference to sync metadata ( #19400 )
2026-04-07 15:55:23 +00:00
5e9792009f
i18n - docs translations ( #19405 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-07 16:51:49 +02:00
d97a1cfc27
i18n - docs translations ( #19399 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-07 14:39:30 +02:00
0b8421a45a
i18n - docs translations ( #19314 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-03 16:31:55 +02:00
5de5ed2cb4
i18n - docs translations ( #19228 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-02 05:20:37 +02:00
6eb4c4ca4b
i18n - docs translations ( #19227 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-02 03:04:12 +02:00
ae202a1b59
i18n - docs translations ( #19226 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-04-02 00:27:21 +02:00
8d539f0e49
i18n - docs translations ( #19139 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-30 22:30:14 +02:00
a6cecdbd49
i18n - docs translations ( #19137 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-30 20:38:05 +02:00
369ae2862f
i18n - docs translations ( #19135 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-30 18:40:35 +02:00
40abe1e6d0
i18n - docs translations ( #19128 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-30 16:49:57 +02:00
6af7e32c54
i18n - docs translations ( #19113 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-30 12:45:45 +02:00
4d6c8db205
i18n - docs translations ( #18976 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-25 17:42:31 +01:00
fb34d2ce80
i18n - docs translations ( #18938 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-25 01:55:36 +01:00
a6519f2c97
i18n - docs translations ( #18931 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-24 19:41:27 +01:00
77bade8114
i18n - docs translations ( #18925 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-24 17:42:35 +01:00
960c80999e
i18n - docs translations ( #18903 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-24 11:41:29 +01:00
1be0f1554f
i18n - docs translations ( #18807 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-20 17:46:46 +01:00
a370a26b79
i18n - docs translations ( #18749 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-19 09:36:37 +01:00
6711b40922
i18n - docs translations ( #18645 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-14 16:49:41 +01:00
c753b2bee1
i18n - docs translations ( #18644 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-14 13:57:57 +01:00
2a8912b17a
i18n - docs translations ( #18636 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-13 19:40:17 +01:00
58f534939c
i18n - docs translations ( #18617 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-13 13:36:07 +01:00
09beddb63d
i18n - docs translations ( #18566 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-12 10:55:44 +01:00
f855dacec9
i18n - docs translations ( #18546 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-11 09:55:15 +01:00
e7fe435f60
i18n - docs translations ( #18541 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-10 17:44:34 +01:00
982f0c4a4d
i18n - docs translations ( #18534 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
Co-authored-by: Charles Bochet <charles@twenty.com >
2026-03-10 15:57:15 +01:00
59e9563fc7
i18n - docs translations ( #18528 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
Co-authored-by: Charles Bochet <charles@twenty.com >
2026-03-10 14:15:51 +01:00
882e9fd231
Docs: restructure Extend section with API, Webhooks, and Apps pages ( #18517 )
...
## Summary
- Restructures the developer Extend documentation: moves API and
Webhooks to top-level pages, creates dedicated Apps section with Getting
Started, Building, and Publishing pages
- Updates navigation structure (`docs.json`, `base-structure.json`,
`navigation.template.json`)
- Updates translated docs for all locales and LLMS.md references across
app packages
## Test plan
- [ ] Run `mintlify dev` locally and verify navigation structure
- [ ] Check that all links in the Extend section work correctly
- [ ] Verify translated pages render properly
Made with [Cursor](https://cursor.com )
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-10 10:00:20 +01:00
1993614637
i18n - docs translations ( #18496 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-09 16:11:29 +01:00
06451407ce
i18n - docs translations ( #18464 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-06 15:44:31 +01:00
9d808302aa
i18n - docs translations ( #18452 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-06 08:52:50 +01:00
90cced0e74
i18n - docs translations ( #18451 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-06 02:24:32 +01:00
Charles Bochet and GitHub
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
1ec7244d1b
i18n - docs translations ( #18440 )
...
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com >
2026-03-05 19:54:32 +01:00
Charles Bochet and GitHub
1affa1e004
chore(front): remove vite-plugin-checker background TS/ESLint checks ( #18437 )
...
## Summary
Removes `vite-plugin-checker` and all references to
`VITE_DISABLE_TYPESCRIPT_CHECKER` / `VITE_DISABLE_ESLINT_CHECKER`.
These background checks are no longer needed because our dev experience
now relies on **independent** linters and type-checkers:
- `npx nx lint:diff-with-main twenty-front` for ESLint
- `npx nx typecheck twenty-front` for TypeScript
Running these as separate processes (rather than inside Vite) is faster,
gives cleaner output, and avoids the significant memory overhead that
`vite-plugin-checker` introduces during `vite dev` and `vite build`. The
old env vars to disable them are removed from `vite.config.ts`,
`package.json` scripts, `nx.json`, `.env.example`, and all translated
docs.
2026-03-05 18:55:04 +01:00
Charles Bochet and GitHub
7a2e397ad1
Complete linaria migration ( #18361 )
...
## Summary
Completes the migration of the frontend styling system from **Emotion**
(`@emotion/styled`, `@emotion/react`) to **Linaria** (`@linaria/react`,
`@linaria/core`), a zero-runtime CSS-in-JS library where styles are
extracted at build time.
This is the final step of the migration — all ~494 files across
`twenty-front`, `twenty-ui`, `twenty-website`, and `twenty-sdk` are now
fully converted.
## Changes
### Styling Migration (across ~480 component files)
- Replaced all `@emotion/styled` imports with `@linaria/react`
- Converted runtime theme access patterns (`({ theme }) => theme.x.y`)
to build-time `themeCssVariables` CSS custom properties
- Replaced `useTheme()` hook (from Emotion) with
`useContext(ThemeContext)` where runtime theme values are still needed
(e.g., passing colors to non-CSS props like icon components)
- Removed `@emotion/react` `css` helper usages in favor of Linaria
template literals
### Dependency & Configuration Changes
- **Removed**: `@emotion/react`, `@emotion/styled` from root
`package.json`
- **Added**: `@wyw-in-js/babel-preset`, `next-with-linaria` (for
twenty-website SSR support)
- Updated Nx generator defaults from `@emotion/styled` to
`@linaria/react` in `nx.json`
- Simplified `vite.config.ts` (removed Emotion-specific configuration)
- Updated `twenty-website/next.config.js` to use `next-with-linaria` for
SSR Linaria support
### Storybook & Testing
- Removed `ThemeProvider` from Emotion in Storybook previews
(`twenty-front`, `twenty-sdk`)
- Now relies solely on `ThemeContextProvider` for theme injection
### Documentation
- Removed the temporary `docs/emotion-to-linaria-migration-plan.md`
(migration complete)
- Updated `CLAUDE.md` and `README.md` to reflect Linaria as the styling
stack
- Updated frontend style guide docs across all locales
## How it works
Linaria extracts styles at build time via the `@wyw-in-js/vite` plugin.
All expressions in `styled` template literals must be **statically
evaluable** — no runtime theme objects or closures over component state.
- **Static styles** use `themeCssVariables` which map to CSS custom
properties (`var(--theme-color-x)`)
- **Runtime theme access** (for non-CSS use cases like icon `color`
props) uses `useContext(ThemeContext)` instead of Emotion's `useTheme()`
2026-03-04 00:50:06 +01:00
9f5a8735c9
i18n - docs translations ( #18280 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
2026-02-27 23:12:39 +01:00
81698ff32c
i18n - docs translations ( #18274 )
...
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com >
Co-authored-by: Charles Bochet <charles@twenty.com >
2026-02-26 16:52:43 +01:00