docs: step 5: Implement `hasLocalChanges` and `changedObjects`