This release includes 1 security fix for security teams reviewing exposed deployments.
Topics
+8 more
Affected surfaces
ReleasePort's take
Moderate signalUpgrade the esbuild dependency to version 0.28.1 immediately.
Why it matters: GHSA‑gv7w‑rqvm‑qjhr (CVSS 9.0) affects all deployments using the vulnerable esbuild version; patching eliminates remote code execution risk.
Summary
AI summaryBroad release touches deps, server, front, and twenty-front.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Critical |
Upgrade esbuild to 0.28.1 (GHSA-gv7w-rqvm-qjhr) Upgrade esbuild to 0.28.1 (GHSA-gv7w-rqvm-qjhr) Source: llm_adapter@2026-06-15 Confidence: high |
— |
| Feature | Medium |
Migrate frontend to React 19 Migrate frontend to React 19 Source: llm_adapter@2026-06-15 Confidence: high |
— |
| Feature | Medium |
Add useColorScheme hook to twenty‑sdk Add useColorScheme hook to twenty‑sdk Source: llm_adapter@2026-06-15 Confidence: high |
— |
| Feature | Medium |
Support morph relations in workflow record nodes Support morph relations in workflow record nodes Source: llm_adapter@2026-06-15 Confidence: high |
— |
| Feature | Medium |
Add twenty‑partner‑match skill to partners module Add twenty‑partner‑match skill to partners module Source: llm_adapter@2026-06-15 Confidence: high |
— |
| Feature | Low |
Add number format option to aggregate chart widget in page layout Add number format option to aggregate chart widget in page layout Source: granite4.1:30b@2026-06-15-audit Confidence: low |
— |
| Feature | Low |
Persist metadata store cache in IndexedDB instead of localStorage in front Persist metadata store cache in IndexedDB instead of localStorage in front Source: granite4.1:30b@2026-06-15-audit Confidence: low |
— |
| Feature | Low |
Add call recording schema and meeting bot scaffold Add call recording schema and meeting bot scaffold Source: granite4.1:30b@2026-06-15-audit Confidence: low |
— |
| Performance | Medium |
Avoid O(n²) when building flat entity maps in server Avoid O(n²) when building flat entity maps in server Source: llm_adapter@2026-06-15 Confidence: high |
— |
| Bugfix | Medium |
Coerce addressLat/addressLng to numbers in ORM result formatting Coerce addressLat/addressLng to numbers in ORM result formatting Source: llm_adapter@2026-06-15 Confidence: high |
— |
| Bugfix | Medium |
Repair 2.13 isUIReadOnly→isUIEditable rename fallout in server code Repair 2.13 isUIReadOnly→isUIEditable rename fallout in server code Source: llm_adapter@2026-06-15 Confidence: high |
— |
| Bugfix | Medium |
Prevent unbounded default‑view creation on record‑index load in twenty‑front Prevent unbounded default‑view creation on record‑index load in twenty‑front Source: llm_adapter@2026-06-15 Confidence: high |
— |
| Bugfix | Medium |
Mitigate integration‑test OOM flakiness in server Mitigate integration‑test OOM flakiness in server Source: llm_adapter@2026-06-15 Confidence: high |
— |
| Bugfix | Low |
Keep paging record board columns past the second page in twenty‑front Keep paging record board columns past the second page in twenty‑front Source: granite4.1:30b@2026-06-15-audit Confidence: low |
— |
| Bugfix | Low |
Mass update targets explicitly selected records in front Mass update targets explicitly selected records in front Source: granite4.1:30b@2026-06-15-audit Confidence: low |
— |
| Bugfix | Low |
Deduplicate morph relation fields in view field pickers in front Deduplicate morph relation fields in view field pickers in front Source: granite4.1:30b@2026-06-15-audit Confidence: low |
— |
| Bugfix | Low |
Keep filename when a file has no extension in front Keep filename when a file has no extension in front Source: granite4.1:30b@2026-06-15-audit Confidence: low |
— |
Full changelog
What's Changed
- feat(page-layout): add number format option to aggregate chart widget by @1alexandrer in https://github.com/twentyhq/twenty/pull/21521
- fix(server): repair 2.13 isUIReadOnly→isUIEditable rename fallout (#21504) by @FelixMalfait in https://github.com/twentyhq/twenty/pull/21537
- fix(twenty-front): keep paging record board columns past the second page by @MarcBickel in https://github.com/twentyhq/twenty/pull/21348
- Fix settings UI polish pass 2 by @Bonapara in https://github.com/twentyhq/twenty/pull/21540
- fix(address): coerce addressLat/addressLng to numbers in ORM result formatting by @FelixMalfait in https://github.com/twentyhq/twenty/pull/21542
- fix(server): write 2.13 UI capability flags directly, bypassing validation by @FelixMalfait in https://github.com/twentyhq/twenty/pull/21543
- feat(deps): migrate frontend to React 19 by @charlesBochet in https://github.com/twentyhq/twenty/pull/21531
- [Fix] : fix: Allow label identifier system fields in view creation and fix resulting duplicate header columns by @carbonFibreCode in https://github.com/twentyhq/twenty/pull/19009
- Fix record index sync when view fields arrive via SSE by @channi23 in https://github.com/twentyhq/twenty/pull/19069
- ci: exclude all twenty-apps from dependabot by @charlesBochet in https://github.com/twentyhq/twenty/pull/21554
- feat(lint): forbid data mutations in fast instance command up() by @FelixMalfait in https://github.com/twentyhq/twenty/pull/21547
- fix(twenty-front): prevent stale transition page from blocking scroll by @FelixMalfait in https://github.com/twentyhq/twenty/pull/21551
- chore(apps): bump twenty-sdk & twenty-client-sdk to 2.13.0, vitest to 4 by @charlesBochet in https://github.com/twentyhq/twenty/pull/21553
- fix: #19173 correct labels and icons for custom object default relations by @meManish47 in https://github.com/twentyhq/twenty/pull/19224
- fix(front): mass update targets explicitly selected records by @charlesBochet in https://github.com/twentyhq/twenty/pull/21548
- chore(deps): bump fs-extra from 11.2.0 to 11.3.5 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/21556
- chore(deps): bump @ai-sdk/anthropic from 3.0.72 to 3.0.84 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/21557
- chore(deps): bump @quilted/threads from 4.0.1 to 4.0.3 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/21560
- fix(deps): upgrade esbuild to 0.28.1 (GHSA-gv7w-rqvm-qjhr) by @charlesBochet in https://github.com/twentyhq/twenty/pull/21559
- fix(setup-script): add database schema initialization to setup script by @ratishjain12 in https://github.com/twentyhq/twenty/pull/20063
- chore(deps): ignore chokidar in dependabot by @charlesBochet in https://github.com/twentyhq/twenty/pull/21564
- fix(server): load integration jest config transpile-only; drop tsx pin by @charlesBochet in https://github.com/twentyhq/twenty/pull/21563
- chore(deps): bump @xyflow/react from 12.10.0 to 12.11.0 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/21561
- chore(deps): bump @graphiql/plugin-explorer from 5.1.2 to 5.1.3 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/21565
- chore(deps): bump @ai-sdk/azure from 3.0.55 to 3.0.74 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/21566
- chore(deps): bump prettier from 3.8.3 to 3.8.4 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/21568
- fix(front): keep the filename when a file has no extension by @yashs33244 in https://github.com/twentyhq/twenty/pull/21576
- chore(deps): upgrade Tier-1 deps (googleapis 173, gaxios 7, express 5, jsdom 29, date-fns 4, stripe 20) by @charlesBochet in https://github.com/twentyhq/twenty/pull/21570
- chore(deps): bump @ai-sdk/amazon-bedrock from 4.0.97 to 4.0.117 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/21569
- Ignore generated Storybook/Argos screenshot output by @bosiraphael in https://github.com/twentyhq/twenty/pull/21589
- chore: bump version to 2.14.0 by @twenty-pr[bot] in https://github.com/twentyhq/twenty/pull/21593
- Fix default view widget visibility by @martmull in https://github.com/twentyhq/twenty/pull/21590
- Remove randomness from flaky twenty-front Storybook stories by @bosiraphael in https://github.com/twentyhq/twenty/pull/21594
- fix(front): dedupe morph relation fields in view field pickers by @charlesBochet in https://github.com/twentyhq/twenty/pull/21580
- perf(server): avoid O(n²) when building flat entity maps by @FelixMalfait in https://github.com/twentyhq/twenty/pull/21585
- Add useColorScheme hook to twenty-sdk by @martmull in https://github.com/twentyhq/twenty/pull/21595
- Support morph relations in workflow record nodes by @ijreilly in https://github.com/twentyhq/twenty/pull/21403
- Postcard app e2e front component rendering test by @prastoin in https://github.com/twentyhq/twenty/pull/21600
- Add call recording schema and meeting bot scaffold by @ehconitin in https://github.com/twentyhq/twenty/pull/21584
- Hide logic functions that are not exposed as tools by @ijreilly in https://github.com/twentyhq/twenty/pull/21598
- chore(server): remove stray comment in flat-entity-maps spec by @FelixMalfait in https://github.com/twentyhq/twenty/pull/21599
- feat(front): persist metadata store cache in IndexedDB instead of localStorage by @charlesBochet in https://github.com/twentyhq/twenty/pull/21586
- fix(server): mitigate integration-test OOM flakiness by @charlesBochet in https://github.com/twentyhq/twenty/pull/21588
- fix(twenty-front): stop unbounded default-view creation on record-index load by @FelixMalfait in https://github.com/twentyhq/twenty/pull/21592
- Make flaky Storybook stories deterministic for Argos (animations + lazy-load) by @bosiraphael in https://github.com/twentyhq/twenty/pull/21609
- feat(partners): add twenty-partner-match skill by @rashad in https://github.com/twentyhq/twenty/pull/21601
New Contributors
- @1alexandrer made their first contribution in https://github.com/twentyhq/twenty/pull/21521
- @MarcBickel made their first contribution in https://github.com/twentyhq/twenty/pull/21348
- @meManish47 made their first contribution in https://github.com/twentyhq/twenty/pull/19224
- @yashs33244 made their first contribution in https://github.com/twentyhq/twenty/pull/21576
Full Changelog: https://github.com/twentyhq/twenty/compare/twenty/v2.13.0...twenty/v2.14.0
Security Fixes
- Upgraded esbuild to 0.28.1 — fixes CVE GHSA-gv7w-rqvm-qjhr
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Earlier breaking changes
- vtwenty/v2.20.0 Deprecate `fieldMetadata` and `objectMetadata` standardOverrides.
- vtwenty/v2.13.0 Gate record creation on isUICreatable only, decoupled from isSystem.
- vtwenty/v2.13.0 Rename isUIReadOnly to isUIEditable and add isUICreatable, affecting app developers.
- vtwenty/v2.12.0 Deprecate isCustom for Objects and Fields.
- vtwenty/v2.12.0 Deprecate dummy enterprise key (2/2).
Beta — feedback welcome: [email protected]