Found during hydragon reconnaissance (#615) on 2026-08-31. This affects every Unreal depot we run, not only hydragon.
There is no Perforce typemap on any of our servers.
.uasset, .umap, .uexp or .ubulk.hydraperforceprovision ensure-server never sets a typemap, so every scale it creates starts with p4d's empty default.Without a typemap, p4d guesses the file type from content. Unreal binary assets land as whatever auto-detect decides, not as policy. Observed on the old server: .uasset files stored as binary+x, with no +l exclusive lock.
+l exclusive locking, two people can edit the same asset and one loses the work with no way to reconcile.+S rule scoped to build output, packaged builds keep every revision forever. On a shared storage pool that is a live risk, not a tidiness problem.This is latent today because the existing depots hold mostly finished packages. It becomes real the moment anyone submits Unreal project source, which hydragon Phase 1 (#623) does.
+S cap scoped to the build output subtree only. Never a bare +S on .uexp: that purges history for the paired .uasset payload and cannot be undone.ensure-server apply it to every new scale, so this cannot recur.The typemap applies at p4 add time only. Files already in a depot keep the type they were added with, so step 4 is real work and not optional.
Related: #615 hydragon, #623 Phase 1, #543 ensure-server hardening.