fix: pass buttons as objects rather than fetching ids to reduce conflicts
feat: add session log items, ready for refactoring