Accept unreachable objects in TransactionManager
TransactionManager
is currently only including reachable objects in the logged pack. There are some RPCs, like UserSquash
, that write objects without making them reachable. We should support writing objects to the repository without making them reachable in the transaction. Even if the objects are unreachable, we need to still verify they are valid and have all their dependencies in place.
Since there's not that many RPCs that write unreachable objects, we should likely just allow these RPCs to write the object they need without making it reachable rather than generally allowing unreachable objects. They could explicitly name the ID of the object unreachable object that needs to be included in the pack. That object would then be treated similarly the new reference tips in when packing the objects and have the objects and dependencies verified.