* docs(#3574): record ADR-3574 install materialization primitives
Epic #2866 phase 6 was scoped on the premise that materializing a layout
is implemented three times and should become one module. Measured against
the tree, the premise does not hold: the three sites overlap in shape and
diverge in mechanism.
applySurface prunes by allow-list precisely so it structurally cannot
delete a user's files. installRuntimeArtifacts wipes a prefix-scoped set
and restores a snapshot. A single writer has to pick one, and picking
either trades a working guarantee for a different one.
So the ADR declines phase 6's first acceptance criterion and says why,
because the next reader who notices three similar loops should find this
file rather than rediscover the conflict. What is extracted instead is the
genuinely shared part: durable user-artifact staging for #1874-F19, reusing
the migration primitive that copies strictly before delete and never
dereferences a symlink, plus the retired-kind prune both callers already
share. The agents bypass closes on its own terms.
Two of the issue's premises were also stale: ten runtimes have already
migrated off the inline agent dispatch, and the duplication comment's
deliberate-until condition is partly met.
Closes#3574
* chore(#3574): backfill changeset pr number
---------
Co-authored-by: sim <sim@local>