reconcile donut snapshot

Merge branch 'donut-snapshot' into HEAD
tree: 085661ae2993327d4df9ecd3e2a5e958f1fa5dbb
  1. core/
  2. services/