diff --git a/packages/data-schemas/src/models/plugins/tenantIsolation.coverage.spec.ts b/packages/data-schemas/src/models/plugins/tenantIsolation.coverage.spec.ts index 13b7af41c2..61708666f1 100644 --- a/packages/data-schemas/src/models/plugins/tenantIsolation.coverage.spec.ts +++ b/packages/data-schemas/src/models/plugins/tenantIsolation.coverage.spec.ts @@ -11,10 +11,12 @@ const TENANT_ISOLATION_APPLIED = Symbol.for('librechat:tenantIsolation'); /** * Models that carry a `tenantId` field but intentionally do NOT use the * tenant-isolation plugin. SystemGrant scopes tenancy manually inside its - * methods (see models/systemGrant). Adding an entry here must be a deliberate, - * reviewed decision — that is the whole point of this guard. + * methods (see models/systemGrant). SkillSyncStatus stores both app-wide YAML + * status rows and tenant-scoped override rows, so its methods apply explicit + * tenant filters instead of ambient ALS scoping. Adding an entry here must be a + * deliberate, reviewed decision — that is the whole point of this guard. */ -const MANUAL_TENANT_SCOPING = new Set(['SystemGrant']); +const MANUAL_TENANT_SCOPING = new Set(['SystemGrant', 'SkillSyncStatus']); function isPluginApplied(schema: mongoose.Schema): boolean { return (schema as unknown as { [key: symbol]: boolean })[TENANT_ISOLATION_APPLIED] === true;