v0.3.3

twentyhq/twentyv0.3.3Mar 22, 2024by charlesBochet

AI Summary

This release (v0.3.3) of Twenty focuses on significant performance improvements across queries and metadata endpoints, enhanced calendar functionality with event attendees, Google Calendar sync, and new UI components like a command menu search bar and view picker. The release also introduces multi-workspace support, backend caching, and various UI/UX refinements.

Key Highlights

  • Performance improvements: Optimized findMany queries, metadata endpoints, and added prefetching for views and favorites
  • Calendar features: Added event rows, month headers, next event indicator, attendee avatars, and Google Calendar full sync
  • New UI components: Command menu search bar, new view picker, multi-select tag display, and clickable sort menus
  • Backend enhancements: Added cache storage module, eager loading for GraphQL relations, and enabled backend to serve frontend
  • Multi-workspace support: Added frontend multi-workspace capability and workspace synchronization

New Features

  • CalendarEventAttendee and CalendarChannelEventAssociation data models
  • Command menu search bar for quick navigation
  • New type position for standard and custom objects
  • Cache storage module for backend performance
  • Multi-workspace (frontend) support
  • Google Calendar full sync capability
  • New view picker component
  • JSON field type and Event object support
  • Production docker-compose file
  • Eager loading for GraphQL relations
  • Refactored folder structure for front and server

Full Release Notes

