Fix cross app installation (#18151)

# Introduction
- Fixing app dependencyFlatEntityMaps load ( to load current app +
dependent app )
- Fix empty flat entity maps and undefined optimistic override
- Refactor the optimistic rendering to be mutation oriented at
orchestrator level
This commit is contained in:
Paul Rastoin
2026-02-23 19:58:06 +01:00
committed by GitHub
parent 0d4fe4575b
commit af0af0a237
24 changed files with 481 additions and 571 deletions
@@ -65,6 +65,11 @@ export class ApplicationManifestMigrationService {
const { featureFlagsMap, ...existingAllFlatEntityMaps } = cacheResult;
const fromAllFlatEntityMaps = getApplicationSubAllFlatEntityMaps({
applicationIds: [ownerFlatApplication.id],
fromAllFlatEntityMaps: existingAllFlatEntityMaps,
});
const toAllUniversalFlatEntityMaps =
computeApplicationManifestAllUniversalFlatEntityMaps({
manifest,
@@ -72,20 +77,15 @@ export class ApplicationManifestMigrationService {
now,
});
const fromAllFlatEntityMaps = getApplicationSubAllFlatEntityMaps({
applicationIds: [ownerFlatApplication.id],
const dependencyAllFlatEntityMaps = getApplicationSubAllFlatEntityMaps({
applicationIds:
ownerFlatApplication.universalIdentifier ===
TWENTY_STANDARD_APPLICATION.universalIdentifier
? [twentyStandardFlatApplication.id]
: [ownerFlatApplication.id, twentyStandardFlatApplication.id],
fromAllFlatEntityMaps: existingAllFlatEntityMaps,
});
const dependencyAllFlatEntityMaps =
ownerFlatApplication.universalIdentifier ===
TWENTY_STANDARD_APPLICATION.universalIdentifier
? undefined
: getApplicationSubAllFlatEntityMaps({
applicationIds: [twentyStandardFlatApplication.id],
fromAllFlatEntityMaps: existingAllFlatEntityMaps,
});
const validateAndBuildResult =
await this.workspaceMigrationValidateBuildAndRunService.validateBuildAndRunWorkspaceMigrationFromTo(
{
@@ -1,9 +1,9 @@
import { Injectable, Logger } from '@nestjs/common';
import { ALL_METADATA_NAME } from 'twenty-shared/metadata';
import { FileFolder } from 'twenty-shared/types';
import { isDefined } from 'twenty-shared/utils';
import { PackageJson } from 'type-fest';
import { ALL_METADATA_NAME } from 'twenty-shared/metadata';
import { ApplicationEntity } from 'src/engine/core-modules/application/application.entity';
import {