This issue is not exclusive to mods, but any library that is not called by an active version json. I have simply used mods as an example, and as they were where I first noticed the issue.
The launcher automatically and without warning deletes any file in the Libraries folder that is not explicitly called in a version json file. This is extremely damaging to someone like myself who has a large collection of mods stored as custom libraries.
Essentially, this configuration has worked for me since the new launcher was added up until I launched the game three days ago. This isn't an issue with the mods themselves though, rather a function of the launcher.
My folder organisation was /libraries/mods/vendor/modname/modversion/modname-modversion.jar
I then had a load of custom version json files set up which would call these mods. Here is the addition I had for the Minecrift json as an example;
{ "name": "mods.mtbs3d:minecrift:1.6.4-b28" }, { "name": "mods.optifine:OptiFine:1.6.4_HD_U_D1" },
The benefit of this system was that I could upgrade mods without having to modify the original minecraft.jar beyond a META-INF removal, and I could have different profiles set up for different purposes. Obviously I'm guessing the system was designed like that, and it works very well aside from some launch directory issues.
I had approximately 15 different mod configurations set up this way for various different purposes. What I then did was move the version folders I wasn't using into a backup directory to speed up loading of the launcher, as it starts to get sluggish the more you have available. I also had some older, no longer in use mods still in their folders incase I needed to test something.
However, every mod that was in my /libraries/mods folder that wasn't being called by an active version json was deleted without warning. Mods that were called in version jsons that I hadn't moved to the backup directory were not deleted, an example would be the Minecrift one above. I had over 30 old versions of that mod in the folder, and the launcher deleted every one except for the one I had being called in the version json.
I also tried setting the files to Read Only to prevent the launcher from deleting them, however it wouldn't launch the game instead throwing an error.
The last time I can 100% confirm that the launcher wasn't deleting those libraries was the 1st april, as that is when my backup was dated. Thankfully I found that backup and didn't lose a lot of archive versions of mods.
If this is not a bug and is infact an intended feature, I beg of you to either reconsider it or make it a modifiable option in the launcher's config. It seems to be only detrimental and damaging to people using the launcher as a method of loading coremods, and seemingly has very little practical benefit.
This also cleaned up a lot of files I had for older versions of the game, which again I had the version folders backed up for to speed up loading. While redownloading these isn't too much of an issue, it seems unneccesary and inconvenient.
Thank you.