Backward-compatibility of COB actions is left up to the implementor by ensuring that previous actions can always be deserialized and interpreted.
However, on the flip side, the Radicle client will fail to deserialize any new actions it does not recognise. This failure will exit the process of materializing the final view of the COB.
This means that any evolution of a COB will break old clients that do not have the latest version of the COB interpreter.
A first attempt at improving this is to make the deserialization portion allow some failures, and attempt to continue the interpretation. The nuance will be around what "some failures" means here. Perhaps the failure is legitimate around existing actions, rather than new actions. Perhaps these failures should be collected and reported to the end user and/or logging mechanisms.