Currently you would have to pass another proposal to cancel. It might make sense to expire proposals automatically after a certain time window, so as to ensure that there are no un-executed proposals forgotten and lying around.
At the smart contract level code for this is already written in calltypes-and-exec-window branch, but this is not tested and you would need changes to ortypes, ornode and orclient as well.
Currently you would have to pass another proposal to cancel. It might make sense to expire proposals automatically after a certain time window, so as to ensure that there are no un-executed proposals forgotten and lying around.
At the smart contract level code for this is already written in calltypes-and-exec-window branch, but this is not tested and you would need changes to ortypes, ornode and orclient as well.