## What's Changed
* TWNTY-2244 - ESLint rule: enforce usage of .getLoadable() + .getValue() to get atoms by @gitstart-app in https://github.com/twentyhq/twenty/pull/4143
* Improve performance on findMany queries by @charlesBochet in https://github.com/twentyhq/twenty/pull/4334
* Command menu search bar by @charlesBochet in https://github.com/twentyhq/twenty/pull/4337
* Create new type position by @thomtrp in https://github.com/twentyhq/twenty/pull/4336
* 4283 create calendareventattendee data model by @bosiraphael in https://github.com/twentyhq/twenty/pull/4333
* Improve performances of metadata endpoint by @charlesBochet in https://github.com/twentyhq/twenty/pull/4347
* Use new type position for standard objects and newly created objects by @thomtrp in https://github.com/twentyhq/twenty/pull/4349
* fix: updated NavigationDrawerItem icon stroke width from sm to md by @zaryanz in https://github.com/twentyhq/twenty/pull/4331
* Deprecate old board by @charlesBochet in https://github.com/twentyhq/twenty/pull/4352
* feat: add event rows to Show Page Calendar tab by @thaisguigon in https://github.com/twentyhq/twenty/pull/4319
* Chore: Only show 2 relations in ActivityTargetChips by @Abhi3685 in https://github.com/twentyhq/twenty/pull/4325
* Fix fetchAllMessages cronJob when deleted datasource by @Weiko in https://github.com/twentyhq/twenty/pull/4355
* [backend] add cache storage module by @Weiko in https://github.com/twentyhq/twenty/pull/4320
* TextInput height fix by @jrachelr in https://github.com/twentyhq/twenty/pull/4327
* feat: sync all workspaces by @magrinj in https://github.com/twentyhq/twenty/pull/4353
* feat: standard fields on custom by @magrinj in https://github.com/twentyhq/twenty/pull/4332
* 44 add blocking middleware payment failed by @martmull in https://github.com/twentyhq/twenty/pull/4339
* Fix: design improvement for release page by @selango1 in https://github.com/twentyhq/twenty/pull/4277
* feat: add Month headers to Show Page Calendar tab by @thaisguigon in https://github.com/twentyhq/twenty/pull/4326
* Fix consistency issuesin relation onDelete behavior while creating a new relation by @charlesBochet in https://github.com/twentyhq/twenty/pull/4372
* [messaging] remove partial sync retry and fix missing datasource error by @Weiko in https://github.com/twentyhq/twenty/pull/4371
* 4284 create calendarchanneleventassociation data model by @bosiraphael in https://github.com/twentyhq/twenty/pull/4350
* Added CurrencyFieldInput design by @jeet1desai in https://github.com/twentyhq/twenty/pull/4254
* feat: add Settings Object Edit identifiers form by @thaisguigon in https://github.com/twentyhq/twenty/pull/4300
* TWNTY-3794 - ESLint rule: only take explicit boolean predicates in if statements by @gitstart-app in https://github.com/twentyhq/twenty/pull/4354
* Introduce ComponentState by @charlesBochet in https://github.com/twentyhq/twenty/pull/4386
* Implement eager load relations on graphqlQueries by @charlesBochet in https://github.com/twentyhq/twenty/pull/4391
* Renamed nullable utils into isDefined and isUndefinedOrNull by @lucasbordeau in https://github.com/twentyhq/twenty/pull/4402
* Added a RelationFromOneSide ResolveField in FieldMetadata GraphQL Resolver by @lucasbordeau in https://github.com/twentyhq/twenty/pull/4378
* Use backspace for clearing record table cell. by @lucasbordeau in https://github.com/twentyhq/twenty/pull/4299
* Build arg setter for position by @thomtrp in https://github.com/twentyhq/twenty/pull/4396
* Fix: Inline Phone Field Menu by @jeet1desai in https://github.com/twentyhq/twenty/pull/4383
* Allowing to open options for an opportunity on company record. by @Aayush-23 in https://github.com/twentyhq/twenty/pull/4387
* Add icon, position and key on View by @charlesBochet in https://github.com/twentyhq/twenty/pull/4413
* fix: Standardize labels casing by @dragos-cojocaru in https://github.com/twentyhq/twenty/pull/4388
* 4366-feat(front): Clickable Ascending/Descending menu by @Anchit1909 in https://github.com/twentyhq/twenty/pull/4389
* Bugfix relation with same field name by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4414
* Hide favorites,MessageParticipant and calendareventattendees from datamodel by @brendanlaschke in https://github.com/twentyhq/twenty/pull/4392
* [backend] use cache storage service for workspace schema cache by @Weiko in https://github.com/twentyhq/twenty/pull/4342
* feat: add next event indicator to Show Page Calendar tab by @thaisguigon in https://github.com/twentyhq/twenty/pull/4348
* feat: add calendar event attendees avatar group by @thaisguigon in https://github.com/twentyhq/twenty/pull/4384
* [ESLint rule] prevent useRecoilCallback without a dependency array by @gitstart-app in https://github.com/twentyhq/twenty/pull/4411
* Fix activity creation by @thomtrp in https://github.com/twentyhq/twenty/pull/4426
* [messaging] Fix thread cleaner service subqueries by @Weiko in https://github.com/twentyhq/twenty/pull/4416
* 40 remove self billing feature flag by @martmull in https://github.com/twentyhq/twenty/pull/4379
* Build listener to backfill position by @thomtrp in https://github.com/twentyhq/twenty/pull/4432
* feat: wip sync standard id by @magrinj in https://github.com/twentyhq/twenty/pull/4373
* fix serverurl in openapi docs for self hosted instance by @brendanlaschke in https://github.com/twentyhq/twenty/pull/4390
* Upgrade documentation UI component rendering by @charlesBochet in https://github.com/twentyhq/twenty/pull/4445
* Setup the foundation for Twenty UI library. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/4423
* Use prepared statements + add tests for record position by @thomtrp in https://github.com/twentyhq/twenty/pull/4451
* fix: exclude GQL scalar types from the name validation of object and field metadata by @AbuHafsa in https://github.com/twentyhq/twenty/pull/4467
* 4285 timebox create google calendar full sync by @bosiraphael in https://github.com/twentyhq/twenty/pull/4442
* Refacto environment service by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4473
* Enable backend to serve frontend by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4461
* [messaging] fix participant handles with trailing spaces by @Weiko in https://github.com/twentyhq/twenty/pull/4457
* Fix: Added grab cursor on hover over favorite icon by @jeet1desai in https://github.com/twentyhq/twenty/pull/4415
* Fix front production container build by @charlesBochet in https://github.com/twentyhq/twenty/pull/4478
* Update demo link by @thomtrp in https://github.com/twentyhq/twenty/pull/4483
* Migrate Export feature to the action bar by @dragos-cojocaru in https://github.com/twentyhq/twenty/pull/4417
* 4364-feat(front): Display tags in multi-select picker by @Anchit1909 in https://github.com/twentyhq/twenty/pull/4419
* Added info about SERVER_URL to docs by @vueme in https://github.com/twentyhq/twenty/pull/4433
* fix: Close the email side panel upon clicking an open email thread by @sooster910 in https://github.com/twentyhq/twenty/pull/4329
* Adding new one-click deploy option to 1-click-deploy.mdx by @cosark in https://github.com/twentyhq/twenty/pull/4374
* Update add account button style by @bosiraphael in https://github.com/twentyhq/twenty/pull/4481
* Fixed select field input height by @adityavashisht9 in https://github.com/twentyhq/twenty/pull/4493
* feat: refactor folder structure by @magrinj in https://github.com/twentyhq/twenty/pull/4498
* [messaging] Fix messaging formatAddress tests by @Weiko in https://github.com/twentyhq/twenty/pull/4482
* Add command to stop demo seed cron by @thomtrp in https://github.com/twentyhq/twenty/pull/4480
* Add tests for `/modules/activities/tasks/hooks` by @gitstart-app in https://github.com/twentyhq/twenty/pull/4495
* Increase test coverage for `/modules/activities/timeline` by @gitstart-app in https://github.com/twentyhq/twenty/pull/4494
* TWNTY-4447 - Add tests for `/modules/activities/hooks` by @gitstart-app in https://github.com/twentyhq/twenty/pull/4475
* First batch of `modules/activities` tests by @gitstart-twenty in https://github.com/twentyhq/twenty/pull/4446
* feat: iframe addition (chrome-extension) by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/4418
* Update backdrop-filter in OverlayBackground.ts by @ProcrastinatorMuffin in https://github.com/twentyhq/twenty/pull/4436
* Changed Filter/sort labels font weight to medium instead of bold. by @RamK777-stack in https://github.com/twentyhq/twenty/pull/4500
* feat: open event details drawer on event row click by @thaisguigon in https://github.com/twentyhq/twenty/pull/4464
* Prefetching views and favorites by @charlesBochet in https://github.com/twentyhq/twenty/pull/4421
* Refactor backend folder structure by @Weiko in https://github.com/twentyhq/twenty/pull/4505
* Prevent file upload in demo workspaces by @thomtrp in https://github.com/twentyhq/twenty/pull/4503
* Server fix: Update EnvironmentService import path in File Module. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/4508
* Fix server deploy by @charlesBochet in https://github.com/twentyhq/twenty/pull/4509
* Optimize server docker image size by @charlesBochet in https://github.com/twentyhq/twenty/pull/4510
* Remove demo guard for mail api by @thomtrp in https://github.com/twentyhq/twenty/pull/4527
* Action bar add delete count by @brendanlaschke in https://github.com/twentyhq/twenty/pull/4470
* [backend] rename repository services and replace repository modules by dynamicModule by @Weiko in https://github.com/twentyhq/twenty/pull/4536
* Update docker-compose.mdx by @sebastienhouzet in https://github.com/twentyhq/twenty/pull/4545
* Cleanup default values and leftover methods in environmentService by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4550
* TWNTY-4450 - Add tests for `/modules/activities/emails` by @gitstart-app in https://github.com/twentyhq/twenty/pull/4520
* Added context by @lucasbordeau in https://github.com/twentyhq/twenty/pull/4557
* Add getters factory for attachements by @thomtrp in https://github.com/twentyhq/twenty/pull/4567
* 4485 create a custom resolver for calendar events by @bosiraphael in https://github.com/twentyhq/twenty/pull/4568
* Add JSON field type and Event object by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4566
* Delete auth/file front variables by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4455
* Release updates by @Bonapara in https://github.com/twentyhq/twenty/pull/4571
* Set optional checkout.session.url by @martmull in https://github.com/twentyhq/twenty/pull/4569
* Blocknote custom slash menu by @brendanlaschke in https://github.com/twentyhq/twenty/pull/4517
* fix: fix typings in calendar utils tests by @thaisguigon in https://github.com/twentyhq/twenty/pull/4572
* Refactor Views by cleaning the code, relying on apolloCache and improving performances by @charlesBochet in https://github.com/twentyhq/twenty/pull/4516
* fix: add missing package lodash.groupby by @anoopw3bdev in https://github.com/twentyhq/twenty/pull/4579
* feat: multi-workspace (frontend) by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/4232
* feat: server folder structure by @magrinj in https://github.com/twentyhq/twenty/pull/4573
* feat: modified DoubleTextInput to split First and Last name accordingly by @eldardautovic in https://github.com/twentyhq/twenty/pull/4598
* update example docker-compose to bitnami postgres path by @theRealWardo in https://github.com/twentyhq/twenty/pull/4491
* 48 add yearly monthly sub switch by @martmull in https://github.com/twentyhq/twenty/pull/4577
* Fixed TS error with blocknote/react package by @lucasbordeau in https://github.com/twentyhq/twenty/pull/4601
* Add KanbanFieldMetadataId on View standard object by @charlesBochet in https://github.com/twentyhq/twenty/pull/4604
* feat: merge front and server dockerfiles and optimize build by @Freebios in https://github.com/twentyhq/twenty/pull/4589
* feat: add a docker-compose file for production by @Freebios in https://github.com/twentyhq/twenty/pull/4609
* Logs show page by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4611
* New view picker by @charlesBochet in https://github.com/twentyhq/twenty/pull/4610
* Fix broken worker by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4618
* Release 0.3.3 by @charlesBochet in https://github.com/twentyhq/twenty/pull/4622

