v0.12.0
twentyhq/twentyv0.12.0May 27, 2024by ijreilly
AI Summary
Twenty v0.12.0 is a significant release featuring the official launch of the Calendar feature (feature flag removed), major enhancements to the Links field with full CRUD operations, and Gmail sync v2 with improved message fetching. The release also adds REST API batch endpoints, infinite scroll, Algolia search, and view drag-and-drop reordering.
Key Highlights
- Calendar feature is now fully enabled after being behind a feature flag
- Links field receives major updates including add/remove/edit links, primary link setting, and expandable list display
- Gmail sync v2 introduced with new feature flag, full message parsing, and refactored sync status handling
- REST API now supports batch endpoints for bulk operations
- Twenty ORM extended with sync functionality and SSL configuration support
New Features
- Links field with full CRUD (create, read, update, delete) operations
- Calendar feature enabled for all users
- Infinite scroll for improved data loading
- Algolia Search integration
- Releases page for tracking versions
- View reordering with drag and drop functionality
- Batch endpoints on REST API
- Stripe connection option added
- Copy button for floating inputs
- New currencies supported: NOK, SEK, CZK
- Password reset token migrated to app token table
- Multi-workspace improvements (invite handling, user consistency)
- Congratulations bot for user onboarding
- SnackBar redesign with mobile-optimized top placement
- ScrollRestoration implementation
- Generic Profiling story for component performance testing
- User & Metadata Loading improvements
- Distant table schema comparison with remote tables
Full Release Notes
## What's Changed * Fix yoga patch user id cache by @Weiko in https://github.com/twentyhq/twenty/pull/5285 * Create convert record positions to integers command by @Weiko in https://github.com/twentyhq/twenty/pull/5287 * Remove Feature Flag on Calendar by @charlesBochet in https://github.com/twentyhq/twenty/pull/5288 * Fix Filtered index view infinite re-render by @charlesBochet in https://github.com/twentyhq/twenty/pull/5286 * Bump versions to 0.11 by @charlesBochet in https://github.com/twentyhq/twenty/pull/5289 * fix: fix storybook:build memory allocation error in CI by @thaisguigon in https://github.com/twentyhq/twenty/pull/5284 * Add missing info from verify mutation by @martmull in https://github.com/twentyhq/twenty/pull/5283 * feat: add sign out and book a call buttons to "Choose your plan" page by @orinamio in https://github.com/twentyhq/twenty/pull/5292 * chore: add nx/project.json to twenty-chrome-extension by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/5217 * [flexible-schema] Add reserved keyword check on object creation by @Weiko in https://github.com/twentyhq/twenty/pull/5303 * feat: extend twenty orm by @magrinj in https://github.com/twentyhq/twenty/pull/5238 * Feat/migrate password reset token to app token table by @pacyL2K19 in https://github.com/twentyhq/twenty/pull/5051 * Fix enum defaultValue issues by @charlesBochet in https://github.com/twentyhq/twenty/pull/5307 * fix: fix Chromatic script memory allocation in CI by @thaisguigon in https://github.com/twentyhq/twenty/pull/5299 * Removes erroneous debugger call in twenty-front by @seanhellwig in https://github.com/twentyhq/twenty/pull/5311 * Improve messaging/calendar create contact performance by @charlesBochet in https://github.com/twentyhq/twenty/pull/5314 * Fix github stars endpoint by @ady-beraud in https://github.com/twentyhq/twenty/pull/5301 * Modified URLs and added button to share on LinkedIn by @ady-beraud in https://github.com/twentyhq/twenty/pull/5306 * Fixed incomplete GitHub sync by @ady-beraud in https://github.com/twentyhq/twenty/pull/5310 * Fix convertRecordPositionsToIntegers command for camelCase tables by @Weiko in https://github.com/twentyhq/twenty/pull/5315 * Adds no-debugger rule to root eslint config file by @seanhellwig in https://github.com/twentyhq/twenty/pull/5312 * Added the 0.11 release changelog by @Bonapara in https://github.com/twentyhq/twenty/pull/5300 * refactor: use react-hook-form to validate Settings/DataModel/Field by @thaisguigon in https://github.com/twentyhq/twenty/pull/4916 * Add unit tests on object record mutation and query hooks by @gitstart-twenty in https://github.com/twentyhq/twenty/pull/5014 * Split job modules by @Weiko in https://github.com/twentyhq/twenty/pull/5318 * feat: add links to Links field by @thaisguigon in https://github.com/twentyhq/twenty/pull/5223 * [fix] Increment cache version after object/field/relation update by @ijreilly in https://github.com/twentyhq/twenty/pull/5316 * Fix: Icon position alignment right to left in chip by @jeet1desai in https://github.com/twentyhq/twenty/pull/5330 * Fix 400 yoga errors being sent to exception handlers by @Weiko in https://github.com/twentyhq/twenty/pull/5322 * Fix query runner throwing 500 when pg_graphql detects unique constraint by @Weiko in https://github.com/twentyhq/twenty/pull/5323 * Fix Rest API id UUID error by @charlesBochet in https://github.com/twentyhq/twenty/pull/5321 * fix: fix storybook pages tests coverage by @thaisguigon in https://github.com/twentyhq/twenty/pull/5319 * refactor: use react-hook-form for Field type config forms by @thaisguigon in https://github.com/twentyhq/twenty/pull/5326 * Fix front jest tests by @charlesBochet in https://github.com/twentyhq/twenty/pull/5331 * fix: Blue Button Secondary Color Issue in Dark Mode by @its-id in https://github.com/twentyhq/twenty/pull/5333 * Fix storybook by @charlesBochet in https://github.com/twentyhq/twenty/pull/5334 * fix: fix storybook:build cache output path by @thaisguigon in https://github.com/twentyhq/twenty/pull/5336 * fix: fix Settings field form validation for certain field types by @thaisguigon in https://github.com/twentyhq/twenty/pull/5335 * fix: fix several field bugs by @thaisguigon in https://github.com/twentyhq/twenty/pull/5339 * Refactor default value for select by @charlesBochet in https://github.com/twentyhq/twenty/pull/5343 * [fix] Do not stringify json field value if null by @ijreilly in https://github.com/twentyhq/twenty/pull/5348 * Bump versions to 0.11.2 by @ijreilly in https://github.com/twentyhq/twenty/pull/5349 * Disable save button while submitting form in settings by @ijreilly in https://github.com/twentyhq/twenty/pull/5352 * fix: fix field select options positions after option removal by @thaisguigon in https://github.com/twentyhq/twenty/pull/5350 * Update README.md by @brandonyee-cs in https://github.com/twentyhq/twenty/pull/5345 * Releases page by @brendanlaschke in https://github.com/twentyhq/twenty/pull/5346 * Add new Currencies with Corresponding Icons by @muhsinkamil in https://github.com/twentyhq/twenty/pull/5353 * Added GitHub init by @ady-beraud in https://github.com/twentyhq/twenty/pull/5317 * feat: Currencies NOK and SEK by @thilles in https://github.com/twentyhq/twenty/pull/5359 * 5188 bug some canceled subscriptions are billed by @martmull in https://github.com/twentyhq/twenty/pull/5254 * Add migration to restrict users without workspaces by @martmull in https://github.com/twentyhq/twenty/pull/5369 * 4840 multi workspace update user userworkspace inconsistent on delete set null constraint by @martmull in https://github.com/twentyhq/twenty/pull/5373 * Enable deletion of relation fields by @ijreilly in https://github.com/twentyhq/twenty/pull/5338 * Add stripe connection option by @thomtrp in https://github.com/twentyhq/twenty/pull/5372 * Show Data Skeleton Loading by @gitstart-twenty in https://github.com/twentyhq/twenty/pull/5328 * Return graphql errors when exists by @martmull in https://github.com/twentyhq/twenty/pull/5389 * Track backend events by @FelixMalfait in https://github.com/twentyhq/twenty/pull/5405 * 4599-feat(front): Add Copy Button to Floating Inputs by @Anchit1909 in https://github.com/twentyhq/twenty/pull/4789 * Added the illustrations for the user guide by @Bonapara in https://github.com/twentyhq/twenty/pull/5409 * User guide images by @Bonapara in https://github.com/twentyhq/twenty/pull/5410 * Added loader to Download Image + modified GitHub stars by @ady-beraud in https://github.com/twentyhq/twenty/pull/5407 * Fixed left padding for switcher icon on the table checkboxes #4351 by @rathodvinod5 in https://github.com/twentyhq/twenty/pull/4963 * docs: fix calendar enable environmental variable by @rob-luke in https://github.com/twentyhq/twenty/pull/5417 * Fixed user guide layout by @ady-beraud in https://github.com/twentyhq/twenty/pull/5422 * Generic Profiling story to wrap any component by @lucasbordeau in https://github.com/twentyhq/twenty/pull/5341 * Added infinite scroll by @ady-beraud in https://github.com/twentyhq/twenty/pull/5418 * Compare distant tables schema with remote tables schema by @ijreilly in https://github.com/twentyhq/twenty/pull/5413 * feat: display Links field as Expandable List by @thaisguigon in https://github.com/twentyhq/twenty/pull/5374 * fix: resolve issues with edit input offset by @fabio-nettis in https://github.com/twentyhq/twenty/pull/5426 * feat: twenty orm sync by @magrinj in https://github.com/twentyhq/twenty/pull/5266 * Alter comment on foreign key deletion by @thomtrp in https://github.com/twentyhq/twenty/pull/5406 * AAU I want to re-order my views with drag & drop by @gitstart-twenty in https://github.com/twentyhq/twenty/pull/5002 * Fix missing team member images in calendar event by @mritosa in https://github.com/twentyhq/twenty/pull/5414 * Fix transliteration for metadata + transliterate select options by @ijreilly in https://github.com/twentyhq/twenty/pull/5430 * Try fix tests by @charlesBochet in https://github.com/twentyhq/twenty/pull/5431 * feat: add renew token query for apollo client (chrome-extension) by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/5200 * 4655 batch endpoints on the rest api by @martmull in https://github.com/twentyhq/twenty/pull/5411 * Fix main by @martmull in https://github.com/twentyhq/twenty/pull/5435 * Modified HTML for Algolia Crawler by @ady-beraud in https://github.com/twentyhq/twenty/pull/5441 * Fix turnstile captcha invalid by @charlesBochet in https://github.com/twentyhq/twenty/pull/5442 * feat: add creation date to notes panel by @fabio-nettis in https://github.com/twentyhq/twenty/pull/5432 * Edit opacity from 0.8 to 0.5 and remove forBackdropFilter by @jss475 in https://github.com/twentyhq/twenty/pull/5291 * Minor refacto and fixes on Remotes updates by @ijreilly in https://github.com/twentyhq/twenty/pull/5438 * Fix missing name validation on object names at update by @ijreilly in https://github.com/twentyhq/twenty/pull/5434 * Fixes typo in docs #5076 by @FelixMalfait in https://github.com/twentyhq/twenty/pull/5450 * Enable remotes with existing name by @thomtrp in https://github.com/twentyhq/twenty/pull/5433 * fix: fix storybook build cache not being used by tests in CI by @thaisguigon in https://github.com/twentyhq/twenty/pull/5451 * Implement <ScrollRestoration /> by @gitstart-app in https://github.com/twentyhq/twenty/pull/5086 * Add more details to mutation limit exception message and fix update many query by @Weiko in https://github.com/twentyhq/twenty/pull/5460 * Feat : Change title color of release page in dark mode by @H0onnn in https://github.com/twentyhq/twenty/pull/5467 * fix: multiple twenty orm issues & show an example of use by @magrinj in https://github.com/twentyhq/twenty/pull/5439 * Changed record chip functionality from onClick to anchor tag by @ktang520 in https://github.com/twentyhq/twenty/pull/5462 * 4689 multi workspace i should be able to accept an invite if im already logged in by @martmull in https://github.com/twentyhq/twenty/pull/5454 * Fix graphql prep query by @Weiko in https://github.com/twentyhq/twenty/pull/5478 * Remove relations for remotes by @thomtrp in https://github.com/twentyhq/twenty/pull/5455 * Fix: danger font color values & acc. to design specs by @its-id in https://github.com/twentyhq/twenty/pull/5344 * 5477 - Introduce syncsubstatus in db to refactor gmail sync behavior by @bosiraphael in https://github.com/twentyhq/twenty/pull/5479 * feat: fetch and parse full gmail message by @rostaklein in https://github.com/twentyhq/twenty/pull/5160 * Improve docs by @FelixMalfait in https://github.com/twentyhq/twenty/pull/5492 * feat: replace iframe with chrome sidepanel by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/5197 * [fix] Re-introduce beforeUpdateOneObject hook by @ijreilly in https://github.com/twentyhq/twenty/pull/5495 * Fix unhandled exception by @martmull in https://github.com/twentyhq/twenty/pull/5474 * Remove dumb code placement by @martmull in https://github.com/twentyhq/twenty/pull/5494 * fix: unwanted change moving back datetime to date by @magrinj in https://github.com/twentyhq/twenty/pull/5499 * 5483 modify messagechannel syncstatus by @bosiraphael in https://github.com/twentyhq/twenty/pull/5484 * Fix storybook tests by @gitstart-twenty in https://github.com/twentyhq/twenty/pull/5487 * Update foreign table to distant table schema by @ijreilly in https://github.com/twentyhq/twenty/pull/5508 * Create congratulations bot by @ady-beraud in https://github.com/twentyhq/twenty/pull/5404 * 5498 create a feature flag is gmail sync v2 enabled by @bosiraphael in https://github.com/twentyhq/twenty/pull/5501 * feat: remove a link from a Links field by @thaisguigon in https://github.com/twentyhq/twenty/pull/5313 * fix: reset default value on field type switch in Settings/Data Model … by @thaisguigon in https://github.com/twentyhq/twenty/pull/5436 * Fix missing logo at sign-in-up by @martmull in https://github.com/twentyhq/twenty/pull/5525 * feat: set primary link in Links field by @thaisguigon in https://github.com/twentyhq/twenty/pull/5429 * feat: edit link in Links field by @thaisguigon in https://github.com/twentyhq/twenty/pull/5447 * Extract typography components from twenty-front to twenty-ui. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/5466 * fix: fix Apollo client cache update error for Links field by @thaisguigon in https://github.com/twentyhq/twenty/pull/5473 * fix: twentyORM datasource configuration for ssl by @magrinj in https://github.com/twentyhq/twenty/pull/5529 * perf: use Nx cache for Chromatic script by @thaisguigon in https://github.com/twentyhq/twenty/pull/5457 * Sync stripe tables by @thomtrp in https://github.com/twentyhq/twenty/pull/5475 * Added Algolia Search by @ady-beraud in https://github.com/twentyhq/twenty/pull/5524 * Fixed congratulations bot by @ady-beraud in https://github.com/twentyhq/twenty/pull/5532 * Add quotes for table name by @thomtrp in https://github.com/twentyhq/twenty/pull/5533 * fix pgGraphqlQuery with concurrent search path by @Weiko in https://github.com/twentyhq/twenty/pull/5537 * feat: add feature flag to activate Links field creation by @thaisguigon in https://github.com/twentyhq/twenty/pull/5535 * [Fix] Do not allow names with whitespaces by @ijreilly in https://github.com/twentyhq/twenty/pull/5542 * [UI] Extract our ColorSample and Tag components from twenty-front to twenty-ui. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/5543 * fix: workspace health showing error for multi select by @magrinj in https://github.com/twentyhq/twenty/pull/5547 * feat: implement new SnackBar design by @thaisguigon in https://github.com/twentyhq/twenty/pull/5515 * Handle relations separately for remotes by @thomtrp in https://github.com/twentyhq/twenty/pull/5538 * [FE] Update remote table schema + refactor Tables list by @ijreilly in https://github.com/twentyhq/twenty/pull/5548 * Change email tab placeholder illustration by @jeet1desai in https://github.com/twentyhq/twenty/pull/5550 * Add sorter for distant tables by @thomtrp in https://github.com/twentyhq/twenty/pull/5546 * chore: remove OAuth from chrome extension by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/5528 * [fix] Update remote table sync status in cache after schema update by @ijreilly in https://github.com/twentyhq/twenty/pull/5553 * Rename findAvailableTables endpoint by @thomtrp in https://github.com/twentyhq/twenty/pull/5557 * refactor: reset field default value on type change in Settings by @thaisguigon in https://github.com/twentyhq/twenty/pull/5534 * Expandable list remove anchor by @charlesBochet in https://github.com/twentyhq/twenty/pull/5559 * Fixed sync between record value context selector and record store by @lucasbordeau in https://github.com/twentyhq/twenty/pull/5517 * feat: move Snackbar to top of screen on mobile by @thaisguigon in https://github.com/twentyhq/twenty/pull/5567 * Improve autoload by @FelixMalfait in https://github.com/twentyhq/twenty/pull/5566 * fix: Links field fixes by @thaisguigon in https://github.com/twentyhq/twenty/pull/5565 * docs: replace 'he' with 'they' by @techieshark in https://github.com/twentyhq/twenty/pull/5562 * feat: simplify field preview logic in Settings by @thaisguigon in https://github.com/twentyhq/twenty/pull/5541 * Added: The support for CZK Currency by @shashankvish0010 in https://github.com/twentyhq/twenty/pull/5561 * 5507 modify the partial sync cron to work with the new statuses by @bosiraphael in https://github.com/twentyhq/twenty/pull/5512 * Fix sync token is no longer valid in calendar sync by @bosiraphael in https://github.com/twentyhq/twenty/pull/5563 * Feat/performance-refactor-styled-component by @lucasbordeau in https://github.com/twentyhq/twenty/pull/5516 * Introduce a new feature flag for contact creation by @bosiraphael in https://github.com/twentyhq/twenty/pull/5570 * [Fix] Object names should be camel cased by @ijreilly in https://github.com/twentyhq/twenty/pull/5571 * 0.12 changelog by @Bonapara in https://github.com/twentyhq/twenty/pull/5560 * 5509 remove flash on intermediate verify step when sign in with sso by @martmull in https://github.com/twentyhq/twenty/pull/5526 * Add Object Alternative view by @brendanlaschke in https://github.com/twentyhq/twenty/pull/5356 * Fix opportunities board and CI by @charlesBochet in https://github.com/twentyhq/twenty/pull/5573 * [UI] Remove theme constants from twenty-front and use the ones exported from twenty-ui. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/5558 * Prefetch Skeleton Loading on Indexes and Shows by @gitstart-twenty in https://github.com/twentyhq/twenty/pull/5545 * Added Data Model Diagram to 0.12 changelog by @Bonapara in https://github.com/twentyhq/twenty/pull/5585 * User & Metadata Loading by @gitstart-twenty in https://github.com/twentyhq/twenty/pull/5347 * Fixed entity chip navigate by @lucasbordeau in https://github.com/twentyhq/twenty/pull/5587 * Fix record board broken position by @charlesBochet in https://github.com/twentyhq/twenty/pull/5588 * Remove flash after create workspace by @martmull in https://github.com/twentyhq/twenty/pull/5589 * Fix SnackBar visual by @ijreilly in https://github.com/twentyhq/twenty/pull/5569 * Fixed pending row edit mode by @lucasbordeau in https://github.com/twentyhq/twenty/pull/5592 * Fixed new record value context selector sync in activity drawer by @lucasbordeau in https://github.com/twentyhq/twenty/pull/5594 * Added RecordFieldValueSelectorContext by @lucasbordeau in https://github.com/twentyhq/twenty/pull/5596 * Fix missing avatar on People table by @charlesBochet in https://github.com/twentyhq/twenty/pull/5601 * Disable perf stories in chromatic by @lucasbordeau in https://github.com/twentyhq/twenty/pull/5597 * 5505 forgot password feature broken by @martmull in https://github.com/twentyhq/twenty/pull/5602 * Remove hasCalendarEventStarted flaky test by @bosiraphael in https://github.com/twentyhq/twenty/pull/5603 * Bump version to v0.12.0 by @ijreilly in https://github.com/twentyhq/twenty/pull/5604 ## New Contributors * @seanhellwig made their first contribution in https://github.com/twentyhq/twenty/pull/5311 * @its-id made their first contribution in https://github.com/twentyhq/twenty/pull/5333 * @brandonyee-cs made their first contribution in https://github.com/twentyhq/twenty/pull/5345 * @muhsinkamil made their first contribution in https://github.com/twentyhq/twenty/pull/5353 * @thilles made their first contribution in https://github.com/twentyhq/twenty/pull/5359 * @rob-luke made their first contribution in https://github.com/twentyhq/twenty/pull/5417 * @fabio-nettis made their first contribution in https://github.com/twentyhq/twenty/pull/5426 * @mritosa made their first contribution in https://github.com/twentyhq/twenty/pull/5414 * @H0onnn made their first contribution in https://github.com/twentyhq/twenty/pull/5467 * @ktang520 made their first contribution in https://github.com/twentyhq/twenty/pull/5462 * @techieshark made their first contribution in https://github.com/twentyhq/twenty/pull/5562 * @shashankvish0010 made their first contribution in https://github.com/twentyhq/twenty/pull/5561 **Full Changelog**: https://github.com/twentyhq/twenty/compare/v0.11.0...v0.12.0