Abdullah. and GitHub
76c7639eb3
fix: upgrade storybook to latest to resolve dependabot alert ( #18285 )
...
Resolves [Dependabot Alert
509](https://github.com/twentyhq/twenty/security/dependabot/509 ).
Upgraded storybook and related packages to latest, also fixed a failing
test to match what the DOM really contains.
2026-02-27 10:58:54 +01:00
martmull and GitHub
120096346a
Add define post isntall logic function ( #18248 )
...
As title
2026-02-26 11:09:21 +01:00
Weiko and GitHub
0af980a783
introduce metadata api client to twenty sdk ( #18233 )
...
Logic function: hello-world.ts
```typescript
import { CoreApiClient } from 'twenty-sdk/generated/core';
import { MetadataApiClient } from 'twenty-sdk/generated/metadata';
const handler = async () => {
const coreClient = new CoreApiClient();
const metadataClient = new MetadataApiClient();
// Query the core /graphql endpoint — fetch some people
const coreResult = await coreClient.query({
people: {
edges: {
node: {
id: true,
name: {
firstName: true,
lastName: true,
},
},
},
},
});
// Query the metadata /metadata endpoint — fetch current workspace
const metadataResult = await metadataClient.query({
currentWorkspace: {
id: true,
displayName: true,
},
});
return {
coreResponse: coreResult,
metadataResponse: metadataResult,
};
};
```
With route trigger should now produce:
<img width="582" height="238" alt="Screenshot 2026-02-25 at 17 14 29"
src="https://github.com/user-attachments/assets/8c597113-7552-4d32-845a-352083d84ac7 "
/>
```json
{
"coreResponse": {
"people": {
"edges": [
{
"node": {
"id": "20202020-b000-4485-94de-70c2a98daef2",
"name": {
"firstName": "Jeffery",
"lastName": "Griffin"
}
}
},
{
"node": {
"id": "20202020-b003-415a-9051-133248495f7f",
"name": {
"firstName": "Terry",
"lastName": "Melendez"
}
}
},
{
"node": {
"id": "20202020-b00e-4bc1-87c8-00aeb49c10f8",
"name": {
"firstName": "Lee",
"lastName": "Jones"
}
}
},
{
"node": {
"id": "20202020-b012-44c1-9fdc-90f110962d07",
"name": {
"firstName": "Sarah",
"lastName": "Hernandez"
}
}
},
]
}
},
...
"metadataResponse": {
"currentWorkspace": {
"id": "20202020-1c25-4d02-bf25-6aeccf7ea419",
"displayName": "Apple"
}
}
}
2026-02-25 21:42:05 +01:00
martmull and GitHub
e365b546d9
Deploy new cli version ( #18216 )
...
as title
2026-02-25 10:58:21 +01:00
Thomas Trompette and GitHub
932adf8e4b
Create view and navigation item on add-object command - to be tested ( #18134 )
...
<img width="580" height="141" alt="Capture d’écran 2026-02-20 à 15 52
11"
src="https://github.com/user-attachments/assets/40254d3a-f7f9-4f2a-a51f-c37dc1f5d167 "
/>
2026-02-20 16:41:16 +00:00
martmull and GitHub
e3753bf822
App feedbacks ( #18028 )
...
as title
2026-02-18 11:04:54 +00:00
Charles Bochet and GitHub
c0cc0689d6
Add Client Api generation ( #17961 )
...
## Add API client generation to SDK dev mode and refactor orchestrator
into step-based pipeline
### Why
The SDK dev mode lacked typed API client generation, forcing developers
to work without auto-generated GraphQL types when building applications.
Additionally, the orchestrator was a monolithic class that mixed watcher
management, token handling, and sync logic — making it difficult to
extend with new steps like client generation.
### How
- **Refactored the orchestrator** into a step-based pipeline with
dedicated classes: `CheckServer`, `EnsureValidTokens`,
`ResolveApplication`, `BuildManifest`, `UploadFiles`,
`GenerateApiClient`, `SyncApplication`, and `StartWatchers`. Each step
has typed input/output/status, managed by a new `OrchestratorState`
class.
- **Added `GenerateApiClientOrchestratorStep`** that detects
object/field schema changes and regenerates a typed GraphQL client (via
`@genql/cli`) into `node_modules/twenty-sdk/generated` for seamless
imports.
- **Replaced `checkApplicationExist`** with `findOneApplication` on both
server resolver and SDK API service, returning the entity data instead
of a boolean.
- **Added application token pair mutations**
(`generateApplicationToken`, `renewApplicationToken`) to the API
service, with the server now returning `ApplicationTokenPairDTO`
containing both access and refresh tokens.
- **Restructured the dev UI** into `dev/ui/components/` with dedicated
panel, section, and event log components.
- **Simplified `AppDevCommand`** from ~180 lines of watcher management
down to ~40 lines that delegate entirely to the orchestrator.
2026-02-17 18:45:52 +01:00
8190cd5fbf
[FRONT COMPONENTS] Allow style librairies in remote dom ( #17936 )
...
https://github.com/user-attachments/assets/ce1b2b06-872f-41d0-844a-61db91696624
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2026-02-15 23:50:57 +01:00
martmull and GitHub
c3d8404112
Update cli tool versions ( #17933 )
...
as title
2026-02-13 18:03:13 +01:00
Charles Bochet and GitHub
4817c86bf0
Enhance stories for front component in sdk ( #17925 )
...
<img width="3838" height="2014" alt="image"
src="https://github.com/user-attachments/assets/87f4d4ba-7b39-4c44-b863-d8bfa6c4fd8a "
/>
2026-02-13 17:16:03 +01:00
martmull and GitHub
0befb021d0
Add scripts to publish cli tools ( #17914 )
...
- moves workspace:* dependencies to dev-dependencies to avoid spreading
them in npm releases
- remove fix on rollup.external
- remove prepublishOnly and postpublish scripts
- set bundle packages to private
- add release-dump-version that update package.json version before
releasing to npm
- add release-verify-build that check no externalized twenty package
exists in `dist` before releasing to npm
- works with new release github action here ->
https://github.com/twentyhq/twenty-infra/pull/397
2026-02-13 15:43:32 +00:00
Charles Bochet and GitHub
f17cc4d190
Improve building of twenty-sdk ( #17913 )
...
## Split twenty-sdk build into separate Node and browser targets
The SDK was bundling Node.js code (CLI, SDK API) and browser code (UI
components, front-component renderer) through a single Vite config. This
caused incorrect externalization — Node builtins leaked into browser
bundles and browser-specific chunking logic applied to CLI output.
This PR splits the build into `vite.config.node.ts` and
`vite.config.browser.ts` so each target gets the right externals and
output format.
Also includes a few housekeeping renames:
- `front-component` export path → `front-component-renderer` (matches
what it actually is)
- `front-component-common` merged into `front-component-api` (was a
needless extra module)
2026-02-13 15:58:19 +01:00
martmull and GitHub
8ffc554c9a
Fix twenty sdk build ( #17902 )
...
as title
2026-02-12 17:04:07 +00:00
08b962b0d2
Bump @vitest/browser-playwright from 4.0.17 to 4.0.18 ( #17884 )
...
Bumps
[@vitest/browser-playwright](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser-playwright )
from 4.0.17 to 4.0.18.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-dev/vitest/releases "><code>@vitest/browser-playwright</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v4.0.18</h2>
<h3> 🚀 Experimental Features</h3>
<ul>
<li><strong>experimental</strong>: Add <code>onModuleRunner</code> hook
to <code>worker.init</code> - by <a
href="https://github.com/sheremet-va "><code>@sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9286 ">vitest-dev/vitest#9286</a>
<a href="https://github.com/vitest-dev/vitest/commit/ea837de7d "><!-- raw
HTML omitted -->(ea837)<!-- raw HTML omitted --></a></li>
</ul>
<h3> 🐞 Bug Fixes</h3>
<ul>
<li>Use <code>meta.url</code> in <code>createRequire</code> - by <a
href="https://github.com/sheremet-va "><code>@sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9441 ">vitest-dev/vitest#9441</a>
<a href="https://github.com/vitest-dev/vitest/commit/e057281ca "><!-- raw
HTML omitted -->(e0572)<!-- raw HTML omitted --></a></li>
<li><strong>browser</strong>: Hide injected data-testid attributes -
by <a
href="https://github.com/sheremet-va "><code>@sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9503 ">vitest-dev/vitest#9503</a>
<a href="https://github.com/vitest-dev/vitest/commit/f89899cd8 "><!-- raw
HTML omitted -->(f8989)<!-- raw HTML omitted --></a></li>
<li><strong>ui</strong>: Process artifact attachments when generating
HTML reporter - by <a
href="https://github.com/macarie "><code>@macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9472 ">vitest-dev/vitest#9472</a>
<a href="https://github.com/vitest-dev/vitest/commit/225435647 "><!-- raw
HTML omitted -->(22543)<!-- raw HTML omitted --></a></li>
</ul>
<h5> <a
href="https://github.com/vitest-dev/vitest/compare/v4.0.17...v4.0.18 ">View
changes on GitHub</a></h5>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitest-dev/vitest/commit/4d3e3c61b9b237447699deab9aca0eb9d6039978 "><code>4d3e3c6</code></a>
chore: release v4.0.18</li>
<li>See full diff in <a
href="https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/browser-playwright ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Abdullah. <125115953+mabdullahabaid@users.noreply.github.com >
2026-02-12 13:35:22 +00:00
martmull and GitHub
a4ed043d43
Logic function refactorization ( #17861 )
...
As title
2026-02-12 11:40:49 +01:00
Abdullah. and GitHub
a40612ef9e
fix: axios related dependabot alerts ( #17821 )
...
Resolves [Dependabot Alert
436](https://github.com/twentyhq/twenty/security/dependabot/436 ),
[Dependabot Alert
437](https://github.com/twentyhq/twenty/security/dependabot/437 ) and
[Dependabot Alert
438](https://github.com/twentyhq/twenty/security/dependabot/438 ).
2026-02-09 22:56:34 +01:00
Charles Bochet and GitHub
987ed845ac
Release Twenty SDK 0.5.0 ( #17818 )
...
As per title + create-twenty-app
2026-02-09 19:16:24 +01:00
martmull and GitHub
9162685b2e
Reorganize logic function files ( #17766 )
...
reorganize according to
<img width="1243" height="725" alt="Pasted Graphic"
src="https://github.com/user-attachments/assets/ba65dd10-8eec-4b13-ad49-9726edd3b79c "
/>
Not working yet
2026-02-09 12:36:39 +01:00
martmull and GitHub
23df33172a
Fix twenty sdk build 5 ( #17744 )
...
use prepublish instead of prepack
2026-02-05 15:54:06 +01:00
martmull and GitHub
de5764ede0
Fix twenty sdk build ( #17729 )
...
- remove worksapce:* dependencies from published packages
- Use common tsconfig.ts in create-twenty-app
- Increase version to 0.4.4
2026-02-05 14:25:49 +01:00
Raphaël Bosi and GitHub
309785f7ff
Refactor twenty-sdk folder stucture ( #17733 )
...
Only three barrels: `root`, `ui` and `front-component`
2026-02-05 13:14:27 +01:00
9604dbe78a
Front components communication between host and remote ( #17716 )
...
Co-authored-by: Charles Bochet <charles@twenty.com >
2026-02-05 11:44:02 +01:00
martmull and GitHub
bef643970b
Fix twenty sdk build 3 ( #17715 )
...
final final fix
2026-02-04 15:21:17 +00:00
nitin and GitHub
660a15b721
[FRONT COMPONENT] Stories in twenty-sdk for front component generation and upon render interactivity ( #17675 )
...
closes https://github.com/twentyhq/core-team-issues/issues/2179
2026-02-04 12:39:54 +00:00
martmull and GitHub
6407474461
Fix build without nx build ( #17700 )
...
as title
2026-02-04 11:14:28 +00:00
Raphaël Bosi and GitHub
9b8eacb7f7
[FRONT COMPONENTS] Expose twenty UI in twenty sdk ( #17645 )
...
- An app will declare its `twenty-sdk` version in the manifest.
- `twenty-sdk` will be served by a CDN to be imported in front component
host.
- When we render the host we will load twenty-ui through the correct
version of the sdk
We will proceed this way because twenty-ui is not mature enough yet to
be deployed as its own package. So instead, since the sdk is already
deployed as its own package, we will serve the ui with it. It allows us
to have versioning to handle breaking changes in twenty-ui.
2026-02-04 10:43:08 +00:00
martmull and GitHub
e10e0b337e
Fix twenty sdk build ( #17696 )
...
- add twenty-ui in dist/vendor folder
- fix ts issue due to react version mismatch
2026-02-04 08:46:13 +00:00
Raphaël Bosi and GitHub
66d7182d02
Remote dom twenty UI POC ( #17652 )
...
Create a proof of concept which allows us to use twenty-ui in the
remote-dom.
For now only the button is allowed.
https://github.com/user-attachments/assets/e5441d2c-eb63-4b99-931b-86ee14621393
Known limitation: The icons are not yet available
2026-02-03 15:54:18 +00:00
Raphaël Bosi and GitHub
f0bc9fcb43
[FRONT COMPONENTS] Move to twenty-sdk ( #17587 )
...
Move front components from twenty-shared to twenty-sdk
2026-02-02 12:21:53 +00:00
martmull and GitHub
b9586769b9
2081 extensibility publish cli tools and update doc with recent changes ( #17495 )
...
- increase to 0.4.0
- update READMEs and doc
2026-01-27 20:49:33 +00:00
martmull and GitHub
f4ca69a474
Implement dev mode nice UI ( #17471 )
...
Implement a nice terminal UI for dev mode using INK
<img width="1512" height="721" alt="image"
src="https://github.com/user-attachments/assets/79a71f37-1b31-4761-9e8d-718ef029ceb8 "
/>
2026-01-27 15:34:28 +00:00
Charles Bochet and GitHub
5a94ef7dbb
Move sdk watcher back to esbuild ( #17316 )
...
Demo of current state
https://github.com/user-attachments/assets/034aff50-9981-4c81-b5ce-410a07b8dbc9
2026-01-22 13:04:43 +01:00
Charles Bochet and GitHub
5ee6853d7e
Rework SDK watcher ( #17305 )
2026-01-21 16:18:54 +01:00
Charles Bochet and GitHub
d74d74da4c
Improvements on SDK watcher ( #17291 )
...
# Improve cross-entity duplicate detection in manifest validation
- Refactored findDuplicates to receive the full manifest, enabling
cross-entity duplicate checks
-ObjectExtensionEntityBuilder now validates that extension field IDs
don't conflict with object field IDs
- Renamed DuplicateId type to EntityIdWithLocation for clarity
- Updated all entity builders to use the new signature
2026-01-21 15:31:38 +01:00
Charles Bochet and GitHub
29c0c952e7
Add Front components to SDK ( #17259 )
...
## Add `frontComponent` entity type to SDK
This PR adds a new `frontComponent` entity type at parity with
`serverlessFunction`. Front components are React components that can be
defined and bundled as part of Twenty applications.
### Changes
#### New Entity Type
- Added `FRONT_COMPONENT` to `SyncableEntity` enum
- Front components use `*.front-component.tsx` file naming convention
- CLI command `twenty app:add` now includes `front-component` as an
option
#### SDK Application Layer (`twenty-sdk`)
- Added `defineFrontComponent()` function for defining front component
configurations with validation
- Added `FrontComponentConfig` type for component configuration
- Added `getFrontComponentBaseFile()` template generator for scaffolding
new front components
- Added `loadFrontComponentModule()` to load front component modules and
extract component metadata
#### Shared Types (`twenty-shared`)
- Added `FrontComponentManifest` type with `universalIdentifier`,
`name`, `description`, `componentPath`, and `componentName` fields
- Updated `ApplicationManifest` to include optional `frontComponents`
array
#### Manifest Build System
- Updated `manifest-build.ts` to discover and load
`*.front-component.tsx` files
- Updated `manifest-validate.ts` to validate front components and check
for duplicate IDs
- Updated `manifest-display.ts` to display front component count in
build summary
- Updated `manifest-plugin.ts` to display front component entry points
and watch `.tsx` files
#### Template (`create-twenty-app`)
- New applications now include a sample
`hello-world.front-component.tsx` file
#### Tests
- Added unit tests for `defineFrontComponent()`
- Added unit tests for `getFrontComponentBaseFile()`
2026-01-20 05:54:14 +00:00
5cef07af45
Twenty SDK iteration ( #17223 )
...
Opening a PR to merge the wip work by @martmull
We will re-organize twenty-sdk in an upcoming PR
---------
Co-authored-by: martmull <martmull@hotmail.fr >
2026-01-19 09:41:54 +01:00
martmull and GitHub
d55b83375d
Allow app to extend object ( #17116 )
...
- exports `extendObject` utils from `twenty-sdk`
- define `*.object-extension.ts` filename pattern to extend and object
- handle object-extension configs in manifest
2026-01-13 15:07:14 +00:00
martmull and GitHub
936ec06fe8
Improve application ast 3 ( #17061 )
...
- fix should generate
- fix errors not displayed properly
2026-01-10 14:52:28 +00:00
martmull and GitHub
3509838a3a
Improve application ast 2 ( #17045 )
...
fix some issues with cli tools
2026-01-09 14:54:13 +00:00
martmull and GitHub
40eef5c464
Improve application ast ( #17016 )
...
# Summary
- Introduces a new, flexible folder structure for Twenty SDK
applications using file suffix-based entity detection
- Adds defineApp, defineFunction, defineObject, and defineRole helper
functions with built-in validation
- Refactors manifest loading to use jiti runtime evaluation for
TypeScript config files
- Separates validation logic into dedicated module with comprehensive
error reporting
# New Application Folder Structure
Applications now use a convention-over-configuration approach where
entities are detected by their file suffix, allowing flexible
organization within the src/app/ folder.
# Required Structure
my-app/
├── package.json
├── yarn.lock
└── src/
├── app/
│ └── application.config.ts # Required - main application configuration
└── utils/ # Optional - handler implementations & utilities
# Entity Detection by File Suffix
- *.object.ts - Custom object definitions
- *.function.ts - Serverless function definitions
- *.role.ts - Role definitions
# Supported Folder Organizations
## Traditional (by type):
src/app/
├── application.config.ts
├── objects/
│ └── postCard.object.ts
├── functions/
│ └── createPostCard.function.ts
└── roles/
└── admin.role.ts
## Feature-based:
src/app/
├── application.config.ts
└── post-card/
├── postCard.object.ts
├── createPostCard.function.ts
└── postCardAdmin.role.ts
## Flat:
src/app/
├── application.config.ts
├── postCard.object.ts
├── createPostCard.function.ts
└── admin.role.ts
# New Helper Functions
## defineApp(config)
import { defineApp } from 'twenty-sdk';
export default defineApp({
universalIdentifier: '4ec0391d-...',
displayName: 'My App',
description: 'App description',
icon: 'IconWorld',
});
## defineObject(config)
import { defineObject, FieldType } from 'twenty-sdk';
export default defineObject({
universalIdentifier: '54b589ca-...',
nameSingular: 'postCard',
namePlural: 'postCards',
labelSingular: 'Post Card',
labelPlural: 'Post Cards',
icon: 'IconMail',
fields: [
{
universalIdentifier: '58a0a314-...',
type: FieldType.TEXT,
name: 'content',
label: 'Content',
},
],
});
## defineFunction(config)
import { defineFunction } from 'twenty-sdk';
import { myHandler } from '../utils/my-handler';
export default defineFunction({
universalIdentifier: 'e56d363b-...',
name: 'My Function',
handler: myHandler,
triggers: [
{
universalIdentifier: 'c9f84c8d-...',
type: 'route',
path: '/my-route',
httpMethod: 'POST',
},
],
});
## defineRole(config)
import { defineRole, PermissionFlag } from 'twenty-sdk';
export default defineRole({
universalIdentifier: 'b648f87b-...',
label: 'App User',
objectPermissions: [
{
objectNameSingular: 'postCard',
canReadObjectRecords: true,
},
],
permissionFlags: [PermissionFlag.UPLOAD_FILE],
});
# Test plan
- Verify npx twenty app sync works with new folder structure
- Verify npx twenty app dev works with new folder structure
- Verify validation errors display correctly for invalid configs
- Verify all three folder organization styles work (traditional,
feature-based, flat)
- Run existing E2E tests to ensure backward compatibility
2026-01-09 13:06:30 +00:00
martmull and GitHub
bb73cbc380
1774 extensibility v1 create an exhaustive documentation readme or dedicated section in twenty contributing doc ( #16751 )
...
As title
<img width="1108" height="894" alt="image"
src="https://github.com/user-attachments/assets/e2dc7e12-72e3-4ca3-ac7b-a94de547f82a "
/>
2025-12-22 15:19:11 +01:00
martmull and GitHub
57dc1ae6e8
Fix create twenty app template ( #16708 )
...
Adds a default function role to scaffolded application
2025-12-19 16:40:12 +01:00
martmull and GitHub
1cbbd04761
Function trigger updates 2 ( #16608 )
...
- Improves route trigger job performances
- expose function params types
## Before
<img width="938" height="271" alt="image"
src="https://github.com/user-attachments/assets/5752ba64-f31d-44ed-974d-536e63458f2c "
/>
## After
<img width="1000" height="559" alt="image"
src="https://github.com/user-attachments/assets/b1f4927a-5f43-49f0-a606-244c72356772 "
/>
2025-12-16 18:20:26 +01:00
martmull and GitHub
9b00084fb0
Vendor twenty-shared into twenty-sdk ( #16592 )
...
twenty-shared is not bundled properly when deploying twenty-sdk to npm.
This aims to fix that issue
2025-12-16 16:48:38 +01:00
martmull and GitHub
7f1e69740a
1895 extensibility v1 application tokens ( #16365 )
...
First PR to implement application tokens
- add new application role in twenty-server
- move duplicated constants and types to twenty-shared
- will add role configuration utils into twenty-sdk in another PR
2025-12-08 10:42:46 +01:00
martmull and GitHub
5e8fbc7c5c
1825 extensibility v1 see serverless logs using subscriptions in twnty cli or settings serverkess section ( #16321 )
...
- Adds a log section to settings serverless functions test tab
<img width="1303" height="827" alt="image"
src="https://github.com/user-attachments/assets/2ce70558-91bc-4cfc-aced-42ac9e0226bf "
/>
- Adds a new subscription endpoint to graphql api
`serverlessFunctionLogs` that that emit function logs
- Adds a new command `twenty app logs` to `twenty-sdk` to watch logs in
terminal
<img width="1109" height="182" alt="image"
src="https://github.com/user-attachments/assets/2e874060-e99d-4978-ab9c-c91e52cb7478 "
/>
<img width="1061" height="176" alt="image"
src="https://github.com/user-attachments/assets/1f533e32-7435-4d7b-89c6-d1154816a8ab "
/>
- add new version for create-twenty-app and twenty-sdk `0.1.3`
2025-12-04 16:40:58 +01:00
martmull and GitHub
267bfcadf8
Twenty sdk follow up ( #16290 )
...
as title
2025-12-03 15:50:16 +00:00
martmull and GitHub
ea79425fc0
Fix twenty sdk and create twenty app ( #16282 )
...
As title
2025-12-03 15:12:34 +01:00
martmull and GitHub
e498367e2f
Merge twenty-cli into twenty-sdk ( #16150 )
...
- Moves twenty-cli content into twenty-sdk
- add a new twenty-sdk:0.1.0 version
- this new twenty-sdk exports a cli command called 'twenty' (like
twenty-cli before)
- deprecates twenty-cli
- simplify app init command base-project
- use `twenty-sdk:0.1.0` in base project
- move the "twenty-sdk/application" barrel to "twenty-sdk"
- add `create-twenty-app` package
<img width="1512" height="919" alt="image"
src="https://github.com/user-attachments/assets/007bef45-4e71-419a-9213-cebed376adbf "
/>
<img width="1506" height="929" alt="image"
src="https://github.com/user-attachments/assets/3de2fec6-1624-4923-ae13-f4e1cf165eb5 "
/>
2025-12-01 11:44:35 +01:00
martmull and GitHub
1fa9c45879
Fix twenty sdk ( #15991 )
...
As title
2025-11-21 14:28:15 +00:00