Remove Favorite and FavoriteFolder from workspace schema (#19536)

## Summary

- Removes all workspace schema definitions for `Favorite` and
`FavoriteFolder` entities, which have been fully migrated to
`NavigationMenuItems`
- Deletes 26 standalone files including workspace entities, NestJS
modules, services, listeners, jobs, standard application builders (field
metadata, views, view fields, view field groups, indexes, page layouts),
mocks, and integration tests
- Cleans up ~40 modified files: removes `favorites` relation from 10
workspace entities and their field metadata utils, removes entries from
all builder maps, shared constants (`STANDARD_OBJECTS`,
`CoreObjectNameSingular`, `DEFAULT_RELATIONS_OBJECTS_STANDARD_IDS`), SDK
default relations, AI tool filtering, and standard object icons
This commit is contained in:
Charles Bochet
2026-04-10 12:47:06 +02:00
committed by GitHub
parent 34a903b4fa
commit b284c8323c
117 changed files with 24640 additions and 32339 deletions
@@ -35,7 +35,6 @@ import { WorkspaceCleanerModule } from 'src/engine/workspace-manager/workspace-c
import { CalendarEventParticipantManagerModule } from 'src/modules/calendar/calendar-event-participant-manager/calendar-event-participant-manager.module';
import { CalendarModule } from 'src/modules/calendar/calendar.module';
import { AutoCompaniesAndContactsCreationJobModule } from 'src/modules/contact-creation-manager/jobs/auto-companies-and-contacts-creation-job.module';
import { FavoriteModule } from 'src/modules/favorite/favorite.module';
import { MessagingModule } from 'src/modules/messaging/messaging.module';
import { TimelineJobModule } from 'src/modules/timeline/jobs/timeline-job.module';
import { TimelineActivityModule } from 'src/modules/timeline/timeline-activity.module';
@@ -62,7 +61,6 @@ import { WorkflowModule } from 'src/modules/workflow/workflow.module';
TimelineJobModule,
WebhookJobModule,
WorkflowModule,
FavoriteModule,
NavigationMenuItemModule,
SdkClientModule,
WorkspaceCleanerModule,
@@ -26,7 +26,6 @@ import {
import { ToolCategory } from 'twenty-shared/ai';
import { type ToolDescriptor } from 'src/engine/core-modules/tool-provider/types/tool-descriptor.type';
import { type ToolIndexEntry } from 'src/engine/core-modules/tool-provider/types/tool-index-entry.type';
import { isFavoriteRelatedObject } from 'src/engine/metadata-modules/ai/ai-agent/utils/is-favorite-related-object.util';
import { isWorkflowRelatedObject } from 'src/engine/metadata-modules/ai/ai-agent/utils/is-workflow-related-object.util';
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/metadata-modules/flat-entity/services/workspace-many-or-all-flat-entity-maps-cache.service';
import { computePermissionIntersection } from 'src/engine/twenty-orm/utils/compute-permission-intersection.util';
@@ -81,10 +80,7 @@ export class DatabaseToolProvider implements ToolProvider {
.filter((obj) => obj.isActive);
for (const flatObject of allFlatObjects) {
if (
isWorkflowRelatedObject(flatObject) ||
isFavoriteRelatedObject(flatObject)
) {
if (isWorkflowRelatedObject(flatObject)) {
continue;
}