## New Contributors
* @zaryanz made their first contribution in https://github.com/twentyhq/twenty/pull/4331
* @jrachelr made their first contribution in https://github.com/twentyhq/twenty/pull/4327
* @dragos-cojocaru made their first contribution in https://github.com/twentyhq/twenty/pull/4388
* @vueme made their first contribution in https://github.com/twentyhq/twenty/pull/4433
* @sooster910 made their first contribution in https://github.com/twentyhq/twenty/pull/4329
* @cosark made their first contribution in https://github.com/twentyhq/twenty/pull/4374
* @adityavashisht9 made their first contribution in https://github.com/twentyhq/twenty/pull/4493
* @ProcrastinatorMuffin made their first contribution in https://github.com/twentyhq/twenty/pull/4436
* @RamK777-stack made their first contribution in https://github.com/twentyhq/twenty/pull/4500
* @sebastienhouzet made their first contribution in https://github.com/twentyhq/twenty/pull/4545
* @eldardautovic made their first contribution in https://github.com/twentyhq/twenty/pull/4598
* @theRealWardo made their first contribution in https://github.com/twentyhq/twenty/pull/4491
* @Freebios made their first contribution in https://github.com/twentyhq/twenty/pull/4589

**Full Changelog**: https://github.com/twentyhq/twenty/compare/v0.3.2...v0.3.3