| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-09-10 | 11.1 kB | |
| sdk_v2.40.0 source code.tar.gz | 2026-09-10 | 141.0 MB | |
| sdk_v2.40.0 source code.zip | 2026-09-10 | 161.4 MB | |
| Totals: 3 Items | 302.4 MB | 0 | |
Two breaking changes ship in this release. Install job inputs no longer carry a version field; remove it from any call sites. AI model configuration moves from name-based pickers to a five-tier system; update any code that references specific model identifiers.
yarn twenty pull now writes views, page layouts, navigation menu items, and translations as typed define* files. yarn twenty apply no longer prunes translations when your project has no locales/ folder, and empty built files no longer abort the upload batch.
Two new FieldMetadata flags ship: isSearchable controls which fields feed the search vector, and isAuditLogged keeps scheduled writes off the record timeline. definePageLayoutWidget lets an app place a widget on a tab it does not own.
โ ๏ธ Breaking changes
TriggerInstallApplicationJobInputno longer carries aversionfield; the installer resolves version from the app registration. Removeversionfrom any call sites. (#25502) by @martmull- AI model configuration now uses five named tiers (
EXTRA_FAST,FAST,BALANCED,SMART,EXTRA_SMART) instead of model names; update any code that references specific AI model identifiers. (#25721) by @FelixMalfait
๐ Highlights
- Breaking:
TriggerInstallApplicationJobInputno longer carries aversionfield; the installer resolves version from the app registration. Removeversionfrom any call sites. (#25502) - Breaking: AI model selection now uses five named tiers instead of model names; update any code that referenced specific AI model identifiers. (#25721)
yarn twenty pullnow writes views, page layouts, navigation menu items, and published translations as typeddefine*files, completing round-trip sync of the app manifest. (#25606)create-twenty-appscaffoldslocales/en.jsonwith an empty catalog so new projects declare their translation set from the first sync. (#25539)definePageLayoutWidgetlets an app place a widget on a tab it does not own; declare it inmanifest.pageLayoutWidgets. (#25651)yarn twenty applyno longer wipes published translations when there is nolocales/folder, and empty built files no longer abort the upload batch. (#25535)
โจ New features
isSearchableis now available onFieldMetadata; use it to identify which fields contribute to an object's search vector. (#25166) by @prastoin- Apps can call
reportAppConnectionAuthFailureto mark a connection credential as broken when it fails at call time, triggering the reconnect UI in settings. (#25297) by @abdulrahmancodes messageCampaign.scheduledAtis now available; set it to queue a campaign for later delivery instead of sending immediately. (#25563) by @neo773isAuditLoggedis now available onFieldMetadata; fields with it set tofalseare excluded from the record timeline. (#25641) by @FelixMalfaitdefinePageLayoutWidgetlets an app place a single widget on a tab it does not own; declare it inmanifest.pageLayoutWidgets. (#25651) by @Weiko- Logic functions can now receive batched database events by setting
batchSizeondatabaseEventTriggerSettings, instead of one job per event. (#25726) by @martmull
๐ Improvements & UX
exportApplicationnow fillsmanifest.translationswith compiled catalogs so a raw export carries translation data. (#25566) by @Weikoyarn twenty pullnow writes an app's published translations back intolocales/files. (#25567) by @Weikoyarn twenty pullnow writes views as.view.tsfiles usingdefineViewand standalone view fields as.view-field.tsfiles usingdefineViewField. (#25606) by @Weikoyarn twenty pullnow writes page layouts asdefinePageLayout()files and standalone tabs asdefinePageLayoutTab()files. (#25655) by @Weikoyarn twenty pullnow writes navigation menu items asdefineNavigationMenuItem()files, including items from the Custom app. (#25705) by @WeikoapplicationConnectedAccounts(applicationId)is a new query that returns all non-archived app connections the caller can use, including workspace-shared connections. (#25708) by @abdulrahmancodes
๐ Bug fixes
yarn twenty applyno longer wipes published translations when your project has nolocales/folder. (#25535) by @Weikoyarn twenty applyandyarn twenty devnow skip empty built files on upload and report a rejected batch once rather than once per file. (#25568) by @Weikotwenty-uiis republished as1.0.0-alpha.2under MIT; update your dependency if you pulled an earlier alpha that carried the old AGPL license. (#25738) by @MauryaQbit
๐ง Developer & API
create-twenty-appnow scaffoldslocales/en.jsonwith an empty catalog so new projects declare their translation set from the first sync. (#25539) by @Weiko
๐๏ธ Internal changes (5)
- feat(record-form): render the record creation form behind a flag ([#25203](https://github.com/twentyhq/twenty/pull/25203)) by @thomtrp - Record sharing 3/14: gate reads and writes on private objects with record share rows ([#25426](https://github.com/twentyhq/twenty/pull/25426)) by @martmull - Remove an unused import from defineObject ([#25569](https://github.com/twentyhq/twenty/pull/25569)) by @Weiko - Make the billing catalog ready for plan and price evolution ([#25635](https://github.com/twentyhq/twenty/pull/25635)) by @FelixMalfait - feat(usage-limit): cap webhook calls per workspace at enqueue time ([#25673](https://github.com/twentyhq/twenty/pull/25673)) by @etiennejouan๐ New contributors
- @grootbro made their first contribution in https://github.com/twentyhq/twenty/pull/25537
- @claxman made their first contribution in https://github.com/twentyhq/twenty/pull/25555
- @Hermi941 made their first contribution in https://github.com/twentyhq/twenty/pull/25658
- @addyCooks made their first contribution in https://github.com/twentyhq/twenty/pull/25671
- @twenty-pr-author[bot] made their first contribution in https://github.com/twentyhq/twenty/pull/25713
- @NiklasDah made their first contribution in https://github.com/twentyhq/twenty/pull/25720
- @breken-ai made their first contribution in https://github.com/twentyhq/twenty/pull/25751
- @MauryaQbit made their first contribution in https://github.com/twentyhq/twenty/pull/25738
Full changelog (24 PRs)
- feat(search): expose isSearchable on field metadata and make the object search section editable ([#25166](https://github.com/twentyhq/twenty/pull/25166)) by @prastoin - feat(record-form): render the record creation form behind a flag ([#25203](https://github.com/twentyhq/twenty/pull/25203)) by @thomtrp - feat(core): let apps report a connection auth failure with a reason ([#25297](https://github.com/twentyhq/twenty/pull/25297)) by @abdulrahmancodes - Record sharing 3/14: gate reads and writes on private objects with record share rows ([#25426](https://github.com/twentyhq/twenty/pull/25426)) by @martmull - Track application installs and uninstalls with deterministic queue jobs ([#25502](https://github.com/twentyhq/twenty/pull/25502)) by @martmull - chore: bump version to 2.40.0 ([#25534](https://github.com/twentyhq/twenty/pull/25534)) by @twenty-pr - Stop pruning published translations when a project has no locales folder ([#25535](https://github.com/twentyhq/twenty/pull/25535)) by @Weiko - Scaffold a locales folder with an empty source catalog ([#25539](https://github.com/twentyhq/twenty/pull/25539)) by @Weiko - Let marketers schedule a campaign for a later send ([#25563](https://github.com/twentyhq/twenty/pull/25563)) by @neo773 - Export an application's published translations in the manifest ([#25566](https://github.com/twentyhq/twenty/pull/25566)) by @Weiko - [Apps 2-way sync] Pull write translations ([#25567](https://github.com/twentyhq/twenty/pull/25567)) by @Weiko - Skip empty built files on upload and report a rejected batch once ([#25568](https://github.com/twentyhq/twenty/pull/25568)) by @Weiko - Remove an unused import from defineObject ([#25569](https://github.com/twentyhq/twenty/pull/25569)) by @Weiko - Write pulled views and standalone view fields as define files ([#25606](https://github.com/twentyhq/twenty/pull/25606)) by @Weiko - Make the billing catalog ready for plan and price evolution ([#25635](https://github.com/twentyhq/twenty/pull/25635)) by @FelixMalfait - Add isAuditLogged on field metadata to keep noisy fields off the timeline ([#25641](https://github.com/twentyhq/twenty/pull/25641)) by @FelixMalfait - Add a standalone page layout widget slot to the manifest and export widgets placed on existing tabs ([#25651](https://github.com/twentyhq/twenty/pull/25651)) by @Weiko - Write pulled page layouts and standalone page layout tabs as define files ([#25655](https://github.com/twentyhq/twenty/pull/25655)) by @Weiko - feat(usage-limit): cap webhook calls per workspace at enqueue time ([#25673](https://github.com/twentyhq/twenty/pull/25673)) by @etiennejouan - Write pulled navigation menu items as define files ([#25705](https://github.com/twentyhq/twenty/pull/25705)) by @Weiko - Show workspace-shared app connections to every member ([#25708](https://github.com/twentyhq/twenty/pull/25708)) by @abdulrahmancodes - feat(ai): replace model pickers with a five-tier model slider ([#25721](https://github.com/twentyhq/twenty/pull/25721)) by @FelixMalfait - Add batch delivery to database-event-triggered logic functions ([#25726](https://github.com/twentyhq/twenty/pull/25726)) by @martmull - fix: republish twenty-ui as MIT (1.0.0-alpha.2) to resolve stale AGPL artifacts ([#25738](https://github.com/twentyhq/twenty/pull/25738)) by @MauryaQbitFull Changelog: https://github.com/twentyhq/twenty/compare/sdk/v2.39.0...sdk/v2.40.0